lkml.org 
[lkml]   [2023]   [Oct]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [RFC PATCH 03/10] drm/mipi-dsi: add API for manual control over the DSI link power state
    On Mon, 23 Oct 2023 at 09:52, Alexander Stein
    <alexander.stein@ew.tq-group.com> wrote:
    >
    > Hi Dmitry,
    >
    > Am Sonntag, 22. Oktober 2023, 12:49:41 CEST schrieb Dmitry Baryshkov:
    > > On Thu, 19 Oct 2023 at 14:42, Alexander Stein
    > >
    > > <alexander.stein@ew.tq-group.com> wrote:
    > > > Hi,
    > > >
    > > > Am Donnerstag, 19. Oktober 2023, 13:19:51 CEST schrieb Dmitry Baryshkov:
    > > > > On Thu, 19 Oct 2023 at 12:26, Maxime Ripard <mripard@kernel.org> wrote:
    > > > > > On Mon, Oct 16, 2023 at 07:53:48PM +0300, Dmitry Baryshkov wrote:
    > > > > > > The MIPI DSI links do not fully fall into the DRM callbacks model.
    > > > > >
    > > > > > Explaining why would help
    > > > >
    > > > > A kind of explanation comes afterwards, but probably I should change
    > > > > the order of the phrases and expand it:
    > > > >
    > > > > The atomic_pre_enable / atomic_enable and correspondingly
    > > > > atomic_disable / atomic_post_disable expect that the bridge links
    > > > > follow a simple paradigm: either it is off, or it is on and streaming
    > > > > video. Thus, it is fine to just enable the link at the enable time,
    > > > > doing some preparations during the pre_enable.
    > > > >
    > > > > But then it causes several issues with DSI. First, some of the DSI
    > > > > bridges and most of the DSI panels would like to send commands over
    > > > > the DSI link to setup the device. Next, some of the DSI hosts have
    > > > > limitations on sending the commands. The proverbial sunxi DSI host can
    > > > > not send DSI commands after the video stream has started. Thus most of
    > > > > the panels have opted to send all DSI commands from pre_enable (or
    > > > > prepare) callback (before the video stream has started).
    > > > >
    > > > > However this leaves no good place for the DSI host to power up the DSI
    > > > > link. By default the host's pre_enable callback is called after the
    > > > > DSI bridge's pre_enable. For quite some time we were powering up the
    > > > > DSI link from mode_set. This doesn't look fully correct. And also we
    > > > > got into the issue with ps8640 bridge, which requires for the DSI link
    > > > > to be quiet / unpowered at the bridge's reset time.
    > > >
    > > > There are also bridges (e.g. tc358767) which require DSI-LP11 upon bridge
    > > > reset. And additionally this DSI-(e)DP bridge requires LP11 while
    > > > accessing
    > > > DP-AUX channel, e.g. reading EDID. So bridges need at least some control
    > > > over DSI line state.
    > >
    > > For sending commands in LP11 it is typical to toggle the
    > > MIPI_DSI_MODE_LPM flag, for example see panel-=jdi-lt070me05000.c or
    > > some other drives. It might be a good idea to make that more explicit.
    > > All suggestions here would be appreciated.
    >
    > The biggest difference between that display and the tc358767 bridge is that
    > the display uses DSI commands, while the bridge is using i2c transfer to issue
    > DP-AUX commands. There is no host_transfer [1] which would enable LP-11.
    > It seems this DSI-DP bridge requires LP-11/HS on DSI lanes all times. This
    > contradicts current Linux behaviour.

    I see. I took a quick glance at the driver. Does the device mark AUX
    as busy when there is a HS transfer?
    Because otherwise it might be pretty hard to synchronise DP-AUX
    transfers with the DSI link state. We might need to add an API for
    this, if the DSI hosts actually can signal the blanking / DSI LP.

    Side note: the driver needs some care. It doesn't support the aux-bus
    bindings for eDP panels, it doesn't support other bridges on top of DP
    connectors (but there can be e..g. dp-connector device).

    >
    > Best regards,
    > Alexander
    >
    > [1] https://www.kernel.org/doc/html/latest/gpu/drm-kms-helpers.html#mipi-dsi-bridge-operation


    --
    With best wishes
    Dmitry

    \
     
     \ /
      Last update: 2023-10-23 09:36    [W:4.912 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site