- from vendor / balbes, which never got merged into a real branch
- renamed files a bit, still a mess
- fixes:
- don't force panthor, remove duplicate gpu nodes all around
- disable sata node, there's no SATA, avoid deferred probe
- rename led to what it really is
- try to fix indentation with tabs, eat trailing whitespace
- remove `#if 1`'s
On boards like Youyeetoo YY3588 where the RK806 PMIC initializes late,
the cpufreq driver would fail to get the CPU regulator and abort probe.
This caused CPU frequency scaling to be unavailable.
Handle -EPROBE_DEFER from regulator_get_optional() to allow the driver
to retry when the PMIC becomes available.
HDMI-TX hardware is output-only but the driver incorrectly advertises
capture capability. This causes PulseAudio to attempt opening capture
streams, which triggers busy flag conflicts with playback streams,
resulting in mono audio output.
Solution: Disable capture support by setting channels_min/max to 0
for both I2S and SPDIF DAIs when used with HDMI-TX.
Note: Mainline kernel has the same issue. An official fix is planned
with the new HDMI Codec Framework being developed by Linaro (2025).
Fixes mono audio on: RK3576 NanoPi R76S, NanoPi M5
Tested-on: NanoPi R76S
Split the monolithic DSI0/DSI1 configuration from rk3588s-yyt-lcd.dtsi
into two independent device tree overlays. This allows users to enable
either display without recompiling with different preprocessor defines.
Changes:
- Add youyeetoo-r1-display-dsi0.dts overlay with DSI0 panel, backlight
(PWM12), touchscreen (i2c3), and VP2 video pipeline configuration
- Add youyeetoo-r1-display-dsi1.dts overlay with DSI1 panel, backlight1
(PWM11), touchscreen (i2c5), and VP3 video pipeline configuration
- Remove rk3588s-yyt-lcd.dtsi and its inclusion from main dts
- Remove backlight/backlight1 and PWM11/PWM12 definitions from main dts
as they are now integrated in respective overlays
- Update overlay/Makefile to build new overlay dtbo files
The action used to compile the arm64 kernel then clean the output folder then build the armhf kernel only which later gets uploaded since it is the only output.
Now it builds both variants and uploads the output of both.
Interrupts are automatically unmasked in
panthor_mmu_irq_threaded_handler() when the handler returns. Unmasking
prematurely might generate spurious interrupts if the IRQ line is
shared.
Changes in v2:
- New patch
Changes in v3:
- Add R-bs
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250404080933.2912674-6-boris.brezillon@collabora.com
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
MMU handler needs to be in control of the job interrupt clears because
clearing the interrupt also unblocks the writer/reader that triggered
the fault, and we don't want it to be unblocked until we've had a chance
to process the IRQ.
Since clearing the clearing is just one line, let's make it explicit
instead of doing it in the generic code path.
Note that this commit changes the existing behavior in that the MMU
COMPLETED irqs are no longer cleared, which is fine because they are
masked, so we're not risking an interrupt flood.
Changes in v3:
- Mention the fact we no longer clear MMU COMPLETED irqs
- Add Liviu's R-b
Changes in v2:
- Move the MMU_INT_CLEAR around
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250404080933.2912674-5-boris.brezillon@collabora.com
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
When we clear the faulty bits in the AS mask, we also need to update
the panthor_mmu::irq::mask field otherwise our IRQ handler won't get
called again until the GPU is reset.
Changes in v2:
- Add Liviu's R-b
Changes in v3:
- Add Steve's R-b
Fixes: 647810ec2476 ("drm/panthor: Add the MMU/VM logical block")
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250404080933.2912674-4-boris.brezillon@collabora.com
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
When the device is coherent, panthor_gpu_coherency_init() will read
GPU_COHERENCY_FEATURES to make sure the GPU supports the ACE-Lite
coherency protocol, which will fail if the clocks/power-domains are
not enabled when the read is done. Move the
panthor_gpu_coherency_init() call after the device has been resumed
to prevent that.
Changes in v2:
- Add Liviu's R-b
Changes in v3:
- Add Steve's R-b
Fixes: dd7db8d911a1 ("drm/panthor: Explicitly set the coherency mode")
Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250404080933.2912674-3-boris.brezillon@collabora.com
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Make drm/gem API function names consistent by having locked function
use the _locked postfix in the name, while the unlocked variants don't
use the _unlocked postfix. Rename drm_gem_v/unmap() function names to
make them consistent with the rest of the API functions.
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Suggested-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Acked-by: Thomas Zimmermann <tzimmermann@suse.d>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250322212608.40511-2-dmitry.osipenko@collabora.com
The simple-audio-card hp-pin-name was referencing "Headphone Jack"
but the actual widget is defined as "Headphones", causing ALSA
to report "ASoC: DAPM unknown pin Headphone Jack" error.