[Letux-kernel] drm/omap: Remove panel-dpi driver
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Apr 19 15:07:37 CEST 2019
Hi Nikolaus,
On Fri, Apr 19, 2019 at 12:12:02PM +0200, H. Nikolaus Schaller wrote:
> > Am 18.04.2019 um 21:59 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> >> Am 11.04.2019 um 09:19 schrieb Tomi Valkeinen <tomi.valkeinen at ti.com>:
> >>
> >>>>>> You will need the panel data to be added to the simple panel driver, as
> >>>>>> it won't read the timings from the DT (unfortunately, in my opinion).
> >>>>>
> >>>>> Hm. How does this work? Is there a description? I have no experience with
> >>>>> DRM simple panel.
> >>>>
> >>>> See drivers/gpu/drm/panel/panel-simple.c, it just has a list of
> >>>> compatibles, and pointers to the (more or less) same data as is in the
> >>>> DT. And see a commit that adds a new panel, e.g. "drm/panel: simple: Add
> >>>> OSD070T1718-19TS panel support".
> >>>
> >>> Ok, I see. So the task is converting the nice and tested DTS properties to
> >>> magic numbers in code... Let's hope without introducing new bugs.
> >
> > I have started with this and it was easy to add new panels to the database
> > in panel-simple. But it seems not to probe successfully and omapdss does
> > not initialize. Even if I modprobe panel_simple manually.
> >
> > The DTS looks like (is still working with 5.1 panel-dpi driver):
> >
> > / {
> > model = "Goldelico GTA04b3/Letux 7004";
> > lcd: lcd {
> > compatible = "sharp,lq070y3dg3b",
> > "panel-dpi";
> > label = "lcd";
> > enable-gpios = <&gpio1 12 0>;
> >
> > panel-timing {
> > clock-frequency = <33260000>;
> >
> > hback-porch = <64>;
> > hactive = <800>;
> > hfront-porch = <64>;
> > hsync-len = <128>;
> >
> > vback-porch = <35>;
> > vactive = <480>;
> > vfront-porch = <8>;
> > vsync-len = <2>;
> >
> > hsync-active = <0>;
> > vsync-active = <0>;
> > de-active = <1>;
> > pixelclk-active = <1>;
> >
> > };
> >
> > port {
> > lcd_in: endpoint {
> > remote-endpoint = <&dpi_out>;
> > };
> > };
> > };
> > };
> >
> > and the module database knows the compatible string:
> >
> > root at letux:~# modprobe -c | fgrep sharp,lq070y3dg3b
> > alias of:N*T*Csharp,lq070y3dg3b panel_simple
> > alias of:N*T*Csharp,lq070y3dg3bC* panel_simple
> > root at letux:~#
> >
> > Next thing I plan do is to find out why the panel-simple driver is not matched
> > by the panel DTS record.
>
> There is something strange:
>
> root at letux:/proc/device-tree/lcd# xxd compatible
> 0000000: 6f6d 6170 6473 732c 7368 6172 702c 6c71 omapdss,sharp,lq
> 0000010: 3037 3079 3364 6733 6200 6f6d 6170 6473 070y3dg3b.omapds
> 0000020: 732c 7061 6e65 6c2d 6470 6900 s,panel-dpi.
> root at letux:/proc/device-tree/lcd# fdtdump /sys/firmware/fdt | fgrep lq070
> compatible = "sharp,lq070y3dg3b", "panel-dpi";
> root at letux:/proc/device-tree/lcd#
>
> which means that somehow the device tree is rewritten to prefix the panel name
> by "omapdss,".
>
> What I have done is to use 5.1-rc5, apply the "drm/omap: Remove panel-dpi driver"
> patch and add database records to panel-simple.
>
> If I add to panel-simple
> }, {
> .compatible = "omapdss,sharp,lq070y3dg3b",
> .data = &sharp_lq070y3dg3b,
> }, {
>
> the driver is loaded during boot, but still not working. Probing of omapdss_dss
> fails and I don't get a /dev/fb0.
>
> Am I missing another patch from linux-next to make panel-dpi removal completely work?
You need to remove panel-dpi from the omapdss_of_fixups_whitelist[]
array in drivers/gpu/drm/omapdrm/dss/omapdss-boot-init.c. It looks like
I missed that. Would you like me to submit a patch or to do it yourself
?
--
Regards,
Laurent Pinchart
More information about the Letux-kernel
mailing list