[Letux-kernel] drm/omap: Remove panel-dpi driver
H. Nikolaus Schaller
hns at goldelico.com
Fri Apr 19 12:12:02 CEST 2019
Hi,
> Am 18.04.2019 um 21:59 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>
> Hi Tomi,
> just a short update.
>
>> 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?
BR and thanks,
Nikolaus
More information about the Letux-kernel
mailing list