1
0
Fork 0
Commit graph

31 commits

Author SHA1 Message Date
9a769db9af Add HDMI CEC support for the DesignWare HDMI QP controller
Backport the generic DRM HDMI CEC helpers (drm_hdmi_cec_helper and
drm_hdmi_cec_notifier_helper) along with the drm_connector CEC state,
drm_bridge CEC callbacks, and drm_bridge_connector glue that the
adapter registration path requires. Propagate the HDMI physical
address to the CEC adapter from the HDMI state helper hotplug path.

Implement the CEC adapter in dw-hdmi-qp: register definitions, IRQ
handling, transmit and receive paths, logical address programming,
and enable/disable. Pass the named "cec" IRQ and the HDMI reference
clock rate down from dw_hdmi_qp-rockchip so the timer base is
initialised from the actual reference clock.

Enable CONFIG_DRM_DW_HDMI_QP_CEC in tart_defconfig.
2026-08-09 22:18:44 -04:00
10cf76215c Embed Mali GPU firmware via CONFIG_EXTRA_FIRMWARE, disable CONFIG_DRM_PANFROST
Panthor (Mali-G610 driver) requests mali_csffw.bin at ~1.2s, before /vendor
mounts at ~2.4s. With FW_LOADER_USER_HELPER intentionally disabled, the
firmware request fails instantly and probe fails. Embed the 276KB blob
directly in the kernel Image so firmware is always available at probe time.

Also disable CONFIG_DRM_PANFROST (Midgard/Bifrost driver) — it will never
bind a Valhall G610 GPU and is dead weight alongside panthor.

Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
2026-07-15 22:35:18 -04:00
22205a67e1 Build socket diag and vsock built-in, disable WiFi default powersave
This device has no module-loading infrastructure, so =m configs are
silently absent at runtime. Missing SOCK_DIAG made every
InetDiagMessage.destroyLiveTcpSockets() call in system_server block
~6s on netlink timeouts (114 times in one 9-minute boot, watchdog-level
main-thread stalls, Settings ANRs, stale IP/status UI). Missing
AF_VSOCK made traced crash-loop every 5s (vsock://-1:2010
EAFNOSUPPORT), tripping updatable_crashing flag resets.

CONFIG_CFG80211_DEFAULT_PS=n: mt7921u with powersave on goes deaf
after association - EAPOL 2/4 is sent, msg 3 never heard, AP deauths
with reason 15 (4-way handshake timeout) - and idle RTT spikes to
100ms+, delaying inbound connections. Always-powered TV box, so
default powersave off is the right trade.

Hypervisor-only vsock transports (VMware/virtio) stay off.
2026-07-15 12:51:51 -04:00
ffcd56dc52 Embed regulatory.db and MT7961 WiFi firmware via CONFIG_EXTRA_FIRMWARE
cfg80211 requests regulatory.db once at ~1.3s — before /vendor mounts at
~2.5s — and caches the failure forever (regdb = ERR_PTR in
net/wireless/reg.c), leaving the kernel stuck in the world regulatory
domain: every 5GHz channel PASSIVE-SCAN, TX capped at 20dBm, and no way
to apply the US country code hint from the framework. On a network whose
AP sits on a DFS channel (ch 144 here) the adapter may never actively
probe, causing intermittent scan misses and multi-minute connects. No
runtime recovery is possible without root (NL80211_CMD_RELOAD_REGDB).

