Message ID | 20220606152431.1889185-5-hsinyi@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add a panel API to return panel orientation | expand |
Quoting Hsin-Yi Wang (2022-06-06 08:24:27) > diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c > index f11252fb00fe..491b64c2c8d6 100644 > --- a/drivers/gpu/drm/panel/panel-lvds.c > +++ b/drivers/gpu/drm/panel/panel-lvds.c > @@ -99,15 +99,30 @@ static int panel_lvds_get_modes(struct drm_panel *panel, > drm_display_info_set_bus_formats(&connector->display_info, > &lvds->bus_format, 1); > connector->display_info.bus_flags = lvds->bus_flags; > + > + /* > + * drm drivers are expected to call drm_panel_get_orientation() to get > + * panel's orientation then drm_connector_set_panel_orientation() to > + * set the property before drm_dev_register(). Otherwise there will be > + * a WARN_ON if orientation is set after drm is registered. > + */ Should this comment also be a "TODO: Remove once all drm drivers call drm_connector_set_panel_orientation()"? > drm_connector_set_panel_orientation(connector, lvds->orientation); > > return 1; > } > > +static enum drm_panel_orientation panel_lvds_get_orientation,(struct drm_panel *panel) Stray comma here ---^ > +{ > + struct panel_lvds *lvds = to_panel_lvds(panel); > + > + return lvds->orientation; > +} > +
diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c index f11252fb00fe..491b64c2c8d6 100644 --- a/drivers/gpu/drm/panel/panel-lvds.c +++ b/drivers/gpu/drm/panel/panel-lvds.c @@ -99,15 +99,30 @@ static int panel_lvds_get_modes(struct drm_panel *panel, drm_display_info_set_bus_formats(&connector->display_info, &lvds->bus_format, 1); connector->display_info.bus_flags = lvds->bus_flags; + + /* + * drm drivers are expected to call drm_panel_get_orientation() to get + * panel's orientation then drm_connector_set_panel_orientation() to + * set the property before drm_dev_register(). Otherwise there will be + * a WARN_ON if orientation is set after drm is registered. + */ drm_connector_set_panel_orientation(connector, lvds->orientation); return 1; } +static enum drm_panel_orientation panel_lvds_get_orientation,(struct drm_panel *panel) +{ + struct panel_lvds *lvds = to_panel_lvds(panel); + + return lvds->orientation; +} + static const struct drm_panel_funcs panel_lvds_funcs = { .unprepare = panel_lvds_unprepare, .prepare = panel_lvds_prepare, .get_modes = panel_lvds_get_modes, + .get_orientation = panel_lvds_get_orientation, }; static int panel_lvds_parse_dt(struct panel_lvds *lvds)