Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
617 commits
Select commit Hold shift + click to select a range
9fb595e
mmc: don't reference requests after finishing them
P33M Oct 15, 2024
6bc087e
drivers: mmc: disable write-caching on Samsung 2023 model year SD cards
P33M Apr 8, 2024
b86ad7a
mmc: quirks: disable cache on more known-bad Sandisk card date ranges
P33M Oct 15, 2024
e5f3b84
mmc: block: disable CQ on SD cards when doing non-Discard erase
P33M Oct 18, 2024
dbc75f4
mmc: quirks: add MMC_QUIRK_BROKEN_ERASE for Phison/Integral cards
P33M Oct 18, 2024
b29821f
i2c: designware: Add support for bus clear feature
pelwell Mar 26, 2024
d45b481
i2c: designware: Make the SDA hold time half LCNT
pelwell Apr 4, 2024
43f623f
dw-axi-dmac-platform: Avoid trampling with zero length buffer
popcornmix Apr 23, 2024
ef1cfb6
drm/panel: Add and initialise an orientation field to drm_panel from OF
6by9 Feb 1, 2022
bd3a680
drm/bridge: tc358762: Program the DPI mode into the chip
6by9 Jan 9, 2024
e3327c8
drm/bridge: tc358762: revert move ops to enable
6by9 Jan 9, 2024
2d2295a
pinctrl: bcm2835: Persist outputs by default
pelwell May 7, 2024
2f40a5e
spi: dw: Handle any number of gpiod CS lines
pelwell May 13, 2024
0969a54
backlight: Add a display name to the core, and a function to set it
6by9 May 17, 2024
926ff42
drm/bridge: panel: Name an associated backlight device
6by9 May 17, 2024
a372b50
drivers: media: pci: Add Hailo accelerator device drivers
naushir May 21, 2024
208a4e2
staging: vc04_services: Add helpers for vchiq driver data
Nov 9, 2023
7521b15
media: pisp_be: Re-introduce video node offset
naushir Jul 8, 2024
0d5bad5
spi: dt-bindings: Add RPI RP2040 GPIO Bridge
roliver-rpi May 24, 2024
e1a7ed9
spi: Add a driver for the RPI RP2040 GPIO bridge
roliver-rpi May 21, 2024
ccd1d2b
dmaengine: dw-axi-dmac: Honour snps,block-size
pelwell Jul 10, 2024
ba7ab3b
brcmfmac: Only match complete feature names
pelwell Feb 5, 2024
7bf1492
brcmfmac: Add "extsae" as an alias for "sae_ext"
pelwell Feb 1, 2024
3c67134
brcmfmac: support extsae with psk / 1x offloading
Nov 18, 2021
8b52e4f
spi: dw: Save bandwidth with the TMOD_TO feature
pelwell Jul 1, 2024
b5ed4c7
spi: dw: Save bandwidth with the TMOD_RO feature
pelwell Jul 1, 2024
15821d6
spi: dw: don't immediately kill DMA transfers if an error occurs
P33M Jul 22, 2024
52096a3
drivers: dw-axi-dmac: make more sensible choices about memory accesses
P33M Jul 19, 2024
4d7673f
DT: bindings: add a dma-maxburst property to snps,designware-i2s
P33M Jul 22, 2024
aebaf04
spi: dw: Fix non-DMA transmit-only transfers
pelwell Jul 29, 2024
12cdba3
spi: dw: Clamp the minimum clock speed
pelwell Jul 31, 2024
9e9016e
hwmon: (adt7410) Add DT compatible strings
pelwell Jul 31, 2024
7961a6b
gpiolib: Override gpiochip numbers with DT aliases
pelwell May 2, 2024
f24cbd8
Bluetooth: hci_sync: Fix crash on NULL parent
pelwell Aug 7, 2024
73eafc2
rtc: pcf8523: Fix oscillator stop bit handling reading from Control_1
Paladinking Aug 28, 2024
6a65099
media: dt-bindings: i2c: Add Sony IMX500
roliver-rpi May 24, 2024
8b5c544
media: i2c: Add driver for Sony IMX500 sensor
roliver-rpi Jun 27, 2024
b9c394a
lib: earlycpio: export symbol find_cpio_data()
roliver-rpi Jun 20, 2024
aee94d6
NotForUpstream: media: video-mux: Propagate controls to source
kbingham Oct 10, 2024
fe27aa0
dma-buf: system_heap: Allow specifying maximum allocation order
Jul 17, 2024
ff800e4
mm/numa: Allow override of kernel's default NUMA policy
May 22, 2024
895ecaa
numa/emulation: Check emulated zones around the CMA window
Jul 29, 2024
d4d70c5
iommu/dma: Add ability to configure NUMA allocation policy for remapp…
Jun 18, 2024
eb8c488
mm/mempolicy: Add MPOL_RANDOM
May 22, 2024
12e4710
mm/mempolicy: Ignore runtime policy changes when set through cmdline
popcornmix Feb 5, 2025
1f4eff1
mm/vmscan: Maintain TLB coherency in LRU code
pelwell Sep 12, 2024
f52d53d
mmc: quirks: add more broken Kingston Canvas Go! SD card date ranges
P33M Oct 29, 2024
95b7f4e
dt-bindings: usb: snps,dwc3: add FS/HS periodic NAK polling quirk
P33M Nov 6, 2024
59659f1
usb: dwc3: core: add support for setting NAK enhancement bits for FS/HS
P33M Nov 6, 2024
5577e3f
drivers: usb: xhci: prevent a theoretical race on non-coherent platforms
P33M Nov 6, 2024
cf8fd1a
iio: humidity: dht11: Allow non-zero decimals
pelwell Nov 4, 2024
3df694a
drm: Set non-desktop property to true for writeback and virtual conne…
6by9 Aug 20, 2024
9ae670a
drm: Increase plane_mask to 64bit.
6by9 Oct 21, 2022
3ca2f73
drm: Add a DRM_MODE_TRANSPOSE option to the DRM rotation property
6by9 Oct 22, 2024
6544238
drm: Add a rotation parameter to connectors.
6by9 Oct 22, 2024
1711e87
dmaengine: dw-axi-dmac: Allow client-chosen width
pelwell Sep 19, 2024
4cbfcfd
spi: dw: Let the DMAC set the transfer widths
pelwell Sep 19, 2024
a7220f5
serial: pl011: Request a memory width of 1 byte
pelwell Sep 19, 2024
13bb928
drivers: usb: xhci: set HID bit in streaming endpoint contexts
P33M Nov 11, 2024
b621e47
dmaengine: dw-axi-dmac: Only start idle channels
pelwell Nov 13, 2024
bf6e634
mailbox: Add RP1 mailbox support
pelwell Oct 31, 2024
468fbf4
firmware: Add an RP1 firmware interface over mbox
pelwell Oct 31, 2024
9f9e408
misc: Add RP1 PIO driver
pelwell Oct 31, 2024
19866a2
pwm: Add pwm-pio-rp1 driver
pelwell Nov 8, 2024
97a4443
misc: Add ws2812-pio-rp1 driver
pelwell Dec 3, 2024
eab2301
drm/connector: Initialise max_bpc to the minimum value supported
6by9 Nov 21, 2024
c3fcf35
drm: vc4: dsi: Handle the different command FIFO widths
6by9 Nov 20, 2024
de83e9d
dt-bindings: net: cdns,macb: Add compatible for Raspberry Pi RP1
6by9 Nov 11, 2024
3ae9d20
net: macb: Add support for Raspberry Pi RP1 ethernet controller
6by9 Nov 11, 2024
8e5334f
drm/vc4: hvs: Defer dlist slots deallocation
mripard Dec 16, 2021
d6a780e
drm/vc4: Add hvs_dlist_allocs debugfs function.
6by9 Oct 27, 2023
cb27bfa
drm/vc4: Disable overrun interrupts
6by9 Jan 24, 2024
f3475f2
drm: vc4: Block swiotlb bounce buffers being imported as dmabuf
6by9 Nov 22, 2023
20c69ca
drm/vc4: Add option to call from crtc to encoder on vblank
6by9 Apr 5, 2024
abd8bc5
drm: vc4: dsi: Clocks should be running before reset
6by9 Jun 8, 2022
98b36c9
drm: vc4: Reset DSI AFE on disable
6by9 May 26, 2022
63e3cdd
drm/vc4: Ensure DSI is enabled for FIFO resets
6by9 Apr 5, 2024
cdf83af
drm/vc4: Add vblank callback to DSI0 to reset FIFO
6by9 Apr 5, 2024
8c7c1ef
drm/vc4: Fixup mode for 7inch panel on DSI0
6by9 Apr 26, 2024
437c1c8
drm/vc4: dsi: Don't reset the host until post_disable
6by9 May 2, 2024
daffc7c
drm: vc4: dsi: enable video and then retry failed transfers
6by9 Sep 20, 2024
cedfc45
drm/vc4: Allow setting the TV norm via module parameter
Jul 14, 2021
0899490
drm/vc4: Initialise the tv_mode property default from cmdline_mode.
6by9 Jan 25, 2024
908668f
drm/vc4: hdmi: Add a clear_infoframe hook
6by9 Nov 21, 2024
e6309cc
drm/vc4_hdmi: Allow hotplug detect to be forced
popcornmix Jun 1, 2022
a4b0723
vc4/hdmi: Ignore hotplug interrupt with force_hotplug
popcornmix Apr 23, 2024
a814bca
drm/vc4: Add a delay after disabling hdmi phy output
popcornmix Aug 12, 2024
072c4d5
drm/vc4: Implement vc6_hdmi_phy_disable
popcornmix Aug 13, 2024
3fd378c
drm/vc4: Also power down the PLL core when resetting PHY
popcornmix Aug 13, 2024
174997c
drm/vc4: dpi: Add override for RGB order
6by9 May 10, 2024
6c058b7
vc4/drm:plane: Make use of chroma siting parameter
popcornmix Jan 27, 2022
005cfcb
drm/vc4: Add support for per plane scaling filter selection
6by9 Jul 25, 2024
85884bc
drm/vc4: Use the TPZ scaling filter for 1x1 source images
6by9 Sep 11, 2024
3953751
drm/vc4: hvs: Defer updating the enable_bg_fill until vblank
6by9 Nov 12, 2024
6b0640c
drm/vc4: Increase number of overlay planes from 16 to 48
6by9 Oct 21, 2022
c8fef1c
drm/vc4: Assign 32 overlay planes to writeback only
6by9 Aug 15, 2023
a9b9d39
drm/vc4: Do not include writeback conn load in load tracker
6by9 Sep 9, 2024
6ddf413
drm/vc4: Drop panic priority for writeback connector
6by9 Sep 9, 2024
f8807a8
drm/vc4: txp: Add a rotation property to the writeback connector
6by9 Aug 14, 2024
da55d02
drm/vc4: Remove request for min clocks when hdmi output is disabled
popcornmix Oct 14, 2024
5bafd36
drm/vc4: Disable the 2pixel/clock odd timings workaround for interlaced
popcornmix Oct 24, 2023
3844403
drm/vc4: fkms: Add firmware-kms mode
6by9 Sep 7, 2020
66e632d
drm/vc4: tests: Switch generation mockup to a switch
mripard Feb 17, 2023
1e45eef
drm/vc4: tests: Drop drm parameter for vc4_find_crtc_for_encoder
mripard Mar 24, 2023
a7d7baf
drm/vc4: tests: Return the allocated output
mripard Mar 24, 2023
ec73289
drm/vc4: tests: Add BCM2712 mock driver
mripard Feb 17, 2023
c4b478a
drm/vc4: tests: Add tests for BCM2712 PixelValve Muxing
mripard Apr 14, 2023
34d05a7
drm/vc4: tests: Use custom plane state for mock
mripard Apr 14, 2023
138183e
drm/vc4: tests: Add function to lookup a plane for a CRTC
mripard Apr 14, 2023
364fbd8
drm/vc4: tests: Add helper to add a new plane to a state
mripard Apr 14, 2023
e4d542b
drm/vc4: tests: Support a few more plane formats
mripard Apr 14, 2023
5edba11
drm/vc4: tests: Introduce a test for LBM buffer size
mripard Apr 14, 2023
e1ce057
drm/vc4: tests: Update pv muxing tests now DSI1 is more flexible
6by9 Feb 13, 2025
e6153b9
drm/vc4: tests: Fix up vc4_test_lbm_size
pelwell Apr 28, 2025
b6a267d
drm/vc4: backport 27e0a194a256 and b3bf19552ea3
mairacanal Aug 6, 2024
198e835
drm/vc4: Cache LBM allocations to avoid double-buffering
6by9 Sep 27, 2024
be307b1
serial: core: Add the Raspberry Pi firmware UART id
timg236 Nov 1, 2024
04ba6cc
serial: tty: Add a driver for the RPi firmware UART
timg236 Aug 28, 2024
0750531
input: Add support for no irq to ili210x driver
Dec 5, 2024
01e7378
cgroup: Add cgroup_enable option
pelwell Dec 9, 2024
b4be1ee
drm: bridge: panel: Connector to allow interlaced modes
njhollinghurst Nov 19, 2024
4adc1cf
drm: Validate connector rotation has one bit set in the rotation prop…
6by9 Dec 12, 2024
99406f0
docs: pcm3168a: Add DT bindings to force clock consumer mode
gordoste Dec 22, 2024
1560c08
media: imx290: Add module parameter to allow selection of HCG mode
6by9 May 15, 2024
56ce6fa
mmc: sd: filter card CQ support based on an allow-list
P33M Jan 8, 2025
d9a5ef6
mmc: set MMC_QUIRK_KNOWN_WORKING_SD_CQ on Raspberry Pi class A2 cards
P33M Jan 8, 2025
6ae634b
mmc: use downstream DT property to modify CQE and/or SD CQ behaviour
P33M Jan 8, 2025
73fdaca
media: rp1: Add downstream CFE (Camera Front End) driver
naushir Feb 14, 2023
c14aa5a
mmc: bcm2835: Add downstream overclocking support
pelwell Jan 13, 2025
7ea8c89
drivers: media: pisp_be: Add support for YUV422 planar format
naushir Jan 15, 2025
700e8a8
drivers: media: pisp_be: Remove unused fields in struct pisp_be_config
naushir Jan 16, 2025
ec06fea
dmaengine: bcm2835: Fix a build warning
pelwell Feb 4, 2025
de7b4e2
spi: dw: Wait for idle after TX
pelwell Feb 3, 2025
5f0c33e
vc4: Add jack detection to HDMI audio driver
cillian64 Feb 5, 2025
08c7899
drm/vc4: Use phys addresses for slave DMA config
pelwell May 11, 2023
9e764e4
dma-direct: take dma-ranges/offsets into account in resource mapping
fancer Jun 10, 2022
8102fdf
dmaengine: bcm2835: Use dma_map_resource
pelwell May 11, 2023
927303c
drm/vc4: PV1 can be driven via any HVS channel, so adapt to allow it
6by9 Feb 13, 2025
dd215ef
drm/edid: When reset, assume HDMI displays support RGB444
6by9 Jan 28, 2025
4f652c8
drm/vc4: Correct one logging message that got promoted from dbg to err
6by9 Mar 5, 2025
b2f6c8c
media: mc: add manual request completion
Aug 29, 2024
3eb2103
media: vicodec: add support for manual completion
Aug 29, 2024
66f0119
media: mc: add debugfs node to keep track of requests
Aug 29, 2024
1fb5827
docs: uapi: media: Document Raspberry Pi NV12 column format
6by9 Feb 6, 2025
05f0d9d
media: ioctl: Add pixel formats NV12MT_COL128 and NV12MT_10_COL128
6by9 Feb 6, 2025
04ee54b
media: dt-bindings: media: Add binding for the Raspberry Pi HEVC decoder
6by9 Feb 6, 2025
913f041
media: platform: Add Raspberry Pi HEVC decoder driver
Feb 6, 2025
8edc288
media: hevc_dec: Drop the new image formats until we have Mesa 24
6by9 Feb 24, 2025
f1bd148
media: v4l2: Add single planar NV12 column formats
6by9 Dec 12, 2024
72ee19b
drm: vc4: hvs: Fix vc6_hvs_debugfs_dlist state lookup
6by9 Feb 27, 2025
a3c80fc
drm/vc4: Add algorithmic handling for SAND
6by9 Nov 13, 2024
5b1b658
drm: vc4: plane: Avoid using pitch in calculating UBM for SAND
6by9 Feb 27, 2025
9ee60c8
drm/framebuffer: Pitch checks aren't valid for non-linear modifiers
6by9 Feb 27, 2025
901c8e2
PCI: brcmstb: set BCM7712/2712-specific AXI bridge handling behaviours
P33M Feb 10, 2025
ac5534f
PCI: brcmstb: Enable CRS software visibility after linkup
P33M Feb 12, 2025
c2870b3
PCI: brcmstb: add NO_SSC quirk for BCM2712
P33M Mar 3, 2025
fa9ea5f
dt-bindings: pci: pcie-brcmstb: add BCM2712-specific properties
P33M Feb 11, 2025
1631da1
PCI: brcmstb: add support for BCM2712 priority forwarding
P33M Feb 11, 2025
aca4c2f
dt-bindings: pci: pcie-brcmstb: add optional brcm,tperst-clk-ms property
P33M Feb 13, 2025
2d171d1
PCI: pcie-brcmstb: optionally extend Tperst_clk time
P33M Feb 13, 2025
6921307
dt-bindings: PCI: brcmstb: add optional property - "brcm,tperst-clk-ms"
P33M Sep 20, 2023
0cdf530
drm/panel: Add panel driver for Ilitek ILI9806E panel
6by9 Jan 5, 2022
21834f5
drm/vc4: Correct arithmetic for shifting between columns of SAND images
6by9 Mar 19, 2025
ebb6930
dmaengine: dw-axi-dmac: Improve axi_desc_put
pelwell Mar 20, 2025
40e5e0a
dmaengine: dw-axi-dmac: Fix alignment checks
pelwell Mar 20, 2025
80b65ee
PCI: brcmstb: Add link statistics debug features
P33M Mar 27, 2025
0a8d9ee
drm/vc4: plane: Correct SAND30 word sizing for cropping on BCM2712
6by9 Mar 25, 2025
dd46b54
drm/vc4: plane: Ensure fetch_count is sufficient for hw in SAND mode
6by9 Mar 31, 2025
bf2dcc0
PCI: pcie-brcmstb: add more safeguards for clkreq "safe" mode
P33M Mar 31, 2025
184f352
PCI: quirks: work around VL805 firmware ASPM meddling
P33M Apr 15, 2025
b1e91e1
usb: xhci: default to Intel scheme for calculating U1/U2 timeouts
P33M Apr 15, 2025
9562ee6
media: i2c: imx219: Restore the 1920x1080 to using a 1:1 PAR
6by9 Apr 15, 2025
6a584d2
drm/vc4: plane: Increase UPM allocation size for YUV444
6by9 Apr 15, 2025
c617e56
drm/vc4: plane: Enable scaler for YUV444 on GEN6
6by9 Apr 15, 2025
851207b
drm/vc4: plane: Use nearest neighbour filter with YUV444 workaround
6by9 Apr 16, 2025
a63c99a
hwmon: aht10: Fix AHT20 initialization
joshermar Apr 20, 2025
c3ff678
media: imx335: Rectify name of mode struct
Aug 30, 2024
56e1fcd
media: imx335: Support vertical flip
Aug 30, 2024
6e7cf02
drm/vc4: plane: Fix incorrect handling of GEN_6_D in vc4_plane_async_…
6by9 Apr 24, 2025
484ec30
watchdog: Reduce severity of release without stop
pelwell Apr 29, 2025
28e33c0
media: i2c: imx296: Add OF option for vsync sink for XTRIG
6by9 Apr 29, 2025
249d0fd
drm/v3d: Don't retrieve the clock twice
mairacanal Apr 30, 2025
b452b37
wifi: brcmfmac: Include modinfo for 43456 CLM blob
pelwell May 8, 2025
ea8db1e
usb: xhci: set Input Slot Context bit in xhci_fixup_endpoint
P33M May 13, 2025
ab24d3d
firmware/raspberrypi: raise timeout to 3s
May 12, 2025
e2354ec
gpiolib: Avoid the hotplug performance reduction
pelwell May 19, 2025
5398ac2
media/i2c: Add driver for ams Mira220
Apr 15, 2025
7c99653
drivers: irq-bcm2836: preserve unrelated bits in LOCAL_GPU_ROUTING
P33M Sep 12, 2024
7705b2c
drivers: irq-bcm283x: swizzle interrupts on ARMv7 too
P33M Sep 12, 2024
ef0816a
usb: dwc2: return correct frame counts with high-speed host
P33M Jun 11, 2025
656a0b7
usb: dwc2: limit "maximum packet size" for split-IN transfers
P33M Jun 11, 2025
a8a770c
brcmfmac: On RPi, 43430 and 43455 are CYW parts
pelwell Jun 19, 2025
b2968c8
drm/probe-helper: Ensure cmdline mode matches interlace mode
6by9 Jun 16, 2025
2e08b93
clk: clk-gpio: Support acquire/release semantics
roliver-rpi Jun 5, 2025
5c754e2
dt-bindings: clock: Add gpio-gate-clock-releasing
roliver-rpi Jun 5, 2025
c29c7c7
drivers: dwc2: don't use shifted frame number internally
P33M Jun 18, 2025
905dd28
mfd: rp1: depends on PCI_MSI
gastmaier Jun 11, 2025
26824dc
media: pisp_be: Fix pm_runtime underrun in probe
Aug 26, 2024
e2eedca
drivers: dwc2: better handle hardware length & alignment issues
P33M Jun 23, 2025
4036bd3
drm/vc4: tests: Use the correct return type in vc4_mock_atomic_add_ou…
mairacanal Jun 27, 2025
ad65611
drm/vc4: plane: Add support for P01[026] and Q01[026] formats
6by9 Jul 15, 2025
98be3a9
drm/v3d: Store a pointer to `struct v3d_file_priv` inside each job
mairacanal Jul 18, 2025
782c619
drm/v3d: Store the active job inside the queue's state
mairacanal Jul 18, 2025
352508c
drm/v3d: Replace a global spinlock with a per-queue spinlock
mairacanal Jul 18, 2025
082b754
drm/v3d: Address race-condition between per-fd GPU stats and fd release
mairacanal Jul 18, 2025
2a27312
drivers: meida: pisp_be: Rename format align field
naushir Aug 4, 2025
d8b7842
drivers: media: pisp_be: Add minimal alinment to the format structure
naushir Aug 4, 2025
d7dc852
arm64/dma-mapping: Fix arch_sync_dma_for_device to respect dir parameter
jc-kynesim Aug 12, 2025
db4f9b0
media: pisp_be: Re-introduce multi-context support
naushir Aug 15, 2025
71bc0a0
configs: Regenerate defconfigs
pelwell Aug 18, 2025
320a195
net: lan78xx: Ack pending PHY ints when resetting
pelwell Dec 15, 2020
15d1ab1
lan78xx: Enable LEDs and auto-negotiation
Oct 17, 2017
d2763bd
lan78xx: Read initial EEE status from DT
pelwell Jun 11, 2024
1dc0958
lan78xx: Return tx_lpi_timer even if disabled
pelwell Jun 12, 2024
71d480b
PCI: pcie-brcmstb: fake MSIx support on internal MSI target
P33M Apr 2, 2025
015cd55
power: rpi-poe: FIXUP DRIVER.
6by9 Aug 14, 2025
ed272f8
drm/connector: hdmi: Attempt YUV422 output if RGB isn't supported
6by9 Nov 21, 2024
d9e644e
pinctrl: Reinstate the downstream pinctrl-rp1 driver
6by9 Aug 14, 2025
128dbc7
Fixup downstream pinctrl-rp1 driver
6by9 Aug 14, 2025
db4a227
dt: Reinstate the upstream rp1-common.dtsi file
6by9 Aug 14, 2025
2978319
Restore rp1-nexus.dtsi
pelwell Aug 19, 2025
a62da48
clk: rp1: Delete upstream version
pelwell Aug 19, 2025
3f6ad6e
clk: rp1: Add the downstream RP1 clock driver
pelwell Aug 19, 2025
f67a335
config: Allow MFD_RP1 as well as MISC_RP1
pelwell Aug 19, 2025
343e03a
configs: Use the downstream RP1 driver
pelwell Aug 19, 2025
c561ba2
workflows: Ignore checkpatch UNKNOWN_COMMIT_ID
6by9 Aug 14, 2025
26d7288
workflows: dtoverlaycheck: Update the dependencies
pelwell Aug 19, 2025
ca701e2
misc: rp1-pio: Fix a config_xfer error path
pelwell Aug 11, 2025
9b2aa1f
dmaengine: dw-axi-dmac: Per-channel burst limits
pelwell Jan 30, 2025
3cda495
dmaengine: dw-axi-dmac: Add DMA channel selection
pelwell Aug 11, 2025
f473a51
dts: rp1: Set per-channel DMA burst limit
pelwell Aug 12, 2025
6e69512
dts: bcm2712-rpi: Give PIO the "heavy" DMA channels
pelwell Aug 12, 2025
62d2f04
misc: rp1-pio: Request a DMA burst size of 8
pelwell Aug 12, 2025
0a41487
pinctrl: rp1: Allow building as a module
pelwell Aug 19, 2025
3b0eb0b
defconfigs: Force upstream to use MFD_RP1
pelwell Aug 19, 2025
b9a4cb8
Revert "Restore rp1-nexus.dtsi"
6by9 Aug 19, 2025
ec9f0b9
Update defconfigs
6by9 Aug 14, 2025
4df2695
Revert downstream mods to bcm2712-rpi-5-b.dts
6by9 Aug 14, 2025
4cd4a90
mmc: sdhci-brcmstb: Check pinctrl_get worked before doing lookups
6by9 Aug 19, 2025
9d38318
pinctrl: rp1: Accept either rp1 or rp1-nexus nodes
6by9 Aug 19, 2025
f696d95
dt: Add all the peripherals to rp1-common.dtsi
6by9 Aug 19, 2025
7332260
Temporarily disable CM5 DTB files as things get rearranged
6by9 Aug 19, 2025
b2f56e2
dt: Update Pi5 and Pi500 to use mainline DT as a base
6by9 Aug 19, 2025
4ccf9f6
Revert "mfd: Add rp1 driver"
6by9 Aug 19, 2025
dc04e4c
Revert "clk: rp1: Add the downstream RP1 clock driver"
6by9 Aug 19, 2025
f2ceb88
Revert "clk: rp1: Delete upstream version"
6by9 Aug 19, 2025
9a01172
dt: Add a few missing nodes to bcm2712-ds.dtsi
6by9 Aug 19, 2025
21ff4c1
dt-bindings: clock: rp1: Add missing MIPI DSI defines
Jun 23, 2025
e4f59bd
clk: rp1: Implement remaining clock tree
Jun 23, 2025
77a0132
Rework to break out common platform stuff into bcm2712-rpi-ds.dtsi
6by9 Aug 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
media: rp1: Add downstream CFE (Camera Front End) driver
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

v4l2: Add pisp compression format support to v4l2

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

media: rp1: cfe: Fix use of freed memory on errors

cfe_probe_complete() calls cfe_put() on both success and fail code paths.
This works for the success path, but causes the cfe_device struct to be
freed, even if it will be used later in the teardown code.

Fix this by making the ref handling a bit saner: Let the video nodes
have the refs as they do now, but also keep a ref in the "main" driver,
released only at cfe_remove() time. This way the driver does not depend
on the video nodes keeping the refs.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Fix width & height in cfe_start_channel()

The logic for handling width & height in cfe_start_channel() is somewhat
odd and, afaics, broken. The code reads:

bool start_fe = is_fe_enabled(cfe) &&
                test_all_nodes(cfe, NODE_ENABLED, NODE_STREAMING);

if (start_fe || is_image_output_node(node)) {
        width = node->fmt.fmt.pix.width;
        height = node->fmt.fmt.pix.height;
}

cfe_start_channel() is called for all video nodes that will be used. So
this means that if, say, fe_stats is enabled as the last node, start_fe
will be true, and width and height will be taken from fe_stats' node.
The width and height will thus contain garbage, which then gets
programmed to the csi2 registers.

It seems that this often still works fine, though, probably if the width
& height are large enough.

Drop the above code, and instead get the width & height from the csi2
subdev's sink pad for the csi2 channel that is used. For metadata the
width & height will be 0 as before.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Fix verbose debug print

The debug print in cfe_schedule_next_csi2_job() is printed every frame,
and should thus use cfe_dbg_irq() to avoid spamming, rather than cfe_dbg().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Rename xxx_dbg_irq() to xxx_dbg_verbose()

Rename the xxx_dbg_irq() macros to xxx_dbg_verbose(), as they can be
used to verbose debugs outside irq context too.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Add verbose debug module parameter

Expose the verbose debug flag as a module parameter.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Drop unused field

Drop 'sensor_embedded_data' field, as it is unused.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Fix default meta format's field

Set default meta format's field to V4L2_FIELD_NONE, instead of zeroing
it which indicates V4L2_FIELD_ANY. Metadata doesn't have fields, so NONE
makes sense, and furthermore the default v4l2 link validation will check
for matching fields, or that the sink field is NONE.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Fail streaming if FE_CONFIG node is not enabled

When the FE is enabled, ensure that the FE_CONFIG node is enabled.
Otherwise fail cfe_start_streaming() entirely.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

drivers: media: rp1_cfe: Remove PISP specific MBUS formats

Remove the MEDIA_BUS_FMT_PISP* format codcs entirely. For the image
pad formats, use the 16-bit Bayer format mbus codes instead. For the
config and stats pad formats, use MEDIA_BUS_FMT_FIXED.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

drivers: media: rp1_cfe: Fix link validate test for pixel format

Now that we have removed unique PISP media bus codes, the cfe format
table has multiple entries with the same media bus code for 16-bit
formats. The test in cfe_video_link_validate() did not account for this.
Fix it by testing the media bus code and the V4L2 pixelformat 4cc
together.

As a drive-by, ensure we have a valid CSI2 datatype id when programming
the hardware block.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

drivers: media: cfe: Set the CSI-2 link frequency correctly

Use the sensor provided link frequency to set the DPHY timing parameters
on stream_on. This replaces the hard-coded 999 MHz value currently being
used. As a fallback, revert to the original 999 Mhz link frequency.

As a drive-by, fix a 80-character line formatting error.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

drivers: media: cfe: Don't confuse MHz and Mbps

The driver was interchaning these units when talking about link rate.
Fix this to avoid confusion. Apart from the logging message change,
there is no function change in this commit.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

media: rp1: csi2: Fix missing reg writes

The driver has two places where it writes a register based on a
condition, and when that condition is false, the driver presumes that
the register has the reset value. This is not a good idea, so fix those
places to always write the register.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: fe: Use ~0, not -1, when working with unsigned values

Use ~0, not -1, when working with unsigned values (-1 is not unsigned).

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: Add back reg write debug prints

Add back debug prints in csi2 and pisp_fe reg_write() functions, but use
the 'irq' variants to avoid spamming in normal situation.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: csi2: Track CSI-2 errors

Track the errors from the CSI-2 receiver: overflows and discards. These
are recorded in a table which can be read by the userspace via debugfs.

As tracking the errors may cause much more interrupt load, the tracking
needs to be enabled with a module parameter.

Note that the recording is not perfect: we only record the last
discarded DT for each discard type, instead of recording all of them.
This means that e.g. if the device is discarding two unmatched DTs, the
debugfs file only shows the last one recorded. Recording all of them
would need a more sophisticated recording system to avoid the need of a
very large table, or dynamic allocation.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: csi2: Set values for enum csi2_mode

Set hardcoded values for enum csi2_mode, as the values will be
programmed to HW registers.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: fe: Fix default mbus code

When pisp_fe_pad_set_fmt() is given an mbus code that CFE does not
support, it currently defaults to MEDIA_BUS_FMT_SBGGR10_1X10. This is
not correct, as FE does not support SBGGR10.

Set the default to MEDIA_BUS_FMT_SRGGB16_1X16 instead.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

drivers: media: cfe: Find the source pads on the sensor entity

The driver was assuming that pad 0 on the sensor entity was the
appropriate source pad, but this isn't necessarily the case.
With video-mux, it has the sink pads first, and then the source
pad as the last one.

