<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/gpu/drm/tidss, branch linux-6.14.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.14.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.14.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2024-12-12T22:48:09Z</updated>
<entry>
<title>Merge tag 'drm-misc-next-2024-12-05' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next</title>
<updated>2024-12-12T22:48:09Z</updated>
<author>
<name>Dave Airlie</name>
</author>
<published>2024-12-12T22:20:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c7d6cb4c43a6baf940f4ae42541dcc1a1a74b2a3'/>
<id>urn:sha1:c7d6cb4c43a6baf940f4ae42541dcc1a1a74b2a3</id>
<content type='text'>
[airlied: handle module ns conflict]

drm-misc-next for 6.14:

UAPI Changes:

Cross-subsystem Changes:

Core Changes:
  - Remove driver date from drm_driver

Driver Changes:
  - amdxdna: New driver!
  - ivpu: Fix qemu crash when using passthrough
  - nouveau: expose GSP-RM logging buffers via debugfs
  - panfrost: Add MT8188 Mali-G57 MC3 support
  - panthor: misc improvements,
  - rockchip: Gamma LUT support
  - tidss: Misc improvements
  - virtio: convert to helpers, add prime support for scanout buffers
  - v3d: Add DRM_IOCTL_V3D_PERFMON_SET_GLOBAL
  - vc4: Add support for BCM2712
  - vkms: Improvements all across the board

  - panels:
    - Introduce backlight quirks infrastructure
    - New panels: KDB KD116N2130B12

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;

From: Maxime Ripard &lt;mripard@redhat.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20241205-agile-straight-pegasus-aca7f4@houat
</content>
</entry>
<entry>
<title>drm: remove driver date from struct drm_driver and all drivers</title>
<updated>2024-12-05T10:35:42Z</updated>
<author>
<name>Jani Nikula</name>
</author>
<published>2024-12-04T14:31:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cb2e1c2136f71618142557ceca3a8802e87a44cd'/>
<id>urn:sha1:cb2e1c2136f71618142557ceca3a8802e87a44cd</id>
<content type='text'>
We stopped using the driver initialized date in commit 7fb8af6798e8
("drm: deprecate driver date") and (eventually) started returning "0"
for drm_version ioctl instead.

Finish the job, and remove the unused date member from struct
drm_driver, its initialization from drivers, along with the common
DRIVER_DATE macros.

v2: Also update drivers/accel (kernel test robot)

Reviewed-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Acked-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Acked-by: Simon Ser &lt;contact@emersion.fr&gt;
Acked-by: Jeffrey Hugo &lt;quic_jhugo@quicinc.com&gt;
Acked-by: Lucas De Marchi &lt;lucas.demarchi@intel.com&gt;
Acked-by: Dmitry Baryshkov &lt;dmitry.baryshkov@linaro.org&gt; # msm
Reviewed-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/1f2bf2543aed270a06f6c707fd6ed1b78bf16712.1733322525.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>Get rid of 'remove_new' relic from platform driver struct</title>
<updated>2024-12-01T23:12:43Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2024-12-01T23:12:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e70140ba0d2b1a30467d4af6bcfe761327b9ec95'/>
<id>urn:sha1:e70140ba0d2b1a30467d4af6bcfe761327b9ec95</id>
<content type='text'>
The continual trickle of small conversion patches is grating on me, and
is really not helping.  Just get rid of the 'remove_new' member
function, which is just an alias for the plain 'remove', and had a
comment to that effect:

  /*
   * .remove_new() is a relic from a prototype conversion of .remove().
   * New drivers are supposed to implement .remove(). Once all drivers are
   * converted to not use .remove_new any more, it will be dropped.
   */

This was just a tree-wide 'sed' script that replaced '.remove_new' with
'.remove', with some care taken to turn a subsequent tab into two tabs
to make things line up.

I did do some minimal manual whitespace adjustment for places that used
spaces to line things up.

