On Mon, Jun 6, 2022 at 10:21 PM Doug Anderson dianders@chromium.org wrote:
Hi,
On Sun, Jun 5, 2022 at 9:47 PM Hsin-Yi Wang hsinyi@chromium.org wrote:
Panels usually call drm_connector_set_panel_orientation(), which is later than drm/kms driver calling drm_dev_register(). This leads to a WARN().
The orientation property is known earlier. For example, some panels parse the property through device tree during probe.
Add an API to return the property from panel to drm/kms driver, so the drivers are able to call drm_connector_set_panel_orientation() before drm_dev_register().
Suggested-by: Hans de Goede hdegoede@redhat.com Signed-off-by: Hsin-Yi Wang hsinyi@chromium.org Reviewed-by: Hans de Goede hdegoede@redhat.com
v2->v3: no change
drivers/gpu/drm/drm_panel.c | 8 ++++++++ include/drm/drm_panel.h | 10 ++++++++++ 2 files changed, 18 insertions(+)
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index f634371c717a..4a512ca80673 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -223,6 +223,14 @@ int drm_panel_get_modes(struct drm_panel *panel, } EXPORT_SYMBOL(drm_panel_get_modes);
+enum drm_panel_orientation drm_panel_get_orientation(struct drm_panel *panel) +{
if (panel && panel->funcs && panel->funcs->get_orientation)
return panel->funcs->get_orientation(panel);
return DRM_MODE_PANEL_ORIENTATION_UNKNOWN;
+} +EXPORT_SYMBOL(drm_panel_get_orientation); #ifdef CONFIG_OF
nit: there used to be a blank line before the #ifdef but there no longer is after your patch.
Added in v4.
Other than that...
Reviewed-by: Douglas Anderson dianders@chromium.org