Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BSC0 config for I2C_MUX_PINCTRL to drive camera/display and GPIO #3537

Merged
merged 5 commits into from
Apr 23, 2020

Conversation

6by9
Copy link
Contributor

@6by9 6by9 commented Apr 9, 2020

Trying to ressurrect these patches to add the pinctrl i2c mux onto BSC0 so we can access both camera/display and HAT ID pins simultaneously.

Tested on Pi3B+ & Pi4 with bcm27xx dt, and Pi3B+ with bcm2837-rpi-3-b-plus (downstream kernel image, but with device_tree=bcm2837-rpi-3-b-plus.dtb override).
Need to test other variants, particularly the old versions where i2c1 was used for the camera, or it wasn't present on the header. I suspect we need to use delete-node to remove i2c10mux totally.

@6by9
Copy link
Contributor Author

6by9 commented Apr 9, 2020

@pelwell for comment.

Also need to decide what to do with CM and CM3 where normally we don't assign GPIOs for resources unless really needed.

Copy link
Contributor

@pelwell pelwell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These comments and questions need addressing before scrutinising the individual overlay patches.

@@ -663,6 +663,7 @@ CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_GPMUX=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should include arch/arm64/configs/bcmrpi3_defconfig as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK

arch/arm/boot/dts/bcm283x.dtsi Outdated Show resolved Hide resolved
arch/arm/boot/dts/bcm283x.dtsi Outdated Show resolved Hide resolved
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts Show resolved Hide resolved
@6by9
Copy link
Contributor Author

6by9 commented Apr 14, 2020

Hmm, I need to do some double checking. Comparing against a Tegra board that uses i2c-mux-pinctrl, that needs to clear down the pinmuxing as well as setting up the new ones.

I currently haven't done that (just setting up the new pinctrl in each case), and that appeared to work. I'm a little confused as to how it did.

https://github.com/raspberrypi/linux/blob/rpi-5.4.y/arch/arm/boot/dts/tegra20-seaboard.dts#L288

@pelwell
Copy link
Contributor

pelwell commented Apr 15, 2020

I've pushed a rebase and a whole bunch of changes in a fixups commit to get your opinion.

@6by9
Copy link
Contributor Author

6by9 commented Apr 15, 2020

I'm surprised you can push to a branch in my repo, but that's Github for you.

So you're:

  • renaming the parent node to i2c0if, and leaving it as a dynamically assigned i2c bus number
  • renaming the mux to i2c0mux.
  • renumbering i2c_csi_dsi to i2c10 (was i2c9).
  • cleaning up a couple of overlay errors.

Yes, I'm happy on that lot. I'll squash them back into the parent commits and retest. Seeing as several of these files are upstream ones, and mainline should soonish be getting CSI and DSI support, it'd be nice to have them in a shape that can be upstreamed.

I've gone through my stash of devices and have a 0W, B+, 2B, 3B, 3B+, 4B, and CM3 here, so can check something sensible happens on all of them. (I think my 256MB B is sitting in the office for the awkward case). So apart from the hassle of building the 3 variants of kernels, I should be able to test out the majority that we care about.

@6by9
Copy link
Contributor Author

6by9 commented Apr 15, 2020

On further checking of the pinmuxing, something is clearing down each selection.
Checking /sys/kernel/debug/pinctrl/fe200000.gpio-pinctrl-bcm2835/pinmux-pins, the pins are going from MUX UNCLAIMED to soc:i2c10mux, and then returning to MUX UNCLAIMED when selecting the other muxing again.

So whilst the bindings imply that you need to reset all the pin-ctrl groups, reality seems different. I guess specifying them all stops some other user coming along and claiming the mux.

What's your view? Explicitly state them in all states, or leave it as it is?

@pelwell
Copy link
Contributor

pelwell commented Apr 15, 2020

My guess is that the Tegra DTS is explicitly setting functions for the unused pins to avoid the default UNCLAIMED state, which seems to be "input". I think the current behaviour without explicitly reserving the other pins is fine.

