Re: [PATCH v12 27/28] drm/rockchip: inno_hdmi: Switch to HDMI connector

2024-05-06 Thread Andy Yan

Hi Maxime,

On 5/6/24 15:59, Maxime Ripard wrote:

Hi Andy,

Thanks a lot for giving it a try

All the issues you raised in your review are fixed.

On Sat, Apr 27, 2024 at 06:44:54PM GMT, Andy Yan wrote:

And after this whole series applied on linux 6.9-rc4, the display on rk3036 
kylin is lost, I get
the following error:
[  178.999421] rockchip-drm display-subsystem: [drm:drm_atomic_check_only] 
checking 87b7fbde
[  178.999471] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CRTC:35:crtc-0] mode changed
[  178.999498] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CRTC:35:crtc-0] enable changed
[  178.999521] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CRTC:35:crtc-0] active changed
[  178.999547] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] Updating routing for 
[CONNECTOR:37:HDMI-A-1]
[  178.999575] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CONNECTOR:37:HDMI-A-1] using 
[ENCODER:36:TMDS-36] on [CRTC:35:crtc-0]
[  178.999604] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] Trying with a 8 bpc output
[  178.999636] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] Trying RGB output format
[  178.999730] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] RGB Format, checking the 
constraints.
[  178.999757] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] RGB output format not supported 
with 8 bpc
[  178.999783] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] Failed. No Format Supported for 
that bpc count.
[  178.999810] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CONNECTOR:37:HDMI-A-1] driver check 
failed
[  178.999836] rockchip-drm display-subsystem: [drm:drm_atomic_check_only] 
atomic driver check for 87b7fbde failed: -22
[  178.999868] rockchip-drm display-subsystem: 
[drm:drm_atomic_state_default_clear] Clearing atomic state 87b7fbde
[  178.999898] [drm:drm_mode_object_put] OBJ ID: 37 (4)
[  178.22] [drm:drm_mode_object_put] OBJ ID: 37 (3)
[  178.44] [drm:drm_mode_object_put] OBJ ID: 40 (1)
[  178.71] [drm:drm_mode_object_put] OBJ ID: 39 (2)


Which kind of display are you testing with? The only reason it could do
so is if the display claim it doesn't support RGB in its EDID which is
contradicting the HDMI spec. Are you using an Analog display by any
chance? or the built-in EDIDs through the drm.edid_firmware mechanism?



It is because there is something wrong(I still don't know why) with the DDC on 
my board.
It always failed to read edid when it first bootup, that means 
inno_hdmi_connector_get_modes
will return 0.

and in function

drm_helper_probe_single_connector_modes:

count = drm_helper_probe_get_modes(connector);

if (count == 0 && (connector->status == connector_status_connected ||
   connector->status == connector_status_unknown)) {
count = drm_add_modes_noedid(connector, 1024, 768);

/*
 * Section 4.2.2.6 (EDID Corruption Detection) of the DP 1.4a
 * Link CTS specifies that 640x480 (the official "failsafe"
 * mode) needs to be the default if there's no EDID.
 */
if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort)
drm_set_preferred_mode(connector, 640, 480);
}
drm_add_modes_noedid will not initialize display_info.


Maxime


Re: [PATCH v12 27/28] drm/rockchip: inno_hdmi: Switch to HDMI connector

2024-05-06 Thread Andy Yan

Hi Maxime,

On 5/6/24 15:59, Maxime Ripard wrote:

Hi Andy,

Thanks a lot for giving it a try

All the issues you raised in your review are fixed.

On Sat, Apr 27, 2024 at 06:44:54PM GMT, Andy Yan wrote:

And after this whole series applied on linux 6.9-rc4, the display on rk3036 
kylin is lost, I get
the following error:
[  178.999421] rockchip-drm display-subsystem: [drm:drm_atomic_check_only] 
checking 87b7fbde
[  178.999471] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CRTC:35:crtc-0] mode changed
[  178.999498] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CRTC:35:crtc-0] enable changed
[  178.999521] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CRTC:35:crtc-0] active changed
[  178.999547] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] Updating routing for 
[CONNECTOR:37:HDMI-A-1]
[  178.999575] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CONNECTOR:37:HDMI-A-1] using 
[ENCODER:36:TMDS-36] on [CRTC:35:crtc-0]
[  178.999604] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] Trying with a 8 bpc output
[  178.999636] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] Trying RGB output format
[  178.999730] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] RGB Format, checking the 
constraints.
[  178.999757] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] RGB output format not supported 
with 8 bpc
[  178.999783] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_connector_hdmi_check] Failed. No Format Supported for 
that bpc count.
[  178.999810] rockchip-drm display-subsystem: 
[drm:drm_atomic_helper_check_modeset] [CONNECTOR:37:HDMI-A-1] driver check 
failed
[  178.999836] rockchip-drm display-subsystem: [drm:drm_atomic_check_only] 
atomic driver check for 87b7fbde failed: -22
[  178.999868] rockchip-drm display-subsystem: 
[drm:drm_atomic_state_default_clear] Clearing atomic state 87b7fbde
[  178.999898] [drm:drm_mode_object_put] OBJ ID: 37 (4)
[  178.22] [drm:drm_mode_object_put] OBJ ID: 37 (3)
[  178.44] [drm:drm_mode_object_put] OBJ ID: 40 (1)
[  178.71] [drm:drm_mode_object_put] OBJ ID: 39 (2)


Which kind of display are you testing with? The only reason it could do
so is if the display claim it doesn't support RGB in its EDID which is
contradicting the HDMI spec. Are you using an Analog display by any
chance? or the built-in EDIDs through the drm.edid_firmware mechanism?


It is because there is something wrong(I still don't know why) with the DDC on 
my board.
It always failed to read edid when it first bootup, that means 
inno_hdmi_connector_get_modes
will return 0.

and in function

drm_helper_probe_single_connector_modes:

count = drm_helper_probe_get_modes(connector);

if (count == 0 && (connector->status == connector_status_connected ||
   connector->status == connector_status_unknown)) {
count = drm_add_modes_noedid(connector, 1024, 768);

/*
 * Section 4.2.2.6 (EDID Corruption Detection) of the DP 1.4a
 * Link CTS specifies that 640x480 (the official "failsafe"
 * mode) needs to be the default if there's no EDID.
 */
if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort)
drm_set_preferred_mode(connector, 640, 480);
}
drm_add_modes_noedid will not initialize display_info.



Maxime


Re: [PATCH v12 27/28] drm/rockchip: inno_hdmi: Switch to HDMI connector

2024-05-06 Thread Maxime Ripard
Hi Andy,

Thanks a lot for giving it a try

All the issues you raised in your review are fixed.

On Sat, Apr 27, 2024 at 06:44:54PM GMT, Andy Yan wrote:
> And after this whole series applied on linux 6.9-rc4, the display on rk3036 
> kylin is lost, I get
> the following error:
> [  178.999421] rockchip-drm display-subsystem: [drm:drm_atomic_check_only] 
> checking 87b7fbde
> [  178.999471] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_check_modeset] [CRTC:35:crtc-0] mode changed
> [  178.999498] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_check_modeset] [CRTC:35:crtc-0] enable changed
> [  178.999521] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_check_modeset] [CRTC:35:crtc-0] active changed
> [  178.999547] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_check_modeset] Updating routing for 
> [CONNECTOR:37:HDMI-A-1]
> [  178.999575] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_check_modeset] [CONNECTOR:37:HDMI-A-1] using 
> [ENCODER:36:TMDS-36] on [CRTC:35:crtc-0]
> [  178.999604] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_connector_hdmi_check] Trying with a 8 bpc output
> [  178.999636] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_connector_hdmi_check] Trying RGB output format
> [  178.999730] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_connector_hdmi_check] RGB Format, checking the 
> constraints.
> [  178.999757] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_connector_hdmi_check] RGB output format not supported 
> with 8 bpc
> [  178.999783] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_connector_hdmi_check] Failed. No Format Supported for 
> that bpc count.
> [  178.999810] rockchip-drm display-subsystem: 
> [drm:drm_atomic_helper_check_modeset] [CONNECTOR:37:HDMI-A-1] driver check 
> failed
> [  178.999836] rockchip-drm display-subsystem: [drm:drm_atomic_check_only] 
> atomic driver check for 87b7fbde failed: -22
> [  178.999868] rockchip-drm display-subsystem: 
> [drm:drm_atomic_state_default_clear] Clearing atomic state 87b7fbde
> [  178.999898] [drm:drm_mode_object_put] OBJ ID: 37 (4)
> [  178.22] [drm:drm_mode_object_put] OBJ ID: 37 (3)
> [  178.44] [drm:drm_mode_object_put] OBJ ID: 40 (1)
> [  178.71] [drm:drm_mode_object_put] OBJ ID: 39 (2)

Which kind of display are you testing with? The only reason it could do
so is if the display claim it doesn't support RGB in its EDID which is
contradicting the HDMI spec. Are you using an Analog display by any
chance? or the built-in EDIDs through the drm.edid_firmware mechanism?

Maxime


signature.asc
Description: PGP signature


Re: [PATCH v12 27/28] drm/rockchip: inno_hdmi: Switch to HDMI connector

2024-05-06 Thread Maxime Ripard
Hi,

On Sat, Apr 27, 2024 at 06:12:26PM GMT, Andy Yan wrote:
> On 4/23/24 18:45, Maxime Ripard wrote:
> > The new HDMI connector infrastructure allows to remove some boilerplate,
> > especially to generate infoframes. Let's switch to it.
> > 
> > Reviewed-by: Heiko Stuebner 
> > Acked-by: Heiko Stuebner 
> > Signed-off-by: Maxime Ripard 
> > ---
> >   drivers/gpu/drm/rockchip/Kconfig |   1 +
> >   drivers/gpu/drm/rockchip/inno_hdmi.c | 143 
> > +--
> >   2 files changed, 53 insertions(+), 91 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/rockchip/Kconfig 
> > b/drivers/gpu/drm/rockchip/Kconfig
> > index 4c7072e6e34e..e2ec20c2e2eb 100644
> > --- a/drivers/gpu/drm/rockchip/Kconfig
> > +++ b/drivers/gpu/drm/rockchip/Kconfig
> > @@ -72,10 +72,11 @@ config ROCKCHIP_DW_MIPI_DSI
> >   enable MIPI DSI on RK3288 or RK3399 based SoC, you should
> >   select this option.
> >   config ROCKCHIP_INNO_HDMI
> > bool "Rockchip specific extensions for Innosilicon HDMI"
> > +   depends on
> 
> Is this supposed to be  DRM_DISPLAY_HDMI_STATE_HELPER whith you introduced in 
> PATCH 04/28?
> I couldn't find any place where  DRM_HDMI_STATE_HELPER is defined.

Yes, it was a typo indeed. I've fixed it in the next version.

Thanks!
Maxime


signature.asc
Description: PGP signature


Re: [PATCH v12 27/28] drm/rockchip: inno_hdmi: Switch to HDMI connector

2024-04-27 Thread Andy Yan

Hi Maxime,

On 4/23/24 18:45, Maxime Ripard wrote:

The new HDMI connector infrastructure allows to remove some boilerplate,
especially to generate infoframes. Let's switch to it.

Reviewed-by: Heiko Stuebner 
Acked-by: Heiko Stuebner 
Signed-off-by: Maxime Ripard 
---
  drivers/gpu/drm/rockchip/Kconfig |   1 +
  drivers/gpu/drm/rockchip/inno_hdmi.c | 143 +--
  2 files changed, 53 insertions(+), 91 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig
index 4c7072e6e34e..e2ec20c2e2eb 100644
--- a/drivers/gpu/drm/rockchip/Kconfig
+++ b/drivers/gpu/drm/rockchip/Kconfig
@@ -72,10 +72,11 @@ config ROCKCHIP_DW_MIPI_DSI
  enable MIPI DSI on RK3288 or RK3399 based SoC, you should
  select this option.
  
  config ROCKCHIP_INNO_HDMI

bool "Rockchip specific extensions for Innosilicon HDMI"
+   depends on DRM_HDMI_STATE_HELPER
help
  This selects support for Rockchip SoC specific extensions
  for the Innosilicon HDMI driver. If you want to enable
  HDMI on RK3036 based SoC, you should select this option.
  
diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c

index 1d2261643743..3756259bfb10 100644
--- a/drivers/gpu/drm/rockchip/inno_hdmi.c
+++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
@@ -65,13 +65,11 @@ struct inno_hdmi {
const struct inno_hdmi_variant *variant;
  };
  


I think we should include , or the compile 
will complain about:
implicit decalaration of funciont 
drm_atomic_helper_connector_hdmi_update_infoframes


  struct inno_hdmi_connector_state {
struct drm_connector_state  base;
-   unsigned intenc_out_format;
unsigned intcolorimetry;
-   boolrgb_limited_range;
  };
  
  static struct inno_hdmi *encoder_to_inno_hdmi(struct drm_encoder *encoder)

  {
struct rockchip_encoder *rkencoder = to_rockchip_encoder(encoder);
@@ -255,90 +253,53 @@ static void inno_hdmi_reset(struct inno_hdmi *hdmi)
hdmi_modb(hdmi, HDMI_SYS_CTRL, msk, val);
  
  	inno_hdmi_standby(hdmi);

  }
  
-static void inno_hdmi_disable_frame(struct inno_hdmi *hdmi,

-   enum hdmi_infoframe_type type)
+static int inno_hdmi_disable_frame(struct drm_connector *connector,
+  enum hdmi_infoframe_type type)
  {
-   struct drm_connector *connector = &hdmi->connector;
-
-   if (type != HDMI_INFOFRAME_TYPE_AVI) {
-   drm_err(connector->dev,
-   "Unsupported infoframe type: %u\n", type);
-   return;
-   }
-
-   hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_BUF_INDEX, INFOFRAME_AVI);
-}
-
-static int inno_hdmi_upload_frame(struct inno_hdmi *hdmi,
- union hdmi_infoframe *frame, enum 
hdmi_infoframe_type type)
-{
-   struct drm_connector *connector = &hdmi->connector;
-   u8 packed_frame[HDMI_MAXIMUM_INFO_FRAME_SIZE];
-   ssize_t rc, i;
+   struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
  
  	if (type != HDMI_INFOFRAME_TYPE_AVI) {

drm_err(connector->dev,
"Unsupported infoframe type: %u\n", type);
return 0;
}
  
-	inno_hdmi_disable_frame(hdmi, type);

+   hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_BUF_INDEX, INFOFRAME_AVI);
  
-	rc = hdmi_infoframe_pack(frame, packed_frame,

-sizeof(packed_frame));
-   if (rc < 0)
-   return rc;
+   return 0;
+}
  
-	for (i = 0; i < rc; i++)

+static int inno_hdmi_upload_frame(struct drm_connector *connector,
+ enum hdmi_infoframe_type type,
+ const u8 *buffer, size_t len)
+{
+   struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
+   u8 packed_frame[HDMI_MAXIMUM_INFO_FRAME_SIZE];
+   ssize_t i;
+
+   if (type != HDMI_INFOFRAME_TYPE_AVI) {
+   drm_err(connector->dev,
+   "Unsupported infoframe type: %u\n", type);
+   return 0;
+   }
+
+   inno_hdmi_disable_frame(connector, type);
+
+   for (i = 0; i < len; i++)
hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_ADDR + i,
packed_frame[i]);
  
  	return 0;

  }
  
-static int inno_hdmi_config_video_avi(struct inno_hdmi *hdmi,

- struct drm_display_mode *mode)
-{
-   struct drm_connector *connector = &hdmi->connector;
-   struct drm_connector_state *conn_state = connector->state;
-   struct inno_hdmi_connector_state *inno_conn_state =
-   to_inno_hdmi_conn_state(conn_state);
-   union hdmi_infoframe frame;
-   int rc;
-
-   rc = drm_hdmi_avi_infoframe_from_display_mode(&frame.avi,
-   

Re: [PATCH v12 27/28] drm/rockchip: inno_hdmi: Switch to HDMI connector

2024-04-27 Thread Andy Yan

Hi Maxime,

On 4/23/24 18:45, Maxime Ripard wrote:

The new HDMI connector infrastructure allows to remove some boilerplate,
especially to generate infoframes. Let's switch to it.

Reviewed-by: Heiko Stuebner 
Acked-by: Heiko Stuebner 
Signed-off-by: Maxime Ripard 
---
  drivers/gpu/drm/rockchip/Kconfig |   1 +
  drivers/gpu/drm/rockchip/inno_hdmi.c | 143 +--
  2 files changed, 53 insertions(+), 91 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig
index 4c7072e6e34e..e2ec20c2e2eb 100644
--- a/drivers/gpu/drm/rockchip/Kconfig
+++ b/drivers/gpu/drm/rockchip/Kconfig
@@ -72,10 +72,11 @@ config ROCKCHIP_DW_MIPI_DSI
  enable MIPI DSI on RK3288 or RK3399 based SoC, you should
  select this option.
  
  config ROCKCHIP_INNO_HDMI

bool "Rockchip specific extensions for Innosilicon HDMI"
+	depends on 


Is this supposed to be  DRM_DISPLAY_HDMI_STATE_HELPER whith you introduced in 
PATCH 04/28?
I couldn't find any place where  DRM_HDMI_STATE_HELPER is defined.


help
  This selects support for Rockchip SoC specific extensions
  for the Innosilicon HDMI driver. If you want to enable
  HDMI on RK3036 based SoC, you should select this option.
  
diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c

index 1d2261643743..3756259bfb10 100644
--- a/drivers/gpu/drm/rockchip/inno_hdmi.c
+++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
@@ -65,13 +65,11 @@ struct inno_hdmi {
const struct inno_hdmi_variant *variant;
  };
  
  struct inno_hdmi_connector_state {

struct drm_connector_state  base;
-   unsigned intenc_out_format;
unsigned intcolorimetry;
-   boolrgb_limited_range;
  };
  
  static struct inno_hdmi *encoder_to_inno_hdmi(struct drm_encoder *encoder)

  {
struct rockchip_encoder *rkencoder = to_rockchip_encoder(encoder);
@@ -255,90 +253,53 @@ static void inno_hdmi_reset(struct inno_hdmi *hdmi)
hdmi_modb(hdmi, HDMI_SYS_CTRL, msk, val);
  
  	inno_hdmi_standby(hdmi);

  }
  
-static void inno_hdmi_disable_frame(struct inno_hdmi *hdmi,

-   enum hdmi_infoframe_type type)
+static int inno_hdmi_disable_frame(struct drm_connector *connector,
+  enum hdmi_infoframe_type type)
  {
-   struct drm_connector *connector = &hdmi->connector;
-
-   if (type != HDMI_INFOFRAME_TYPE_AVI) {
-   drm_err(connector->dev,
-   "Unsupported infoframe type: %u\n", type);
-   return;
-   }
-
-   hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_BUF_INDEX, INFOFRAME_AVI);
-}
-
-static int inno_hdmi_upload_frame(struct inno_hdmi *hdmi,
- union hdmi_infoframe *frame, enum 
hdmi_infoframe_type type)
-{
-   struct drm_connector *connector = &hdmi->connector;
-   u8 packed_frame[HDMI_MAXIMUM_INFO_FRAME_SIZE];
-   ssize_t rc, i;
+   struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
  
  	if (type != HDMI_INFOFRAME_TYPE_AVI) {

drm_err(connector->dev,
"Unsupported infoframe type: %u\n", type);
return 0;
}
  
-	inno_hdmi_disable_frame(hdmi, type);

+   hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_BUF_INDEX, INFOFRAME_AVI);
  
-	rc = hdmi_infoframe_pack(frame, packed_frame,

-sizeof(packed_frame));
-   if (rc < 0)
-   return rc;
+   return 0;
+}
  
-	for (i = 0; i < rc; i++)

+static int inno_hdmi_upload_frame(struct drm_connector *connector,
+ enum hdmi_infoframe_type type,
+ const u8 *buffer, size_t len)
+{
+   struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
+   u8 packed_frame[HDMI_MAXIMUM_INFO_FRAME_SIZE];
+   ssize_t i;
+
+   if (type != HDMI_INFOFRAME_TYPE_AVI) {
+   drm_err(connector->dev,
+   "Unsupported infoframe type: %u\n", type);
+   return 0;
+   }
+
+   inno_hdmi_disable_frame(connector, type);
+
+   for (i = 0; i < len; i++)
hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_ADDR + i,
packed_frame[i]);
  
  	return 0;

  }
  
-static int inno_hdmi_config_video_avi(struct inno_hdmi *hdmi,

- struct drm_display_mode *mode)
-{
-   struct drm_connector *connector = &hdmi->connector;
-   struct drm_connector_state *conn_state = connector->state;
-   struct inno_hdmi_connector_state *inno_conn_state =
-   to_inno_hdmi_conn_state(conn_state);
-   union hdmi_infoframe frame;
-   int rc;
-
-   rc = drm_hdmi_avi_infoframe_from_display_mode(&frame.avi,
- &hdmi->connector