Hi Keith, thanks a lot for working on this. See some general remarks below Am 21.05.24 um 12:58 schrieb keith:
Add INNO common api so that it can be used by vendor drivers which implement vendor specific extensions to Innosilicon HDMI. Signed-off-by: keith <keith.zhao@xxxxxxxxxxxxxxxx> --- MAINTAINERS | 2 + drivers/gpu/drm/bridge/Kconfig | 2 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/innosilicon/Kconfig | 6 + drivers/gpu/drm/bridge/innosilicon/Makefile | 2 + .../gpu/drm/bridge/innosilicon/inno-hdmi.c | 587 ++++++++++++++++++ .../gpu/drm/bridge/innosilicon/inno-hdmi.h | 97 +++ include/drm/bridge/inno_hdmi.h | 69 ++ 8 files changed, 766 insertions(+) create mode 100644 drivers/gpu/drm/bridge/innosilicon/Kconfig create mode 100644 drivers/gpu/drm/bridge/innosilicon/Makefile create mode 100644 drivers/gpu/drm/bridge/innosilicon/inno-hdmi.c create mode 100644 drivers/gpu/drm/bridge/innosilicon/inno-hdmi.h create mode 100644 include/drm/bridge/inno_hdmi.h
....
+ drm_encoder_helper_add(encoder, pdata->helper_private); + + hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD; + + drm_connector_helper_add(&hdmi->connector, + &inno_hdmi_connector_helper_funcs); + + drmm_connector_init(drm, &hdmi->connector, + &inno_hdmi_connector_funcs, + DRM_MODE_CONNECTOR_HDMIA, + hdmi->ddc); +
I really don't want to anticipate bridge maintainer's feedback, but new bridge drivers must not contain connector creation. That must happen somewhere else. Also I'm neither seeing any drm_brige struct nor drm_bridge_funcs, which are both essential for a bridge driver. I don't think moving a part of a driver to .../drm/bridge/ makes it a bridge driver. Regeards, Alex
+ drm_connector_attach_encoder(&hdmi->connector, encoder); + + return 0; +} +
....