Similarly, an mt7921u adapter present at power-on requests its firmware
pre-/vendor, fails, and wastes ~31s in an MCU retry loop ('Failed to get
patch semaphore') before wireless_reprobe.sh can rebind it post-mount.

Embedded firmware is checked before any filesystem path, so both load
deterministically at first probe regardless of partition mount order.
Files live under firmware/ (CONFIG_EXTRA_FIRMWARE_DIR is srctree-relative);
firmware/.gitignore un-ignores them from the root *.bin exclusion. Adds
~890KB to the Image. Other USB adapters still use the reprobe fallback.
2026-07-14 20:43:07 -04:00
120f414e53 tart_defconfig: build Realtek r8169 Ethernet driver built-in (=y)
The RTL8125BG 2.5GbE controller on the Orange Pi 5 Ultra uses the
r8169 driver.  It was configured as a loadable module (=m), but this
device has no module-loading infrastructure (no modules.load, no
vendor_dlkm), so the module was never shipped and Ethernet was dead
on arrival.

Build the driver into the kernel so it probes at boot.
The driver works without its optional PHY firmware at reduced
functionality; the firmware (rtl_nic/rtl8125b-2.fw etc.) is still
shipped in /vendor/firmware/rtl_nic/ for when the post-fs reprobe
path can load it later.
2026-07-14 13:18:18 -04:00
a2c2763c8d Disable Broadcom WLAN in favor of USB WiFi adapters 2026-07-13 04:15:47 -04:00
ae862b6153 Enable broad built-in USB WiFi adapter driver support 2026-07-13 01:14:00 -04:00
fe33823572 Load vendor firmware via direct search path instead of userspace fallback 2026-07-13 00:57:13 -04:00
8367f92800 Enable userspace firmware helper for vendor firmware loading 2026-07-12 23:44:52 -04:00
277dbca2d3 Disable bcmdhd and rockchip_wlan in favor of brcmfmac 2026-07-12 23:44:38 -04:00
d7288a3810 Integrate bcmdhd driver into kernel build tree
- Add rockchip_wlan Kconfig include to drivers/net/wireless/Kconfig
  (the Makefile already has the build rule under CONFIG_WL_ROCKCHIP)
- Set CONFIG_WL_ROCKCHIP=y in tart_defconfig to enable bcmdhd build
2026-07-12 22:08:15 -04:00
9b53cabb8f Enable bcmdhd for SYN43711 (AP6611S) WiFi
- CONFIG_BCMDHD=y, CONFIG_BCMDHD_SDIO=y
- Set firmware/NVRAM paths for vendor firmware directory
- Disable brcmfmac SDIO to avoid driver conflict with bcmdhd catch-all
2026-07-12 21:56:52 -04:00
6912c96c60 Fix tart_defconfig: remove EXTRA_FIRMWARE with stale vendor path 2026-07-12 18:48:48 -04:00
a72eba56bd Add Orange Pi 5 Ultra WiFi/BT support and tart_defconfig
- Enable SDIO WiFi (brcmfmac) via mmc@fe2d0000 with mmc-pwrseq
- Enable Bluetooth (brcm,bcm43438-bt) via uart7 serdev node
- Create tart_defconfig based on android_orangepi5_defconfig
- PIN mappings from jimmyhon/linux max-wifi branch (GPIO2 PC5 WIFI_REG_ON,
  GPIO4 PC4 BT_REG_ON, SDIO sdiom0_pins, UART7 uart7m0_xfer + ctsn/rtsn)
2026-07-12 18:16:41 -04:00
dvab-sarma
884f440851 Enabling USB 3.0 port on Orange Pi 5 Pro.
The regulator vcc5v0_otg is always on and is on when the kernel boots. THe vin-supply of the regulator is vcc5v0_usb but vcc5v0_usb is connected to vcc5v0_sys, which is always
on boot(refer to documentation). Hence, this regulator should be on at boot and adding these lines, made the USB 3.0 port work for Orange pi 5 pro, which was missing from the beginning.
2025-12-12 02:39:36 -06:00
dvab-sarma
8ce39d4a14 Adding pinctrl-0 to pcie node and disabling ethernet node
This node is connected to the m.2 slot found in orange pi 5 pro and certain pins are connected to the gpio, like PCIE20x1_1_PERSTn_M1, PCIE20x1_1_CLKREQn_M1 and PCIE20x1_1_WAKEn_M1.

In absence of these gpio definitions, would cause nvme to be recognised but if it went to sleep, there is no way for them to be waken up. Hence, Adding this resolved the issue -

[ 35.812749] Bluetooth: hci0: BCM: features 0x0f
[ 35.814580] Bluetooth: hci0: BCM4345C5 Ampak_CL1 UART 37.4 MHz BT 5.0 [Version: Version: 0039.0089]
[ 35.815374] Bluetooth: hci0: BCM4345C5 (003.006.006) build 0089
[ 45.335521] platform bridge: deferred probe pending: (reason unknown)
[ 66.658318] nvme nvme0: controller is down; will reset: CSTS=0xffffffff, PCI_STATUS read failed (134)
[ 66.659131] nvme nvme0: Does your device have a faulty power saving mode enabled?
[ 66.659784] nvme nvme0: Try "nvme_core.default_ps_max_latency_us=0 pcie_aspm=off pcie_port_pm=off" and report a bug
[ 69.009422] nvme0n1: I/O Cmd(0x2) @ LBA 7385088, 32 blocks, I/O Error (sct 0x3 / sc 0x71)
[ 69.010143] I/O error, dev nvme0n1, sector 7385088 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[ 69.047131] nvme 0003:31:00.0: Unable to change power state from D3cold to D0, device inaccessible
[ 69.099121] nvme nvme0: Disabling device after reset failure: -19
[ 69.123144] Buffer I/O error on dev nvme0n1p4, logical block 0, async page read
[ 69.123817] init: [libfs_mgr] Can't read '/dev/block/by-name/metadata' superblock: I/O error
[ 69.124672] EXT4-fs (nvme0n1p4): unable to read superblock
[ 69.125197] init: [libfs_mgr] __mount(source=/dev/block/by-name/metadata,target=/metadata,type=ext4)=-1: I/O error
[ 69.126120] init: DSU not detected, proceeding with normal boot
[ 69.126684] Buffer I/O error on dev nvme0n1p2, logical block 0, async page read
[ 69.127342] init: [libfs_mgr] Can't read '/dev/block/by-name/system' superblock: I/O error
[ 69.128100] EXT4-fs (nvme0n1p2): unable to read superblock
[ 69.128596] init: [libfs_mgr] __mount(source=/dev/block/by-name/system,target=/system,type=ext4)=-1: I/O error
[ 69.129465] init: Failed to mount /system: I/O error [ 69.129932] init: Failed to mount required partitions early ...
[ 69.130669] init: InitFatalReboot: signal 6
[ 69.135720] init: #00 pc 00000000003cf510 /init (unwindstack::AndroidLocalUnwinder::InternalUnwind(std::__1::optional<int>, unwindstack::AndroidUnwinderData&)+116) (BuildId: 2a2f03a3b9ebbb40bcce7295bfedf748)
[ 69.137346] init: #01 pc 00000000003c96f4 /init (android::init::InitFatalReboot(int)+204) (BuildId: 2a2f03a3b9ebbb40bcce7295bfedf748)
[ 69.198289] kvm: exiting hardware virtualization
[ 69.198796] reboot: Restarting system with command 'bootloader'
2025-12-11 03:55:34 -06:00
dvab-sarma
0aecbcb214 Changing PCI_performace to PCI_Powersave 2025-12-11 03:54:35 -06:00
dvab-sarma
2a84642e99 Enabling PCI Support on RK3588
Due to a mistake, Kernel sets the PCI port to Endpoint mode and wouldn't detect nvme drives. With this correction, removes the PCI endpoint config and replaces it with HOST mode only config.
Intial tests are working, detecting the NVME drive but for some NVME drives due to APST and PCIe ASPM/port PM, would not be detected or cause issues.
2025-12-10 13:56:30 -06:00
dvab-sarma
1ad8e7cb28 Remove test files from tracking and add to gitignore 2025-12-04 02:57:30 -06:00
dvab-sarma
4176d76292 These changes enable the dp0 node of rk3588(s), which enables DisplayPort of the SoC. This is essential as the seconday hdmi port of Orange pi 5 pro is fundamentally a DP port
with dp to hdmi converter bridge present. By enabling this, we can use the 2nd hdmi as a secondary display for AOSP(or even primary if first hdmi port is not used).
2025-12-04 02:12:24 -06:00
dvab-sarma
2b492fc2fd adding 2025-11-17 01:03:55 -06:00
dvab-sarma
118b766262 testing: increasing CMA size temporarily. 2025-11-17 00:57:03 -06:00
dvab-sarma
05185423a7 testing: temp. disabling IOMMU's 2025-11-17 00:55:44 -06:00
dvab-sarma
321723326f Adding HEVC and h.264 using v4l2 requests - testing! not final prod build
These modifications are from Detlev Casanova from collabora, who is currently developing HW stateless video decoders drivers for rk3588 and rk3576 SoC's . Using his patch for linux and ffmpeg using v4l2 requests and my patches for ffmpeg_codec2, I was able to get 4k@25 fps - 8-bit, running( HEVC and h.264) but still yet to optimise it and need to add hw decoders for vp9, av1, vp8 etc. NOTE - This is a testing build and might cause kernel panics.
2025-10-27 01:42:27 -05:00
dvab-sarma
8839b782eb add links to dts
adding the flag would allow us to combine dtbos with dtbs allowing users to add external peripherals and declaring them at boot runtime
2025-09-24 15:30:22 -05:00
dvab-sarma
7949d2dd3d fixed usb not getting detected issue 2025-08-30 18:25:18 -05:00
dvab-sarma
14a5f32f47 added Orange pi 3b v2.1 support 2025-08-06 14:13:44 -05:00
dvab-sarma
15f5e71234 problems were faced when booting opi5, so made some changes to test. 2025-07-15 21:52:27 -05:00
dvab-sarma
cba57b152a changes made 2025-07-01 23:15:13 -05:00
dvab-sarma
6224042749 added opi 5 support 2025-07-01 17:26:01 -05:00
dvab-sarma
7e144d9afa can be used for AOSP 15 & 16 2025-06-27 00:32:42 -05:00