Then I just removed the old (sic) .remove_new member function, and this
is the end result.  No more unnecessary conversion noise.

Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>drm/tidss: Rename 'wait_lock' to 'irq_lock'</title>
<updated>2024-11-25T11:10:23Z</updated>
<author>
<name>Tomi Valkeinen</name>
</author>
<published>2024-10-21T14:07:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=78f5685f412d4f7d752da9733bed137854604cda'/>
<id>urn:sha1:78f5685f412d4f7d752da9733bed137854604cda</id>
<content type='text'>
The 'wait_lock' name seems to be a copy-paste from omapdrm, and makes no
sense here. Rename it to 'irq_lock'. Also clarify the related comment to
make it clear what it protects, and drop any comments related to
'wait_list' which doesn't exist in tidss.

Reviewed-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Reviewed-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20241021-tidss-irq-fix-v1-7-82ddaec94e4a@ideasonboard.com
</content>
</entry>
<entry>
<title>drm/tidss: Fix race condition while handling interrupt registers</title>
<updated>2024-11-25T11:10:22Z</updated>
<author>
<name>Devarsh Thakkar</name>
</author>
<published>2024-10-21T14:07:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a9a73f2661e6f625d306c9b0ef082e4593f45a21'/>
<id>urn:sha1:a9a73f2661e6f625d306c9b0ef082e4593f45a21</id>
<content type='text'>
The driver has a spinlock for protecting the irq_masks field and irq
enable registers. However, the driver misses protecting the irq status
registers which can lead to races.

Take the spinlock when accessing irqstatus too.

Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
Cc: stable@vger.kernel.org
Signed-off-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
[Tomi: updated the desc]
Reviewed-by: Jonathan Cormier &lt;jcormier@criticallink.com&gt;
Tested-by: Jonathan Cormier &lt;jcormier@criticallink.com&gt;
Reviewed-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20241021-tidss-irq-fix-v1-6-82ddaec94e4a@ideasonboard.com
</content>
</entry>
<entry>
<title>drm/tidss: Clear the interrupt status for interrupts being disabled</title>
<updated>2024-11-25T11:10:22Z</updated>
<author>
<name>Devarsh Thakkar</name>
</author>
<published>2024-10-21T14:07:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=361a2ebb5cad211732ec3c5d962de49b21895590'/>
<id>urn:sha1:361a2ebb5cad211732ec3c5d962de49b21895590</id>
<content type='text'>
The driver does not touch the irqstatus register when it is disabling
interrupts.  This might cause an interrupt to trigger for an interrupt
that was just disabled.

To fix the issue, clear the irqstatus registers right after disabling
the interrupts.

Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
Cc: stable@vger.kernel.org
Reported-by: Jonathan Cormier &lt;jcormier@criticallink.com&gt;
Closes: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1394222/am625-issue-about-tidss-rcu_preempt-self-detected-stall-on-cpu/5424479#5424479
Signed-off-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
[Tomi: mostly rewrote the patch]
Reviewed-by: Jonathan Cormier &lt;jcormier@criticallink.com&gt;
Tested-by: Jonathan Cormier &lt;jcormier@criticallink.com&gt;
Reviewed-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20241021-tidss-irq-fix-v1-5-82ddaec94e4a@ideasonboard.com
</content>
</entry>
<entry>
<title>drm/tidss: Add printing of underflows</title>
<updated>2024-11-25T11:10:21Z</updated>
<author>
<name>Tomi Valkeinen</name>
</author>
<published>2024-10-21T14:07:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=76bae5b9e206d6649d1a944c0f7a6c147b8e5bf6'/>
<id>urn:sha1:76bae5b9e206d6649d1a944c0f7a6c147b8e5bf6</id>
<content type='text'>
Add printing of underflows the same way as we handle sync losts.

Reviewed-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Reviewed-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20241021-tidss-irq-fix-v1-4-82ddaec94e4a@ideasonboard.com
</content>
</entry>
<entry>
<title>drm/tidss: Remove extra K2G check</title>
<updated>2024-11-25T11:10:21Z</updated>
<author>
<name>Tomi Valkeinen</name>
</author>
<published>2024-10-21T14:07:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f8e59e62b7759b0e799922c184c3b0085d163a0c'/>
<id>urn:sha1:f8e59e62b7759b0e799922c184c3b0085d163a0c</id>
<content type='text'>
We check if the platform is K2G in dispc_k3_clear_irqstatus(), and
return early if so. This cannot happen, as the _k3_ functions are never
called on K2G in the first place. So remove the check.

Reviewed-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Reviewed-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20241021-tidss-irq-fix-v1-3-82ddaec94e4a@ideasonboard.com
</content>
</entry>
<entry>
<title>drm/tidss: Remove unused OCP error flag</title>
<updated>2024-11-25T11:10:20Z</updated>
<author>
<name>Tomi Valkeinen</name>
</author>
<published>2024-10-21T14:07:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=18f430acb41c957c87c41d240d277b135e47b367'/>
<id>urn:sha1:18f430acb41c957c87c41d240d277b135e47b367</id>
<content type='text'>
We never use the DSS_IRQ_DEVICE_OCP_ERR flag, and the HW doesn't even
have such a bit... So remove it.

Reviewed-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Reviewed-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20241021-tidss-irq-fix-v1-2-82ddaec94e4a@ideasonboard.com
</content>
</entry>
<entry>
<title>drm/tidss: Fix issue in irq handling causing irq-flood issue</title>
<updated>2024-11-25T11:10:20Z</updated>
<author>
<name>Tomi Valkeinen</name>
</author>
<published>2024-10-21T14:07:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=44b6730ab53ef04944fbaf6da0e77397531517b7'/>
<id>urn:sha1:44b6730ab53ef04944fbaf6da0e77397531517b7</id>
<content type='text'>
It has been observed that sometimes DSS will trigger an interrupt and
the top level interrupt (DISPC_IRQSTATUS) is not zero, but the VP and
VID level interrupt-statuses are zero.

As the top level irqstatus is supposed to tell whether we have VP/VID
interrupts, the thinking of the driver authors was that this particular
case could never happen. Thus the driver only clears the DISPC_IRQSTATUS
bits which has corresponding interrupts in VP/VID status. So when this
issue happens, the driver will not clear DISPC_IRQSTATUS, and we get an
interrupt flood.

It is unclear why the issue happens. It could be a race issue in the
driver, but no such race has been found. It could also be an issue with
the HW. However a similar case can be easily triggered by manually
writing to DISPC_IRQSTATUS_RAW. This will forcibly set a bit in the
DISPC_IRQSTATUS and trigger an interrupt, and as the driver never clears
the bit, we get an interrupt flood.

To fix the issue, always clear DISPC_IRQSTATUS. The concern with this
solution is that if the top level irqstatus is the one that triggers the
interrupt, always clearing DISPC_IRQSTATUS might leave some interrupts
unhandled if VP/VID interrupt statuses have bits set. However, testing
shows that if any of the irqstatuses is set (i.e. even if
DISPC_IRQSTATUS == 0, but a VID irqstatus has a bit set), we will get an
interrupt.

Co-developed-by: Bin Liu &lt;b-liu@ti.com&gt;
Signed-off-by: Bin Liu &lt;b-liu@ti.com&gt;
Co-developed-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Signed-off-by: Devarsh Thakkar &lt;devarsht@ti.com&gt;
Co-developed-by: Jonathan Cormier &lt;jcormier@criticallink.com&gt;
Signed-off-by: Jonathan Cormier &lt;jcormier@criticallink.com&gt;
Fixes: 32a1795f57ee ("drm/tidss: New driver for TI Keystone platform Display SubSystem")
Cc: stable@vger.kernel.org
Tested-by: Jonathan Cormier &lt;jcormier@criticallink.com&gt;
Reviewed-by: Aradhya Bhatia &lt;aradhya.bhatia@linux.dev&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20241021-tidss-irq-fix-v1-1-82ddaec94e4a@ideasonboard.com
</content>
</entry>
</feed>