Iterate through the sensor pads to find the relevant source pads.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

media: rp1: cfe: Expose find_format_by_pix()

Make find_format_by_pix() accessible to other files in the driver.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Add cfe_find_16bit_code() and cfe_find_compressed_code()

Add helper functions which, given an mbus code, return the 16-bit
remapped mbus code or the compressed mbus code.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: csi2: Use get_frame_desc to get CSI-2 VC and DT

Use get_frame_desc pad op for asking the CSI-2 VC and DT from the source
device driver, instead of hardcoding to VC 0, and getting the DT from a
formats table. To keep backward compatibility with sources that do not
implement get_frame_desc, implement a fallback mechanism that always
uses VC 0, and gets the DT from the formats table, based on the CSI2's
sink pad's format.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Add is_image_node()

The hardware supports streaming from memory (in addition to streaming
from the CSI-2 RX), but the driver does not support this at the moment.

There are multiple places in the driver which uses
is_image_output_node(), even if the "output" part is not relevant. Thus,
in a minor preparation for the possible support for streaming from
memory, and to make it more obvious that the pieces of code are not
about the "output", add is_image_node() which will return true for both
input and output video nodes.

While at it, reformat also the metadata related macros to fit inside 80
columns.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Dual purpose video nodes

The RP1 CSI-2 DMA can capture both video and metadata just fine, but at
the moment the video nodes are only set to support either video or
metadata.

Make the changes to support both video and metadata. This mostly means
tracking both video format and metadata format separately for each video
node, and using vb2_queue_change_type() to change the vb2 queue type
when needed.

Briefly, this means that the user can get/set both video and meta
formats to a single video node. The vb2 queue buffer type will be
changed when the user calls REQBUFS or CREATE_BUFS ioctls. This buffer
type will be then used as the "mode" for the video node when the user
starts the streaming, and based on that either the video or the meta
format will be used.

A bunch of macros are added (node_supports_xxx()), which tell if a node
can support a particular mode, whereas the existing macros
(is_xxx_node()) will tell if the node is currently in a particular mode.
Note that the latter will only work correctly between the start of the
streaming and the end of the streaming, and thus should be only used in
those code paths.

However, as the userspace (libcamera) does not support dual purpose
video nodes, for the time being let's keep the second video node as
V4L2_CAP_META_CAPTURE only to keep the userspace working.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: Drop LE handling

The driver registers for line-end interrupts, but never uses them. This
just causes extra interrupt load, with more complexity in the driver.

Drop the LE handling. It can easily be added back if later needed.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Improve link validation for metadata

Improve the link validation for metadata by:
- Allowing capture buffers that are larger than the incoming frame
  (instead of requiring exact match).

- Instead of assuming that a metadata unit ("pixel") is 8 bits, use
  find_format_by_code() to get the format and use the bit depth from
  there. E.g. bit depth for RAW10 metadata will be 10 bits, when we
  move to the upstream metadata formats.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

drivers: media: cfe: Add more robust ISR handlers

Update the ISR logic to be more robust to sensors in problematic states
where interrupts may start arriving overlapped and/or missing.

1) Test for cur_frame in the FE handler, and if present, dequeue it in
an error state so that it does not get orphaned.

2) Move the sequence counter and timestamp variables to the node
structures.  This allows the ISR to track channels running ahead when
interrupts arrive unordered.

3) Add a test to ensure we don't have a spurios (but harmlesS) call to
the FE handler in some circumstances.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

media: rp1: cfe: Fix error paths in cfe_start_streaming

Noted that if we get "node link is not enabled", then we also
get the videobuf2 splat for the driver not cleaning up correctly
on a failed start_streaming, and indeed we weren't returning the
buffers.

Checking the other error paths, noted that the "FE enabled, but
FE_CONFIG node is not" path was not calling pm_runtime_put.

Fix both paths.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

drivers: media: cfe: Increase default size of embedded buffer

Increase the size of the default embedded buffer to 16k. This is done to
match what is advertised by the IMX219 driver and workaround a problem
where the embedded stream is not actually used. Without full streams API
support, the media pipeline validation will fail in these circumstances.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

media: rp1: cfe: Actually use the number of lanes configured