@pelwell
Copy link
Contributor

pelwell commented Apr 15, 2020

That still leaves us with the thorny issue of the rev1 model B, which would ideally have a mux on i2c1. Instead of the firmware creating device-specific aliases/labels (i2c_vc, i2c_arm etc.) on all boards, it might be cleaner and more flexible to build the "normal" values into the base DTBs and apply a magic "modelb-rev1" overlay to patch things up. That does depend on us being able to undo/disable any unwanted settings of the base DTB from an overlay.

@6by9
Copy link
Contributor Author

6by9 commented Apr 15, 2020

That still leaves us with the thorny issue of the rev1 model B, which would ideally have a mux on i2c1.

There is no requirement for a mux on rev1 B - i2c1 only goes to the camera (GPIOs 2&3), and i2c0 only goes to the 26 pin header as pins 3&5. The alternate muxings via 28&29 and 44&45 aren't used. The mux needs removing, and pinctrl setup restored to the current setup.
I believe that can be done with a /delete-node/ i2c0mux, adding the pin-ctrl to i2c0if, and altering the alias for i2c0 to pointing at i2c0if.
The alias for i2c_vc would already be pointing at i2c1, but I guess the alias for i2c_arm is pointing at i2c0mux port0 (named i2c0) which is wrong. Or does the dtoverlay_set_synonym look for an alias instead of a label? You may know the answer, but I'd have to try it.

Unless having a mux with only one port for consistency is nicer. I think in this case it's uglier as it'd be an i2c1mux so you still need to do the above and then add a second mux.

@pelwell
Copy link
Contributor

pelwell commented Apr 21, 2020

I think that the only sane way to get the right end result is to fork the Model B .dts as upstream have done, but using bcm2708-model-b-rev1 and bcm2708-model-b (as opposed to bcm2708-model-b and bcm2708-model-b-rev2) for backwards-compatibility. If we bake in the i2c_vc and i2c_arm aliases that's one less thing for the firmware to do.

@pelwell
Copy link
Contributor

pelwell commented Apr 21, 2020

And I can add i2c_cam, to distinguish it from the i2c_vc on the header.

@6by9
Copy link
Contributor Author

6by9 commented Apr 21, 2020

OK, that sounds like a plan.

I'm being hassled to get DSI stuff working, so I'm going to shelve this temporarily whilst using it myself.

i2c_cam is also i2c_dsi_display, hence the current name i2c_csi_dsi. i2c_cam_display if you want to rename it?
(That is of course on all except the Model B rev 1 that forgot to route I2C to the display connector)

@pelwell
Copy link
Contributor

pelwell commented Apr 21, 2020

I'll do the necessary rework and push it as clean patches, if that's OK with you.

You're right about the label/alias - i2c_csi_dsi is accurate, and descriptive enough.

@6by9
Copy link
Contributor Author

6by9 commented Apr 21, 2020

Hang fire then as I've merged all your earlier changes into the base commits, but I don't think I've pushed that. No point in duplicating that work.

@pelwell
Copy link
Contributor

pelwell commented Apr 21, 2020

That's fine - I've not squashed anything yet.

@raspberrypi raspberrypi deleted a comment from 6by9 Apr 21, 2020
To be used to switch between the camera/display pins, and
the HAT pins for i2c-0.
(arm64/bcmrpi3_defconfig was missing all the I2C mux support,
so enable it all)

Signed-off-by: Dave Stevenson <[email protected]>
@6by9 6by9 force-pushed the rpi-5.4.y-unicam branch from 78a055a to b6f635e Compare April 21, 2020 17:30
@6by9
Copy link
Contributor Author

6by9 commented Apr 21, 2020

Rebased and repushed with the updates I'd applied from your fixups.
I've pushed the branch that you had fixed up to rpi-5.4.y-unicam-pe as a backup.

I haven't touched the B rev1 config yet, not run exhaustive tests on the various boards.

Copy link
Contributor Author

@6by9 6by9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm confused by some of the extra changes

brcm,pins = <0 1>;
brcm,function = <4>;
};

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have

			i2c0_gpio0: i2c0_gpio0 {
				brcm,pins = <0 1>;
				brcm,function = <BCM2835_FSEL_ALT0>;
			};

in bcm283x.dtsi. Any reason to duplicate?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because existing overlays target i2c0_pins.

&i2c0mux {
pinctrl-0 = <&i2c0_pins>;
};

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bcm283x-rpi-i2c0mux_0_28.dtsi is included which sets

&i2c0mux {
	pinctrl-0 = <&i2c0_gpio0>;
	pinctrl-1 = <&i2c0_gpio28>;
};

Do we need to duplicate? Or is there a commit missing here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i2c0_pins is a downstream entity so I don't want to refer to it from an upstream file, but I do want to retain the name, hence the apparent duplication.

@pelwell
Copy link
Contributor

pelwell commented Apr 22, 2020

Force-pushed to update the commit message for the rev1 addition. If you have no objections I'll squash the fixups with their respective targets and prepare to merge.

@6by9
Copy link
Contributor Author

6by9 commented Apr 22, 2020

If you're happy then I'm happy :-)

6by9 added 2 commits April 22, 2020 16:28
BSC0 serves either the HAT EEPROM pins on the 40pin connector,
or the display and camera on a board specific pairing of either
GPIO 28&29, or 44&45.

Use I2C_MUX_PINCTRL to allow exposing both pairs of pins as I2C
busses.

Signed-off-by: Dave Stevenson <[email protected]>
Update all overlays that were using i2c_vc for talking to CSI
source devices to use the new i2c_csi_dsi node via i2c_mux_pinctrl.
Remove the pins overrides as well.

Signed-off-by: Dave Stevenson <[email protected]>
BSC0 (aka i2c0) can me muxed via pinctrl to GPIOs 0&1, 28&29, or
44&45. These have different uses based on the platform (40pin header,
and CSI/DSI connectors), so add a pinctrl I2C mux between the
different options.

Signed-off-by: Dave Stevenson <[email protected]>
The first revision of the Pi Model B used I2C0 to address the camera
and I2C0 was available for user applications on the 26-pin header.
The second revision switched the roles, kept I2C0 on the 26-pin header
and added I2C1 on a new 8-way header (P5).

Up to now, downstream DTS has used a single file for both revisions of
the board, with a small amount of patching from the firmware. With the
introduction of an I2C mux to share I2C0 between the camera/display
connectors and the IDC headers, the difference between the two versions
becomes too great to comfortably manage with tweaking, hence this split.

Upstream DTS files already have bcm2835-rpi-b.dts and
bcm2835-rpi-b-rev2.dts, but for backwards compatibility the new file is
being added as bcm2708-rpi-b-rev1.dts, rather than renaming the old
shared version to bcm2708-rpi-b-rev2.dts.

Signed-off-by: Phil Elwell <[email protected]>
@pelwell pelwell merged commit 5eab66d into raspberrypi:rpi-5.4.y Apr 23, 2020
popcornmix added a commit to raspberrypi/firmware that referenced this pull request Apr 27, 2020
kernel: Revert USB: hub: Don't record a connect-change event during reset-resume
See: raspberrypi/linux#3546

firmware: arm_loader: Make 4GB available if arm_peri_high
firmware: arm_loader: Complete arm_peri_high support
See: #1374

firmware: board_info: Split Model B into rev1 and rev2
See: raspberrypi/linux#3537
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this pull request Apr 27, 2020
kernel: Revert USB: hub: Don't record a connect-change event during reset-resume
See: raspberrypi/linux#3546

firmware: arm_loader: Make 4GB available if arm_peri_high
firmware: arm_loader: Complete arm_peri_high support
See: raspberrypi/firmware#1374

firmware: board_info: Split Model B into rev1 and rev2
See: raspberrypi/linux#3537
timothyjward pushed a commit to timothyjward/rpi-firmware that referenced this pull request Jul 29, 2020
kernel: Revert USB: hub: Don't record a connect-change event during reset-resume
See: raspberrypi/linux#3546

firmware: arm_loader: Make 4GB available if arm_peri_high
firmware: arm_loader: Complete arm_peri_high support
See: raspberrypi/firmware#1374

firmware: board_info: Split Model B into rev1 and rev2
See: raspberrypi/linux#3537
mkreisl added a commit to xbianonpi/xbian-package-firmware that referenced this pull request Jan 12, 2021
- firmware: Unicam: Request frequency of 250MHz when running camera use cases

- firmware: arm_loader: Fix UART unmapping

- firmware: uart1: Revert to the old core-frequency-locking method
  See: #1267

- firmware: arm_loader: Provide a sensible device_tree_end default
  See: #1259

- firmware: mmal_ril: Fix size reported on ENOSPC error
  See: #1269

- firmware: hvs: Trigger the EOLn timer at the field rate when interlaced
  See: #1227

- firmware: bootloader_state: Add support for a custom TFTP prefix parameter

- firmware: arm_loader: GIC stub => 2711 stu
- See: #1255

- firmware: arm_loader: Add os_prefix option
  See: raspberrypi/linux#3237

- firmware: Add support for arbitrary memory specification

- firmware: arm_loader: Fix explicit kernel name handling
  See: #1277

- firmware: Added a new display power mailbox call

- firmware: Update display_power gencmd with optional display id
  See: raspberrypi/linux#3050

- firmware: Remove legacy pkgconfig to avoid Mesa conflicts
  See: raspberrypi/userland#585

- firmware: Update display_power gencmd with optional display id

- firmware: sysman: Fix unsafe check for h264 being enabled
  See: popcornmix/omxplayer#749

- firmware: platform: Reduce absolute microvolts threshold to 500000

- firmware: tv_server: Also initialise ts queue on composite
  See: https://forum.kodi.tv/showthread.php?tid=348205

- firmware: Loop to init hotplug

- firmware: hdmi: Change HDMI state machine and BVB clocks as turbo clocks

- firmware: hdmi: Add EOF timeout to unjam failed mode changes

- firmware: platform: Differentiate between boostable and turbo clocks

- firmware: arm_dt: Set WL_ON and BT_ON from .dtb

- firmware: Fixup chosing of bit depth in legacy graphics
  See: raspberrypi/linux#3331

- firmware: vec: Setup WideScreen Signalling outside of copy protection
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=256489

- firmware: Add global reset mailbox

- firmware: 2711: De-couple start.elf clock setup from the bootloader

- firmware: scaler: Correct defines for SCALER_POS0_START_Y_[MASK|SHIFT] (HVS4)

- firmware: platform: Fix missing HDMI PHY power down bit

- firmware: Reduce voltage as part of DVFS

- firmware: arm-loader: Inherit 2711 mac-address from the bootloader
  See: http://git/vc4/vc4/merge_requests/687

- firmware: arm_loader: Respect all required frequencies when throttling

- firmware: Fixup vcgencmd display_power return values

- firmware: platform: Allow fixed voltage with avs_disable=1

- firmware: EMMC: Use PLLD for EMMC for 250MHz host-clock
  See: #1289

- firmware: platform: Round down effective frequencies when they exceed max
  See: #1290

- firmware: arm_loader: Pass video mode via kernel command for composite
  See: #1285

- firmware: Fix lens shading table generation buglet
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=190586&start=75#p1534672

- firmware: hdmi: Use RB2 timing for 2560x1440@60 if pixel clock is 241.5 MHz

- firmware: arm_dt: Look for ethernet0 before ethernet

- firmware: arm_dt: Set PCIe dma-ranges from memory size

