Re: [v1,1/3] drm/panel: ili9341: Correct use of device property APIs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,


On 2024/4/26 02:08, Sui Jingfeng wrote:
Hi,


On 2024/4/25 22:26, Andy Shevchenko wrote:
It seems driver missed the point of proper use of device property APIs.
Correct this by updating headers and calls respectively.

You are using the 'seems' here exactly saying that you are not 100% sure.

Using the word 'seems' here exactly saying that you are not 100% sure.


And this patch is has the risks to be wrong.

This patch has the risks of to be wrong.


Simple because the "ili9341_probe() ---> ili9341_dbi_prob()" code path
is DT dependent.

Simply because part of the driver is DT dependent, plus its code(implementation)
is deep(tight) coupling, as a result, it is became total DT dependent.


First of all, the devm_of_find_backlight() is called in ili9341_dbi_probe()
,
under *non-DT* environment,

Under *non-DT* environment, the use case probably should take into consideration.
Since you remove it, then we can't stop imagining. But if we really care about
the usage case on DT based systems, There is *NO* difference between the
device_get_match_data() and the of_device_get_match_data(). This is the reason
why I'm saying that you patch has the *ZERO* effects.

And again, on non-DT systems, if there is no acpi_device_id stuff, calling
the device_get_match_data() function will just get NULL. Which is nearly a
undefined behavior. So the 'OF 'removal is don't really make much sense.

But there is a way to save the awkward situation, that is, helps to get
this patch[1] merged. Then we still tenable both at the practice side
and at the concept side.
[1] https://patchwork.freedesktop.org/patch/590653/?series=131296&rev=2

devm_of_find_backlight() is just a just a  no-op and will return NULL. NULL is not an error code, so ili9341_dbi_probe() won't rage quit.

[...]

But the several side effect is that the backlight will NOT works at all.

s/several/severe


It is actually considered as fatal bug for *panels* if the backlight of
it is not light up,


It's fatal error if backlight is not adjustable or not light-up at all.




[...]


Even though the itself panel is refreshing framebuffers,

Even though the panel itself is consuming frame-buffers and displaying.
But if the backlight not work, the screen is extremely dark, we can not
see as well.

Besides the ili9341_dbi_probe() requires additional device properties to
able to work very well. Especially on the rotate screen use case.





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux