Re: [PATCH v4 5/8] drm/mediatek: hdmi: add v2 support
From: CK Hu (胡俊光) <hidden>
Date: 2023-06-13 01:53:05
Also in:
dri-devel, linux-devicetree, lkml
Hi, Guillaume: On Mon, 2023-05-29 at 16:31 +0200, Guillaume Ranquet wrote:
External email : Please do not click links or open attachments until you have verified the sender or the content. Adds hdmi and hdmi-ddc support for v2 IP. Signed-off-by: Guillaume Ranquet <redacted>
[snip]
+
+static unsigned char vddc_read(struct mtk_hdmi_ddc *ddc, unsigned
int u4_clk_div,
+ unsigned char uc_dev, unsigned int u4_addr,
+ enum sif_bit_t_hdmi uc_addr_type,
+ unsigned char *puc_value, unsigned int u4_count)
+{
+unsigned int u4_read_count = 0;
+unsigned char uc_return_value = 0;
+
+if (!puc_value || !u4_count || !u4_clk_div ||
+ uc_addr_type > SIF_16_BIT_HDMI ||
+ (uc_addr_type == SIF_8_BIT_HDMI && u4_addr > 255) ||
+ (uc_addr_type == SIF_16_BIT_HDMI && u4_addr > 65535)) {uc_addr_type would never be SIF_16_BIT_HDMI, so remove SIF_16_BIT_HDMI. Regards, CK
+return 0;
+}
+
+if (uc_addr_type == SIF_8_BIT_HDMI)
+u4_read_count = 255 - u4_addr + 1;
+else if (uc_addr_type == SIF_16_BIT_HDMI)
+u4_read_count = 65535 - u4_addr + 1;
+
+u4_read_count = (u4_read_count > u4_count) ? u4_count :
u4_read_count;
+uc_return_value = ddcm_read_hdmi(ddc, u4_clk_div, uc_dev, u4_addr,
+ uc_addr_type, puc_value, u4_read_count);
+return uc_return_value;
+}
+
+static bool fg_ddc_data_read(struct mtk_hdmi_ddc *ddc,
+ unsigned char b_dev,
+ unsigned char b_data_addr,
+ unsigned char b_data_count,
+ unsigned char *pr_data)
+{
+int ret;
+
+mutex_lock(&ddc->mtx);
+
+hdmi_ddc_request(ddc);
+ret = vddc_read(ddc, DDC2_CLOK, b_dev, b_data_addr, SIF_8_BIT_HDMI,
+ pr_data, b_data_count);
+mutex_unlock(&ddc->mtx);
+
+return ret == b_data_count;
+}
+_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel