On Mon, May 30, 2022 at 4:53 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > Hi, > > On 5/30/22 10:19, Hsin-Yi Wang wrote: > > Some drivers, eg. mtk_drm and msm_drm, rely on the panel to set the > > orientation. Panel calls drm_connector_set_panel_orientation() to create > > orientation property and sets the value. However, connector properties > > can't be created after drm_dev_register() is called. The goal is to > > separate the orientation property creation, so drm drivers can create it > > earlier before drm_dev_register(). > > Sorry for jumping in pretty late in the discussion (based on the v10 > I seem to have missed this before). > > This sounds to me like the real issue here is that drm_dev_register() > is getting called too early? > Right. > To me it seems sensible to delay calling drm_dev_register() and > thus allowing userspace to start detecting available displays + > features until after the panel has been probed. > Most panels set this value very late, in .get_modes callback (since it is when the connector is known), though the value was known during panel probe. I think we can also let drm check if they have remote panel nodes: If there is a panel and the panel sets the orientation, let the drm read this value and set the property. Does this workflow sound reasonable? The corresponding patch to implement this: https://patchwork.kernel.org/project/linux-mediatek/patch/20220530113033.124072-1-hsinyi@xxxxxxxxxxxx/ Thanks > I see a devicetree patch in this series, so I guess that the panel > is described in devicetree. Especially in the case of devicetree > I would expect the kernel to have enough info to do the right > thing and make sure the panel is probed before calling > drm_dev_register() ? > > Regards, > > Hans > > > > > > > > After this series, drm_connector_set_panel_orientation() works like > > before. It won't affect existing callers of > > drm_connector_set_panel_orientation(). The only difference is that > > some drm drivers can call drm_connector_init_panel_orientation_property() > > earlier. > > > > Hsin-Yi Wang (4): > > gpu: drm: separate panel orientation property creating and value > > setting > > drm/mediatek: init panel orientation property > > drm/msm: init panel orientation property > > arm64: dts: mt8183: Add panel rotation > > > > .../arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 1 + > > drivers/gpu/drm/drm_connector.c | 58 ++++++++++++++----- > > drivers/gpu/drm/mediatek/mtk_dsi.c | 7 +++ > > drivers/gpu/drm/msm/dsi/dsi_manager.c | 4 ++ > > include/drm/drm_connector.h | 2 + > > 5 files changed, 59 insertions(+), 13 deletions(-) > > >