- firmware: hdmi: HDMI SM clock must not run slower than audio MAI clock
  See: #1295

- firmware: arm_loader: Pass video mode via kernel command for composite (master)
  See: #1285

- firmware: power: Use Pi4 PMIC values on Pi3+

- firmware: Fix filtered handling of array variables
  See: #1296

- firmware: Update libfdt to v1.5.1+
  See: raspberrypi/userland#582

- firmware: dtoverlay: Extend DT parameter syntax

- firmware: memorymap: Include FW revision in start.elf

- firmware: Fixup for vcgencmd display_power
  See: #1224

- firmware: Add hdmi_wifi_pixel_freq_adj config option

- firmware: Revert mmal: Support 64 bit clients
  See: raspberrypi/userland#586

- firmware: arm_dt/dtoverlay fixes for ARM side camera driver power control

- firmware: arm_ldconfig: Support multiple initramfs files
  See: #1318

- firmware: Add support for backlight enable

- firmware: master: arm_ldconfig: Support multiple initramfs files
  See: #1318

- firmware: power: Make pmicrd/pmicwr available to all

- firmware: platform: Only throttle down from arm_freq

- firmware: platform: Bump desired ring osc to 3.7 on Pi3/CM3

- firmware: arm_loader: Add 2ms delay before resetting SD_IO

- firmware: isp/tuner: Resetting to a lamp mode cancels manual_gains_used_

- firmware: board_info: Fix uninitialised phy_addr handling in network boot

- firmware: IL video_decode: Default to H264 as MPEG4 isn't supported

- firmware: IL egl_render: Fail the create on Pi4

- firmware: arm_dispmanx: Column pitch for YUV10COL is in lines not bytes

- firmware: platform: 2711: Also add chicken bits to dvfs voltage

- firmware: MMAL / video_render: Allow column stride to be set on column formats

- firmware: vc_image/video_decode: Move +16 lines for di_adv from vc_image to decoder

- firmware: platform: 2711: Support overclocking gpu frequencies
  See: #1290

- firmware: gencmd: Fix measure_clock name for CLOCK_OUTPUT_108

- firmware: mmal isp: Remote alignment requirements for RGB24 formats

- firmware: Add missing flags for VC_IMAGE_PROP_YUVUV_4K_CHROMA_ALIGN

- firmware: platform: Compromise on gpu overclock settings
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=262649&start=100#p1610362

- firmware: Add the ability to export labels from overlays

- firmware: loader: 4-byte align initramfs blocks
  See: #1318

- firmware: vd3/video_decode: Do not add 16 lines of context when video is 1920 tall
  See: #1334

- firmware: Allow use of 24 bit framebuffers
  See: #1338

- firmware: arm_loader: Add non-os_prefix cmdline.txt fallback

- firmware: board_info: Set board-info memory size according to SDRAM mode registers

- firmware: arm_loader: Treat min frequencies as optional
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=264786

- firmware: arm_loader: Add overvoltage_delta for manufacture tests

- firmware: Support Isp stats and params

- firmware: arm_loader: Make EMMC2 dma-ranges patch more tolerant

- firmware: bootromfs: Delete unwanted assert

- firmware: usb_eth: Increase timeouts for TFTP requests and retransmit ACK

- firmware: isp component: rtos_common_mem: Fix handle acquire usage with wrap handles

- firmware: il: video_render: Require 4k chroma alignment on YUVUV transpose
  See: #1334

- firmware: vc_image: Don't align the YUVUV pitch to SDRAM pages if not aligning to 4k
  See: raspberrypi/linux#3492

- firmware: isp component: rtos_common_mem: Fix smallalloc test in mem_handle_acquire_if_valid

- firmware: platform: 2711: Make chicken-bit pip size vary with pmic quantum

- firmware: USB device boot for CM4

- firmware: arm_loader: Add SET_LAUNCH_VPU1 mailbox message

- firmware: il: camera: Add config.txt param awb_auto_is_greyworld for NoIR camera
  See: #1167

- firmware: arm_loader: Provisional support for high peris

- firmware: arm_loader: Only add margins to cmdline if non-zero

- firmware: clock: Support clock_measure_pll on pi0-3

- firmware: platform: Back to CLOCK_PLL_CHAN_CPER for emmc on pi0-3

-  firmware: gpu_server: Fixup after LAUNCH_VPU1 commit

- firmware: power: Add a notch to compensate for trim on 2835

- firmware: isp/tuner: Resetting to a lamp mode cancels manual_gains_used_ (master)

- firmware: armstubs: Rebuild with latest source

- firmware: arm_loader: Avoid resetting the GPIO expander

- firmware: vcos_genversion: Fix up legacy variant names

- firmware: dtoverlay: Add overlay_map functionality
  See: raspberrypi/linux#3520

-  firmware: isp_tuner: Add in the slave AWB tuner handling

- firmware: arm_dt: Apply os_prefix to device_tree= files

- firmware: clock_2711: Fix PLL analog setup

- firmware: board_info: Also include CM3+ for pmic trait
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=267576&start=25#p1643032

- firmware: Switch to building from common firmware branch

- firmware: isp: make AGC metering respect the (digital zoom) crop region

- firmware: Avoid linking in khronos on Pi4

- firmware: clock: Reset PLLC after switching VPU to OSC

- firmware: arm_loader: Make 4GB available if arm_peri_high

- firmware: arm_loader: Complete arm_peri_high support
  See: #1374

- firmware: board_info: Split Model B into rev1 and rev2
  See: raspberrypi/linux#3537

- firmware: power: Clamp voltage to platform limits for all power supplies

- firmware: isp: Ensure lens shading (LS) is enabled when a valid LS table is received

- firmware: otp: Fix advanced boot row definition

- firmware: bootcode: Fix issue booting with webcams

- firmware: isp: fix ISP component to return non-zero focus FoMs

- firmware: Fix for IMX477 focal length, f_number and aperture

- firmware: Update firmware for USB MSD boot

- firmware: platform: Fix overflow on high arm overclocks

- firmware: video_encode: Add option to include header bytes with frame

- firmware: DSI display: Close I2C handle if the display doesn't probe

- firmware: mmal/vc: Add mapping for OMX_IndexConfigBufferStall / MMAL_PARAMETER_VIDEO_STALL_THRESHOLD
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=70&t=273123&p=1655481

- firmware: hdmi: Request an I2C interrupt for EDID reading

- firmware: i2c: Move using_interrupt flag into periph_setup

- firmware: camera: Latency reduction for captures

- firmware: IL camera fixes for reduced startup time

- firmware: mmal_ril: Correct a use of portdef.video to portdef.image

- firmware: vc_image: SDRAM page alignment is optional for YUV10_COL
  See: https://forum.libreelec.tv/thread/21985-noise-artefacts-when-playing-back-4k-hevc-video-on-rpi4-le-9-2-1-no-problems-on/

- firmware: imx477: Correct the logic for extending hblank on long exposures

- firmware: il: isp: Ensure HR output is active and ISP is open before starting a frame

- firmware: isp_ctrl: Fail in start_[raw|yuv]_frame if ISP is not idle
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=275489

- firmware: vcfw: Fix PMIC max voltage
  See: https://forum.libreelec.tv/thread/22097-libreelec-leia-9-2-3

- firmware: ISP raw14 and mono input, 16bpc YUV output. Camera subsystem not messing with GPIO0

- firmware: isp: fix assert from initial setting of ISP denoise parameters

- firmware: arm_ldconfig: Don't pad initramfs files
  See: #1395

- firmware: board_info: Add and use BT_FLOWCONTROL trait

- firmware: logging: Add missing checks for uart_output_enabled

- firmware: host_applications: Install debug_sym.h

