AnsweredAssumed Answered

[ADV7611]Regarding auto detection of video resolution

Question asked by ronak.desai on Jan 8, 2014
Latest reply on Aug 22, 2014 by GuenterL

Hi,

 

We are using ADV7611 HDMI receive chip and auto detecting input video resolutions.

 

We are successfully able to detect 576i/p, 720i/p, 1080i/p resolutions with different frame-rates. But when we provide graphics resolutions e.g. 800X600, 1680X1050 using Lenovo laptop, it detects the 1080P60 instead of the provided resolutions.

 

Using following method we are reading all values.

 

  bt->width = hdmi_read16(sd, 0x07, 0xfff); /* mask */

  bt->height = hdmi_read16(sd, 0x09, 0xfff);

  bt->pixelclock = info->read_hdmi_pixelclock(sd);

  bt->hfrontporch = hdmi_read16(sd, 0x20, 0x3ff); /* mask */

  bt->hsync = hdmi_read16(sd, 0x22, 0x3ff);

  bt->hbackporch = hdmi_read16(sd, 0x24, 0x3ff);

  bt->vfrontporch = hdmi_read16(sd, 0x2a, 0x1fff) / 2;

  bt->vsync = hdmi_read16(sd, 0x2e, 0x1fff) / 2;

  bt->vbackporch = hdmi_read16(sd, 0x32, 0x1fff) / 2;

  bt->polarities = ((hdmi_read(sd, 0x05) & 0x10) ?

  V4L2_DV_VSYNC_POS_POL : 0) | ((hdmi_read(sd, 0x05) & 0x20) ?

          V4L2_DV_HSYNC_POS_POL : 0);

  if (bt->interlaced == V4L2_DV_INTERLACED) {

          bt->height += hdmi_read16(sd, 0x0b, 0xfff);

          bt->il_vfrontporch = hdmi_read16(sd, 0x2c, 0x1fff) / 2;

          bt->il_vsync = hdmi_read16(sd, 0x30, 0x1fff) / 2;

          bt->vbackporch = hdmi_read16(sd, 0x34, 0x1fff) / 2;

  }

 

Please suggest where we are missing?

 

Thanks,

Ronak

Outcomes