lkml.org 
[lkml]   [2022]   [May]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v10 0/4] Separate panel orientation property creating and value setting
    On Mon, May 30, 2022 at 4:53 PM Hans de Goede <hdegoede@redhat.com> 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@chromium.org/

    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(-)
    > >
    >

    \
     
     \ /
      Last update: 2022-05-30 13:37    [W:3.076 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site