aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/i2c/adv7842.c12
-rw-r--r--include/media/adv7842.h3
2 files changed, 12 insertions, 3 deletions
diff --git a/drivers/media/i2c/adv7842.c b/drivers/media/i2c/adv7842.c
index 209b1753b701..e04fe3f80383 100644
--- a/drivers/media/i2c/adv7842.c
+++ b/drivers/media/i2c/adv7842.c
@@ -2693,9 +2693,15 @@ static int adv7842_core_init(struct v4l2_subdev *sd)
2693 /* disable I2C access to internal EDID ram from HDMI DDC ports */ 2693 /* disable I2C access to internal EDID ram from HDMI DDC ports */
2694 rep_write_and_or(sd, 0x77, 0xf3, 0x00); 2694 rep_write_and_or(sd, 0x77, 0xf3, 0x00);
2695 2695
2696 hdmi_write(sd, 0x69, 0xa3); /* HPA manual */ 2696 if (pdata->hpa_auto) {
2697 /* HPA disable on port A and B */ 2697 /* HPA auto, HPA 0.5s after Edid set and Cable detect */
2698 io_write_and_or(sd, 0x20, 0xcf, 0x00); 2698 hdmi_write(sd, 0x69, 0x5c);
2699 } else {
2700 /* HPA manual */
2701 hdmi_write(sd, 0x69, 0xa3);
2702 /* HPA disable on port A and B */
2703 io_write_and_or(sd, 0x20, 0xcf, 0x00);
2704 }
2699 2705
2700 /* LLC */ 2706 /* LLC */
2701 io_write(sd, 0x19, 0x80 | pdata->llc_dll_phase); 2707 io_write(sd, 0x19, 0x80 | pdata->llc_dll_phase);
diff --git a/include/media/adv7842.h b/include/media/adv7842.h
index 39322091e8b0..924cbb8d004a 100644
--- a/include/media/adv7842.h
+++ b/include/media/adv7842.h
@@ -220,6 +220,9 @@ struct adv7842_platform_data {
220 unsigned sdp_free_run_cbar_en:1; 220 unsigned sdp_free_run_cbar_en:1;
221 unsigned sdp_free_run_force:1; 221 unsigned sdp_free_run_force:1;
222 222
223 /* HPA manual (0) or auto (1), affects HDMI register 0x69 */
224 unsigned hpa_auto:1;
225
223 struct adv7842_sdp_csc_coeff sdp_csc_coeff; 226 struct adv7842_sdp_csc_coeff sdp_csc_coeff;
224 227
225 struct adv7842_sdp_io_sync_adjustment sdp_io_sync_625; 228 struct adv7842_sdp_io_sync_adjustment sdp_io_sync_625;