.../devicetree/bindings/display/ti/ti,am65x-dss.yaml | 6 ++++++ Documentation/devicetree/bindings/mfd/syscon.yaml | 3 ++- arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 6 ++++++ drivers/gpu/drm/tidss/tidss_dispc.c | 14 ++++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-)
Currently the driver only configure the data edge sampling partially. The
AM62 require it to be configured in two distincts registers: one in tidss
and one in the general device registers.
Introduce a new dt property to link the proper syscon node from the main
device registers into the tidss driver.
Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
---
Cc: stable@vger.kernel.org
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
---
Louis Chauvet (4):
dt-bindings: display: ti,am65x-dss: Add clk property for data edge synchronization
dt-bindings: mfd: syscon: Add ti,am625-dss-clk-ctrl
arm64: dts: ti: k3-am62-main: Add tidss clk-ctrl property
drm/tidss: Fix sampling edge configuration
.../devicetree/bindings/display/ti/ti,am65x-dss.yaml | 6 ++++++
Documentation/devicetree/bindings/mfd/syscon.yaml | 3 ++-
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 6 ++++++
drivers/gpu/drm/tidss/tidss_dispc.c | 14 ++++++++++++++
4 files changed, 28 insertions(+), 1 deletion(-)
---
base-commit: 85c23f28905cf20a86ceec3cfd7a0a5572c9eb13
change-id: 20250730-fix-edge-handling-9123f7438910
Best regards,
--
Louis Chauvet <louis.chauvet@bootlin.com>
Hi Louis,
On 30-07-2025 22:32, Louis Chauvet wrote:
> Currently the driver only configure the data edge sampling partially. The
> AM62 require it to be configured in two distincts registers: one in tidss
> and one in the general device registers.
>
> Introduce a new dt property to link the proper syscon node from the main
> device registers into the tidss driver.
>
> Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
> ---
> Cc: stable@vger.kernel.org
>
> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
>
> ---
Just wanted to check if you're planning to send a v2?
Regards,
Swamil
> Louis Chauvet (4):
> dt-bindings: display: ti,am65x-dss: Add clk property for data edge synchronization
> dt-bindings: mfd: syscon: Add ti,am625-dss-clk-ctrl
> arm64: dts: ti: k3-am62-main: Add tidss clk-ctrl property
> drm/tidss: Fix sampling edge configuration
>
> .../devicetree/bindings/display/ti/ti,am65x-dss.yaml | 6 ++++++
> Documentation/devicetree/bindings/mfd/syscon.yaml | 3 ++-
> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 6 ++++++
> drivers/gpu/drm/tidss/tidss_dispc.c | 14 ++++++++++++++
> 4 files changed, 28 insertions(+), 1 deletion(-)
> ---
> base-commit: 85c23f28905cf20a86ceec3cfd7a0a5572c9eb13
> change-id: 20250730-fix-edge-handling-9123f7438910
>
> Best regards,
Hi,
On 30/07/2025 20:02, Louis Chauvet wrote:
> Currently the driver only configure the data edge sampling partially. The
> AM62 require it to be configured in two distincts registers: one in tidss
> and one in the general device registers.
>
> Introduce a new dt property to link the proper syscon node from the main
> device registers into the tidss driver.
>
> Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
> ---
> Cc: stable@vger.kernel.org
>
> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
I understand why you call this a fix, but I think this is not really a
fix. From looking at the patches, my understanding is that for DPI
outputs we have always only supported certain clock/data edge. So this
series is adding a new feature to the driver.
You can add new things to the DT bindings, but you have to keep the old
bindings working.
Tomi
Hi Tomi, Louis,
On 07/08/25 18:51, Tomi Valkeinen wrote:
> Hi,
>
> On 30/07/2025 20:02, Louis Chauvet wrote:
>> Currently the driver only configure the data edge sampling partially. The
>> AM62 require it to be configured in two distincts registers: one in tidss
>> and one in the general device registers.
>>
>> Introduce a new dt property to link the proper syscon node from the main
>> device registers into the tidss driver.
>>
>> Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
>> ---
>> Cc: stable@vger.kernel.org
>>
>> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
>
> I understand why you call this a fix, but I think this is not really a
> fix. From looking at the patches, my understanding is that for DPI
> outputs we have always only supported certain clock/data edge.
I don't think driver makes a distinction between supported/unsupported
or errors out in case it is run with "different" clock/data edge panel
(for e.g DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE is set per the panel
configuration). Instead it tries to program the VP registers per the
DRM_BUS_FLAG* getting passed by framework per the connected panel and
gives an incorrect behavior if those are different than defaults since
those settings are not sufficient for these displays and instead extra
MMR register settings are also required.
So this
> series is adding a new feature to the driver.
>
I think it is a bug due to above mentioned behavior, and good to have a
Fixes tag.
Regards
Devarsh
Hi,
On 08/08/2025 16:24, devarsh wrote:
> Hi Tomi, Louis,
>
> On 07/08/25 18:51, Tomi Valkeinen wrote:
>> Hi,
>>
>> On 30/07/2025 20:02, Louis Chauvet wrote:
>>> Currently the driver only configure the data edge sampling partially. The
>>> AM62 require it to be configured in two distincts registers: one in tidss
>>> and one in the general device registers.
>>>
>>> Introduce a new dt property to link the proper syscon node from the main
>>> device registers into the tidss driver.
>>>
>>> Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
>>> ---
>>> Cc: stable@vger.kernel.org
>>>
>>> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
>>
>> I understand why you call this a fix, but I think this is not really a
>> fix. From looking at the patches, my understanding is that for DPI
>> outputs we have always only supported certain clock/data edge.
>
> I don't think driver makes a distinction between supported/unsupported
> or errors out in case it is run with "different" clock/data edge panel
> (for e.g DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE is set per the panel
> configuration). Instead it tries to program the VP registers per the
> DRM_BUS_FLAG* getting passed by framework per the connected panel and
> gives an incorrect behavior if those are different than defaults since
> those settings are not sufficient for these displays and instead extra
> MMR register settings are also required.
Well, this gets into the meaning of "fix". I didn't right away see an
explicit definition in the kernel docs.
When the tidss driver was added, neither AM62x nor AM62A existed. Yet
this series "fixes" the original tidss commit for AM62x and AM62A? And
the patch proposes that this series is to be backported to stable
kernels going back to the original tidss commit?
When AM62x and AM62A support was added to the tidss, this feature was
not in the driver. So this is clearly also not a regression. Missing
this feature causes no crashes or other system level misbehavior. It
only causes the panels (that have never been supported with tidss on
AM62x and AM62A) to show garbage.
So we have a driver, to which support for new SoCs was added at some
later point, and at that point we did not add support for all kinds of
panels. Is adding support for those panels a new feature or a bug fix?
Should it be backported to stable kernels?
Documentation/process/stable-kernel-rules.rst has some guidelines. Maybe
one could argue that this is a "hardware quirk" mentioned there, or
perhaps "add a device ID" (of sorts). I might agree, if this was an
easily backportable, totally non-controversial, one-liner style patch
with no chance of regressions. Maybe the next version will be, but this
one is not.
Tomi
Le 11/08/2025 à 09:56, Tomi Valkeinen a écrit :
> Hi,
>
> On 08/08/2025 16:24, devarsh wrote:
>> Hi Tomi, Louis,
>>
>> On 07/08/25 18:51, Tomi Valkeinen wrote:
>>> Hi,
>>>
>>> On 30/07/2025 20:02, Louis Chauvet wrote:
>>>> Currently the driver only configure the data edge sampling partially. The
>>>> AM62 require it to be configured in two distincts registers: one in tidss
>>>> and one in the general device registers.
>>>>
>>>> Introduce a new dt property to link the proper syscon node from the main
>>>> device registers into the tidss driver.
>>>>
>>>> Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
>>>> ---
>>>> Cc: stable@vger.kernel.org
>>>>
>>>> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
>>>
>>> I understand why you call this a fix, but I think this is not really a
>>> fix. From looking at the patches, my understanding is that for DPI
>>> outputs we have always only supported certain clock/data edge.
>>
>> I don't think driver makes a distinction between supported/unsupported
>> or errors out in case it is run with "different" clock/data edge panel
>> (for e.g DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE is set per the panel
>> configuration). Instead it tries to program the VP registers per the
>> DRM_BUS_FLAG* getting passed by framework per the connected panel and
>> gives an incorrect behavior if those are different than defaults since
>> those settings are not sufficient for these displays and instead extra
>> MMR register settings are also required.
>
> Well, this gets into the meaning of "fix". I didn't right away see an
> explicit definition in the kernel docs.
>
> When the tidss driver was added, neither AM62x nor AM62A existed. Yet
> this series "fixes" the original tidss commit for AM62x and AM62A? And
> the patch proposes that this series is to be backported to stable
> kernels going back to the original tidss commit?
I overlooked the initial commit, I agree this should be limited to
ad2ac9dc9426 ("drm/tidss: Add support for AM625 DSS").
> When AM62x and AM62A support was added to the tidss, this feature was
> not in the driver. So this is clearly also not a regression. Missing
> this feature causes no crashes or other system level misbehavior. It
> only causes the panels (that have never been supported with tidss on
> AM62x and AM62A) to show garbage.
For me the driver explicitly support different data sampling edge from
the start, but when the AM625 was added, the implementation missed this
quirk, so we have a broken driver for this platform.
> So we have a driver, to which support for new SoCs was added at some
> later point, and at that point we did not add support for all kinds of
> panels. Is adding support for those panels a new feature or a bug fix?
> Should it be backported to stable kernels?
>
> Documentation/process/stable-kernel-rules.rst has some guidelines. Maybe
> one could argue that this is a "hardware quirk" mentioned there, or
> perhaps "add a device ID" (of sorts).
For me this clearly falls in the "hardware quirk" category, as we need
this quirk on some platforms.
> I might agree, if this was an
> easily backportable, totally non-controversial, one-liner style patch
> with no chance of regressions. Maybe the next version will be, but this
> one is not.
Ack, we will see how the v2 will be. If the v2 is not too complex, I
will keep the fixes tag (on the proper commit).
Thanks,
Louis Chauvet
> Tomi
>
--
Louis Chauvet, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Hi Louis,
On 30-07-2025 22:32, Louis Chauvet wrote:
> Currently the driver only configure the data edge sampling partially. The
> AM62 require it to be configured in two distincts registers: one in tidss
> and one in the general device registers.
>
> Introduce a new dt property to link the proper syscon node from the main
> device registers into the tidss driver.
>
> Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
> ---
We are planning to re-spin the series with a v2.
If you have any concerns please inform.
Regards,
Swamil
> Cc: stable@vger.kernel.org
>
> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
>
> ---
> Louis Chauvet (4):
> dt-bindings: display: ti,am65x-dss: Add clk property for data edge synchronization
> dt-bindings: mfd: syscon: Add ti,am625-dss-clk-ctrl
> arm64: dts: ti: k3-am62-main: Add tidss clk-ctrl property
> drm/tidss: Fix sampling edge configuration
>
> .../devicetree/bindings/display/ti/ti,am65x-dss.yaml | 6 ++++++
> Documentation/devicetree/bindings/mfd/syscon.yaml | 3 ++-
> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 6 ++++++
> drivers/gpu/drm/tidss/tidss_dispc.c | 14 ++++++++++++++
> 4 files changed, 28 insertions(+), 1 deletion(-)
> ---
> base-commit: 85c23f28905cf20a86ceec3cfd7a0a5572c9eb13
> change-id: 20250730-fix-edge-handling-9123f7438910
>
> Best regards,
© 2016 - 2026 Red Hat, Inc.