Commit 7111cddd authored by William Towle's avatar William Towle Committed by Mauro Carvalho Chehab

[media] media: adv7604: reduce support to first (digital) input

Using adv7611_read_cable_det() for ADV7612 means that full
support for '.max_port = ADV7604_PAD_HDMI_PORT_B,' isn't available
due to the need for multiple port reads to determine cable detection,
and an agreed mechanism for communicating the separate statuses.

This patch replaces adv7611_read_cable_det() with a functionally
identical copy, commented appropriately.

Earlier submissions [leading to commit 8331d30b] also set .cp_csc,
which is used in a cp_read() call within adv76xx_log_status().
Signed-off-by: default avatarWilliam Towle <william.towle@codethink.co.uk>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent c1362384
...@@ -877,6 +877,16 @@ static unsigned int adv7611_read_cable_det(struct v4l2_subdev *sd) ...@@ -877,6 +877,16 @@ static unsigned int adv7611_read_cable_det(struct v4l2_subdev *sd)
return value & 1; return value & 1;
} }
static unsigned int adv7612_read_cable_det(struct v4l2_subdev *sd)
{
/* Reads CABLE_DET_A_RAW. For input B support, need to
* account for bit 7 [MSB] of 0x6a (ie. CABLE_DET_B_RAW)
*/
u8 value = io_read(sd, 0x6f);
return value & 1;
}
static int adv76xx_s_detect_tx_5v_ctrl(struct v4l2_subdev *sd) static int adv76xx_s_detect_tx_5v_ctrl(struct v4l2_subdev *sd)
{ {
struct adv76xx_state *state = to_state(sd); struct adv76xx_state *state = to_state(sd);
...@@ -2728,20 +2738,21 @@ static const struct adv76xx_chip_info adv76xx_chip_info[] = { ...@@ -2728,20 +2738,21 @@ static const struct adv76xx_chip_info adv76xx_chip_info[] = {
[ADV7612] = { [ADV7612] = {
.type = ADV7612, .type = ADV7612,
.has_afe = false, .has_afe = false,
.max_port = ADV7604_PAD_HDMI_PORT_B, .max_port = ADV76XX_PAD_HDMI_PORT_A, /* B not supported */
.num_dv_ports = 2, .num_dv_ports = 1, /* normally 2 */
.edid_enable_reg = 0x74, .edid_enable_reg = 0x74,
.edid_status_reg = 0x76, .edid_status_reg = 0x76,
.lcf_reg = 0xa3, .lcf_reg = 0xa3,
.tdms_lock_mask = 0x43, .tdms_lock_mask = 0x43,
.cable_det_mask = 0x01, .cable_det_mask = 0x01,
.fmt_change_digital_mask = 0x03, .fmt_change_digital_mask = 0x03,
.cp_csc = 0xf4,
.formats = adv7612_formats, .formats = adv7612_formats,
.nformats = ARRAY_SIZE(adv7612_formats), .nformats = ARRAY_SIZE(adv7612_formats),
.set_termination = adv7611_set_termination, .set_termination = adv7611_set_termination,
.setup_irqs = adv7612_setup_irqs, .setup_irqs = adv7612_setup_irqs,
.read_hdmi_pixelclock = adv7611_read_hdmi_pixelclock, .read_hdmi_pixelclock = adv7611_read_hdmi_pixelclock,
.read_cable_det = adv7611_read_cable_det, .read_cable_det = adv7612_read_cable_det,
.recommended_settings = { .recommended_settings = {
[1] = adv7612_recommended_settings_hdmi, [1] = adv7612_recommended_settings_hdmi,
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment