Re: [PATCH v5 3/6] drm/mipi-dsi: Add flag to support dual-panel configurations
From: Jun Nie
Date: Sun Oct 04 2026 - 09:58:52 EST
Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx> 于2026年10月1日周四 03:43写道:
>
> On Wed, Sep 30, 2026 at 09:52:48PM +0800, Jun Nie wrote:
> > Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx> 于2026年9月30日周三 00:05写道:
> > >
> > > On Mon, Jul 27, 2026 at 04:08:42PM +0800, Jun Nie wrote:
> > > > Some devices treat two independent physical DSI panels as a single
> > > > logical panel from the CRTC's perspective. However, two separate DSI
> > > > hosts are still required to drive the panels individually.
> > > >
> > > > Introduce a `dual_panel` flag to the `mipi_dsi_device` struct. This
> > > > allows a panel driver to inform the DSI host that it is part of a
> > > > dual-panel setup, enabling the host to coordinate both physical
> > > > displays as one.
> > > >
> > > > This change does not force individual panel driver to manage
> > > > system-level display topology if the driver does not intended to
> > > > support dual panel topology. Only the driver that set the flag to
> > > > true need to take care of panel topology.
> > > >
> > > > Signed-off-by: Jun Nie <jun.nie@xxxxxxxxxx>
> > > > ---
> > > > include/drm/drm_mipi_dsi.h | 2 ++
> > > > 1 file changed, 2 insertions(+)
> > >
> > > Do you have a single MIPI DSI device, or are there two independent MIPI
> > > DSI devices? In the latter case, the flag is wrongly placed.
> >
> > Yes, there are 2 mipi devices, and 2 mipi hosts. This flag is used for
> > mipi device
> > to notify host they are one of dual panels, so that horizontal
> > configuration(width)
> > in mipi host can be handled correctly. Where do you suggest to put this flag?
> > Thanks!
>
> Into the msm DSI structures. We already have several Qualcomm-specific
> flags. I'm thinking from the 'generic device' point of view. The
> 'dual_panel' doesn't mean anything if the device has more than two DSI
> hosts. You need to specify which hosts are mapped to L or R channels, etc.
How about to add below 3 members regarding multiple physical panels in
single logic panel. We have h*v panels in a panel wall. The index start from
0 when we iterate panel from left to right of the top array of panel wall. In
XR case, we have num_panel_h = 2; num_panel_v = 1; and
panel_index = 0 for left channel, panel_index = 1 for right channel. The
original framebuffer is divided into width/num_panel_h and
height/num_panel_v for each panel's DSI link.
u32 num_panel_h;
u32 num_panel_v;
u32 panel_index;
>
> --
> With best wishes
> Dmitry