The driver was calling get_mbus_config to ask the sensor subdev
how many CSI2 data lanes it wished to use and with what other
properties, but then failed to pass that to the DPHY configuration.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

media: rp1: csi2: Fix csi2_pad_set_fmt()

The CSI-2 subdev's set_fmt currently allows setting the source and sink
pad formats quite freely. This is not right, as the CSI-2 block can only
do one of the following when processing the stream: 1) pass through as
is, 2) expand to 16-bits, 3) compress.

The csi2_pad_set_fmt() should take this into account, and only allow
changing the source side mbus code, compared to the sink side format.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: csi2: Use standard link_validate

The current csi2_link_validate() skips some important checks. Let's
rather use the standard v4l2_subdev_link_validate_default() as the
link_validate hook.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: csi2: Squash fixes

media: rp1: fe: Fix pisp_fe_pad_set_fmt()

pisp_fe_pad_set_fmt() allows setting the pad formats quite freely. This
is not correct, and the function should only allow formats as supported
by the hardware. Fix this by:

Allow no format changes for FE_CONFIG_PAD and FE_STATS_PAD. They should
always be the hardcoded initial ones.

Allow setting FE_STREAM_PAD freely (but the mbus code must be
supported), and propagate the format to the FE_OUTPUT0_PAD and
FE_OUTPUT1_PAD pads.

Allow changing the mbus code for FE_OUTPUT0_PAD and FE_OUTPUT1_PAD pads
only if the mbus code is the compressed version of the sink side code.

TODO: FE supports scaling and cropping. This should be represented here
too?

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: fe: Use standard link_validate

The current pisp_fe_link_validate() skips some important checks. Let's
rather use the standard v4l2_subdev_link_validate_default() as the
link_validate hook.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

drivers: media: cfe: Add 16-bit and compressed mono format support

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

media: rp1: cfe: Add missing remaps

8-bit bayer formats are missing remap definitions. Add them.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

media: rp1: cfe: Add missing compressed remaps

16-bit bayer formats are missing compressed remap definitions. Add them.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

drivers: media: pisp_be: pisp_fe: Update UAPI header licenses

Update the license tags on the pisp UAPI header files with the
"Linux-syscall-note" clause.  Also replace the "GPL-2.0" tag with the
preferred "GPL-2.0-only" tag.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

media: rp1: cfe: Use the MIPI_CSI2_DT_xxx defines for csi_dt

Seeing as we now have the CSI2 data types defined, make use of
them instead of hardcoding the values.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

media: rp1: cfe: Add a csi_dt value for 16bit formats

Raw 16bit formats didn't have a csi_dt value defined, which
presumably would trip the WARN_ON(!fmt->csi_dt); in
cfe_start_channel.

The value is defined in CSI2 v2.0 as 0x2e, so set it accordingly.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

drivers: media: pisp_be: Add mono and 48-bit RGB pixel format support

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

drivers: media: pisp_be: Update seqeuence numbers of the buffers

Add a framebuffer sequence counter and increment on every completed job.
This counter is then used to update the VB2 buffer sequence count before
calling vb2_buffer_done().

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

drivers: media: cfe: Add remap entries for mono formats

The 8-bit and 16-bit mono formats were missing the appropriate remap
entries in the format table.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

media: rp1-cfe: Fix up link validation for CFE CFG input

After commit 5fd3e24 ("media: v4l2-subdev: Support hybrid links
in v4l2_subdev_link_validate()") link_validate is called on V4L2
OUTPUT devices such as the CFE cfg buffers input.
The CFE link_validate function was assuming it was always the
sink of a link, which goes wrong on that port and does an invalid
dereference.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

media: rp1-cfe: Swap "raspberypi,rp1-cfe" compatible to downstream driver

Whilst we are wanting to maintain the downstream driver at the same time
as having the upstream merged, swap the "raspberypi,rp1-cfe" compatible
string across.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

media/platform/raspberypi/rp1_cfe: Candidate fix for #5821

To avoid lost frame start in a subsequent session, avoid setting
the number of lanes back to 1 or putting CSI-2 Host into reset.

It's not clear if this is a watertight fix -- what if the camera
itself produced a truncated or garbled packet, or continued to
send until the next start? -- but it does seem to fix the issue.

Signed-off-by: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>

drivers: media: rpi: cfe: Avoid unpack operation for 16-bit formats

The unpack operation is redundant for 16-bit sensor formats, don't set
the hardware to do it in these cases.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>

drivers: media: cfe: Workaround for 16-bit mismatch in the hardware

Set the data type for 16-bit modes to 0 (wildcard) to workarond the
16-bit mismatch in hardware.

We also need to suppress the warning about DT == 0 on start stream in
these cases.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  • Loading branch information
naushir authored and popcornmix committed Aug 19, 2025
commit 73fdaca6467ac6dbb22eb16268e47a87736f7d0d
1 change: 1 addition & 0 deletions drivers/media/platform/raspberrypi/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ comment "Raspberry Pi media platform drivers"

source "drivers/media/platform/raspberrypi/pisp_be/Kconfig"
source "drivers/media/platform/raspberrypi/rp1-cfe/Kconfig"
source "drivers/media/platform/raspberrypi/rp1_cfe/Kconfig"
1 change: 1 addition & 0 deletions drivers/media/platform/raspberrypi/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@

obj-y += pisp_be/
obj-y += rp1-cfe/
obj-y += rp1_cfe/
Loading