- firmware: logging: Inherit uart_2ndstage config from the bootloader

- firmware: Fix Pi4 regression in previous build

- firmware: platform: Resolve BT flow control contention
  See: Hexxeh/rpi-firmware#227

- firmware: hdmi: Limit the valid CEA modes to those defined in the table
  See: https://forum.libreelec.tv/thread/22135-regression-raspberry-pi-3-hdmi-output-broken-after-upgrade-to-9-2-x

- firmware: imx477: Add switch to allow switching of on-sensor DPC

- firmware: hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET
  See: https://forum.kodi.tv/showthread.php?tid=354589

- firmware: arm_ldconfig: Honour the kernel8 text offset
  See: #1415

- firmware: jpeghw: Skip repeated 0xFF padding bytes between markers
  See: RPi-Distro/vlc#8

- firmware: arm_loader: Allow interlaced HDMI modes from FKMS
  See: raspberrypi/linux#3698

- firmware: arm_loader: Limit rather than reject boosts with disable_auto_turbo

- firmware: i2c: Clearing the TA bit may time out
  See: #1422

- firmware: arm_loader: Add an accelerated memmove

- firmware: arm_loader: memmove kernel to preferred text_offset
  See: #1421

- firmware: filesystem: Fix GPT regression on USB after SD fix
  See: #1420

- firmware: arm_loader: Don't enable the ARM USB IRQ
  See: raspberrypi/linux#3703

- firmware: hdmi: Remove M2MC/BVB min turbo clock request

- firmware: IL: camera: Fix stereoscopic pool allocations

- firmware: arm_loader: Add support for double clock/pixel_rep for FKMS
  See: raspberrypi/linux#3725

- firmware: scalerlib: Set the default chroma location for YUV10 to match 8bit

- firmware: scalerlib: Set chroma_vrep correctly for YUV10COL

- firmware: isp: check the hi-res resize filter mode when the input crop changes

- firmware: arm_loader: Knock 1.7 seconds off boot time
  See: #1375

- firmware: Imx477 external sync signals

- firmware: bootloader: Some tweaks for LED, UART, USB timeouts

- firmware: platform: Avoid vco issue with low arm_freq_min on Pi0-3
  See: #1431

- firmware: arm_loader: Don't try to load to 0 a.k.a. NULL
  See: #1445

- firmware: armstub7: Configure the top 32 STB interrupts

- firmware: dispmanx: Remove elements cleanly that are totally offscreen negatively
  See: raspberrypi/linux#3735

- firmware: hdmi: Set the altered mode, not the caller's mode
  See: #1446

- firmware: dt-blob: Declare CM4 GPIO expander pins

- firmware: clocks: Make frequency_t 64-bit

- firmware: Revert frequency_t: Make 64-bit

- firmware: ISP/tuner: Increase max exposure time for fixed ISO modes on IMX219 and 477
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=281603

- firmware: sdhost_arasan: Ignore DCRC after CMD12
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=282928

- firmware: firmware: frequency_t: Make 64-bit

- firmware: pi4: allow pllb changes while running
  See: #1431

- firmware: board_info: Give the CUSTOM boards the PMIC_NCP6343 trait

- firmware: dispmanx/displays: Allow both DPI and DSI displays simultaneously

- firmware: imx477: Release the I2C semaphore once finished, not before

- firmware: clock: Allow overclocking pllb
  See: raspberrypi/linux#3823

- firmware: hdmi/edid: Reduce the bias to all but the first detailed timing

- firmware: hdmi/edid: Add option to ignore any odd horizontal timings on Pi4

- firmware: sdcard: Hybrid MBR - only select GPT if it is the first primary partition
  See: #1465

- firmware: audioplus: Avoid broken audio when requesting hdmi audio device when using composite display
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=283639

- firmware: platform: Add support for SCB clock and set to 250MHz

- firmware: Revert arm_loader: Move first call to set_turbo after arm->start

- firmware: arm_ldconfig: GZIP-compressed ARMv8 kernel support

- firmware: arm_ldconfig: Restore the fallback load address
  See: #1467

- firmware: ilcamera: Disable timeouts on trigger sink devices

- firmware: genet: Flush RBUF/TBUF and clear mac-address on stop
  See: raspberrypi/linux#3850

- firmware: dmalib: Add support for 40-bit 2d memcpy

- firmware: sdcard: Reduce SD read overhead

- firmware: sdhost_arasan: Increase time threshold before suspend

- firmware: video_decode: Only shutdown codec on both ports being disabled

- firmware: vc_image_helper: Avoid misaligned exception due to uninitialised pointer

- firmware: arm_loader: Make arm clock accesses only see their own boosts
  See: #1469

- firmware: arm_loader: enable simple_fb iff there is a display
  See: raspberrypi/linux#3878

- firmware: arm_loader: Mark V3D early boost as for the ARM
  See: #1469

- firmware: arm_loader: Update armstubs with those from PR 117
  See: raspberrypi/tools#117

- firmware: Revert sdcard: Reduce SD read overhead

- firmware: arm_loader: Add GET/SET_VPU_VECTOR mailbox calls

- firmware: arm_ldconfig: Don't invalidate the dcache for most of memory
  See: #1445

- firmware: arm_loader: Allow arm to see force_turbo and uart boosts

- firmware: hdmi: Timeout HDMI EDID reads

- firmware: pwm_sdm: move modulator to VPU0
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=195178&p=1723639

- firmware: Add tryboot mechanism to provide a fallback if an OS upgrade fails

- firmware: camplus: stills_denoise: Release the VRF between iterations

- firmware: vc_image: Further fixup of fix_alignment
  See: #1334

- firmware: arm_loader: Support large PCIe window with <8GB RAM
  See: https://www.raspberrypi.org/forums/viewtopic.php?p=1759627#p1759627

- firmware: filesys: Close the brfs from filesys_power(..., 0)

- firmware: platform: Avoid vco issue with low arm_freq_min on Pi0-3
  See: #1431

- firmware: video_encode: Allow level 5.0 and 5.1
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=291447

- firmware: xhci: Don't reset BCM2711 XHCI from filesys in start.elf

- firmware: bootcode.bin: Add support for tryboot

- firmware: Switch DA9121 PMIC to PWM mode when ARM > 600 MHz

- firmware: arm_dt: Handle parent interrupt controllers when masking

- firmware: config: Add cm4 and pi400 config section filters

- firmware: MMAL/IL/ISP component: Set the ISP boost frequency once on open

- firmware: sdcard: Remove legacy NOOBS support to support booting from primary partition 4

- firmware: arm_loader: Move 2711 RAM to PCIe address 16GB

- firmware: video_decode: Add parameter to disable timestamp validation

- firmware: Imx477 camera tuning fixes
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=291032#p1770287
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=291032&start=25#p1771066

- firmware: Use DMA40 for PWM audio

- firmware: imx477: Replace existing 720p120 mode with a new 1332x990 120fps mode

- firmware: arm_loader: Allow max_framebuffers=0 to disable framebuffers
  See: #1507

- firmware: dmalib: Allow sdcard to borrow channel 6
  See: #1511
  See: Hexxeh/rpi-firmware#251
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=294932

- firmware: DSI interrupt fixes, and HDMI SM clock for deep colour

- firmware: dmalib: Keep 40-bit DMA clear of L2 alias

- firmware: audioplus: Fix hang when switching destination
  See: #1516

- firmware: HAT/I2C updates

- firmware: MMAL/IL: Add support for the 16bpp Bayer/Grey raw 10/12/14 formats

- firmware: Revert firmware: HAT/I2C updates

- firmware: firmware: MMAL/IL: Add support for the 16bpp Bayer/Grey raw 10/12/14 formats

- Firmware: undo previous reverts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants