On Tuesday, March 24th, 2026 at 23:20, Dmitry Baryshkov 
<[email protected]> wrote:

> On Tue, Mar 24, 2026 at 01:10:13PM +0000, cristian_ci wrote:
> > On Saturday, March 21st, 2026 at 17:46, Dmitry Baryshkov 
> > <[email protected]> wrote:
> >
> > > This is not enough to identify the panel. This name identifies the
> > > controller inside the panel, however the exact settings (and the
> > > behaviour) would depend on the exact TFT "glass" used with this
> > > controller. Downstream usually doesn't care that much and frequently
> > > just uses the controller name or the the controller with some kind of
> > > "description" like ("wqhd-dsc-cmd").
> >
> > Ok but I just don't understand the following: I'd like to know (also
> > considering that I find it difficult to find someone, outside of this
> > ML, available to discuss this stuff, specifically) exactly why the
> > current bindings are not enough.
> > I mean: looking at schematics and datasheets of other similar devices
> > and based on observations about my device, I believe the generic bindings
> > approach for nt35532 works quite well for panels.
> > Novatek made the IC first and then whoever buys it can be a display
> > vendor. If we talk about downstream, differences between panels are 
> > described
> > there (i.e. my panel makes use of four supplies, while other ones could use
> > a different configuration).
> 
> Different "glass" means different programming sequences. Take a look
> at the existing drivers which handle multiple panels. Sequences, modes,
> etc. are different though the DDIC (controller) is the same. For Android
> kernels this is handled by putting all the information into the DT. This
> approach does not align well with the upstream DT expectations /
> guidelines / philosophy / etc.

True. I completely forgot about that, my bad. Yes, vendors handle init 
sequences, modes and other information in the DT, while upstream puts 
initialization into panel driver. Now, I've looked at panel-sitronix-st7703.c 
driver to get an example of multiple panels supported by the same DDIC 
driver.

> For example, let's take two NT35532 panels described by [1], [2]. The
> sequences are somewhat similar, but the contents is completely
> different. From the upstream point of view, each should be described by
> its own compatible string (so that the kernel can identify them).
> 
> [1] 
> https://github.com/eliot-shao/qcom/blob/master/display/LCM-NT35532-JM55FH-1080p/kernel/arch/arm/boot/dts/qcom/dsi-panel-nt35532-jm55fh-1080p-video.dtsi
> [2] 
> https://github.com/balika011/android_kernel_xiaomi_msm8953/blob/master/arch/arm/boot/dts/qcom/dsi-panel-nt35532-fhd-video.dtsi
> 
> >
> > > What does it mean for the upstream:
> > > - Try identifying the actual panel used for the phones. Sometimes
> > >   googling for spare or replacement parts would reveal such a name.
> > >   Sometimes it can be seen as a marking on the cable or on the backside
> > >   of the panel (again, googling).
> >
> > It seems that 'google' approach fails, in my case :( (I only know that
> > the vendor assigned Smartron the work to design the HW - but SW too -
> > of the device. Nevertheless, Smartron is neither OEM nor ODM, so the
> > company was relying, at the time, on a series of chinese manufacturers to 
> > provide
> > parts required for this device, including panel suppliers: in general,
> > the list of panel suppliers for Smartron includes BOE, Tianma and other 
> > known
> > companies. So, this panel may be any of those, paired with NT35532, and work
> > anyway). Unfortunately, even if marking on the cable is known, that doesn't
> > identify the panel but the cable itself (which is available on the market,
> > though), instead, in this case.
> >
> > > - If not found, come up with some artificial identifier that would
> > >   identify the controller+glass combo (e.g. "tianma,fhd-video" or
> > >   "lenovo,j606f-boe-nt36523w" (where lenovo,j6006f is a device name and
> > >   boe is a "supplier").
> >
> > Assuming that resources available which I've as source of information
> > for this panel are limited (the ones also described in v1's review thread),
> > my vendor devicetree describes the panel in  
> > 'qcom,mdss_dsi_nt35532_1080p_cs_video'
> > node and makes use of:
> >
> > qcom,mdss-dsi-panel-name = "nt35532 1080p cs video mode dsi panel";
> >
> > property. Until now, close-to-mainline devicetree I was using the following
> > compatible for the panel:
> >
> > compatible = "flipkart,rimob-nt35532-cs";
> 
> In the lack of any information, this is probably as good as anything
> else. Please describe in your commit message that you don't know the
> exact vendor of the panel (nor the id of the panel). 

Ok, apart adding a new compatible ("flipkart,rimob-panel-nt35532-cs") to 
dt-bindings (patch 1/6) - leaving  "novatek,nt35532" as fallback - and 
setting that to panel node (patch 3/6), I'll have to change (patch 2/6) 
too, by renaming nt35532_on to rimob_panel_on and so on for nt35532_off, 
nt35532_mode; by adding a new struct named rimob_panel_desc defining 
.mode, .on, .off members and moving .lanes, .format and .mode_flags from 
nt35532_probe to this new desc specific struct and by adding .data argument 
to nt35532_of_match. What about the other nt35532 functions (i.e. 
nt35532_reset)?

> > and I'm not sure about the exact meaning of 'cs' suffix. I cannot state 'CS'
> > as panel supplier and use that upstream without proof/evidence. What do
> > you suggest, in this regard?
> >
> >
> 
> --
> With best wishes
> Dmitry
>

Reply via email to