1
0
Fork 0
Commit graph

36 commits

Author SHA1 Message Date
666e8edd5f bcmdhd: set FW_AMPAK_PATH for vendor firmware directory
Define FW_AMPAK_PATH as vendor/firmware/brcm so the driver's
dhd_conf_add_filepath constructs the correct absolute firmware
path /vendor/firmware/brcm/fw_<chip>.bin.
2026-07-12 21:57:50 -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
2b98609ec4 Update README for Orange Pi 5 Ultra source kernel 2026-07-12 18:31:58 -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
a55f311433 Refactoring
Shifting common code between rkvdec-vp9.c and rkvdec-vdpu381-vp9.c to rkvdec-vp9-common.c

There is still some more common code which needs to be shifted, but still working on it.
2025-12-19 00:01:34 -06:00
dvab-sarma
68e53ea74f Correction
adding missing inclusion of vp9 driver for vdpu381 in build
2025-12-16 12:56:16 -06:00
dvab-sarma
45b97a918b Correction
adding missing inclusion of vp9 driver for vdpu381 in build
2025-12-16 12:54:20 -06: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
8b7d53a27b [PATCH v4 1/3] PCI: dw-rockchip: Remove PCIE_L0S_ENTRY check from rockchip_pcie_link_up()
Date: Thu, 17 Apr 2025 08:35:09 +0800	[thread overview]
Message-ID: <1744850111-236269-1-git-send-email-shawn.lin@rock-chips.com> (raw)

Two mistakes here:
1. 0x11 is L0 not L0S, so the naming is wrong from the very beginning.
2. It's totally broken if enabling ASPM as rockchip_pcie_link_up() treat
other states, for instance, L0S or L1 as link down which is obviously
wrong.

Remove the check.

Fixes: 0e898eb8df4e ("PCI: rockchip-dwc: Add Rockchip RK356X host controller driver")
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
2025-12-11 03:53:20 -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
5ba93ec015 drm/bridge: Pass down connector to drm bridge detect hook
In some application scenarios, we hope to get the corresponding
connector when the bridge's detect hook is invoked.

In most cases, we can get the connector by drm_atomic_get_connector_for_encoder
if the encoder attached to the bridge is enabled, however there will
still be some scenarios where the detect hook of the bridge is called
but the corresponding encoder has not been enabled yet. For instance,
this occurs when the device is hot plug in for the first time.

Since the call to bridge's detect is initiated by the connector, passing
down the corresponding connector directly will make things simpler.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250703125027.311109-3-andyshrk@163.com
[DB: added the chunk to the cdn-dp driver]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
2025-12-04 18:04:43 -06:00
dvab-sarma
2bef665401 [PATCH 4/4] drm/rockchip: dw_hdmi_qp: Do not send HPD events for all connectors
Date: Wed, 03 Dec 2025 20:27:55 +0200	[thread overview]
Message-ID: <20251203-dw-hdmi-qp-scramb-v1-4-836fe7401a69@collabora.com> (raw)
In-Reply-To: <20251203-dw-hdmi-qp-scramb-v1-0-836fe7401a69@collabora.com>

In order to optimize the HPD event handling and run the detect cycle on
the affected connector only, make use of
drm_connector_helper_hpd_irq_event() instead of
drm_helper_hpd_irq_event().

Additionally, move devm_request_threaded_irq() after bridge connector
initialization.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
2025-12-04 17:09:30 -06:00
dvab-sarma
bffd456270 [PATCH 3/4] drm/bridge: dw-hdmi-qp: Add high TMDS clock ratio and scrambling support
Date: Wed, 03 Dec 2025 20:27:54 +0200	[thread overview]
Message-ID: <20251203-dw-hdmi-qp-scramb-v1-3-836fe7401a69@collabora.com> (raw)
In-Reply-To: <20251203-dw-hdmi-qp-scramb-v1-0-836fe7401a69@collabora.com>

Add support for HDMI 2.0 display modes, e.g. 4K@60Hz, by permitting TMDS
character rates above the 340 MHz limit of HDMI 1.4b.

Hence, provide the required SCDC management, including the high TMDS
clock ratio and scrambling setup, and filter out the HDMI 2.1 modes.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
2025-12-04 17:00:21 -06:00
dvab-sarma
201447bee4 [PATCH 2/4] drm/bridge-connector: Switch to using ->detect_ctx hook
In preparation to allow bridge drivers relying on the HDMI connector
framework to provide HDMI 2.0 support, make use of the atomic version of
drm_connector_funcs.detect() hook and invoke the newly introduced
drm_bridge_detect_ctx() helper.

In particular, this is going to be used for triggering an empty modeset
in drm_bridge_funcs.detect_ctx() callback, in order to manage SCDC
status lost on sink disconnects.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
2025-12-04 16:39:25 -06:00
dvab-sarma
780a87c4da [PATCH 1/4] drm/bridge: Add ->detect_ctx hook and drm_bridge_detect_ctx()
Date: Wed, 03 Dec 2025 20:27:52 +0200	[thread overview]
Message-ID: <20251203-dw-hdmi-qp-scramb-v1-1-836fe7401a69@collabora.com> (raw)
In-Reply-To: <20251203-dw-hdmi-qp-scramb-v1-0-836fe7401a69@collabora.com>

Add an atomic variant of the ->detect callback and a new helper to call
the hook while passing an optional drm_modeset_acquire_ctx reference.

When both ->detect_ctx and ->detect are defined, the latter is ignored.
If acquire_ctx is unset, the function takes care of the locking,
while also handling EDEADLK.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
2025-12-04 16:32:52 -06:00
dvab-sarma
1ad8e7cb28 Remove test files from tracking and add to gitignore 2025-12-04 02:57:30 -06:00
dvab-sarma
9a6c85c2de wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode
commit 3776c685ebe5f43e9060af06872661de55e80b9a upstream.

Currently, whenever there is a need to transmit an Action frame,
the brcmfmac driver always uses the P2P vif to send the "actframe" IOVAR to
firmware. The P2P interfaces were available when wpa_supplicant is managing
the wlan interface.

However, the P2P interfaces are not created/initialized when only hostapd
is managing the wlan interface. And if hostapd receives an ANQP Query REQ
Action frame even from an un-associated STA, the brcmfmac driver tries
to use an uninitialized P2P vif pointer for sending the IOVAR to firmware.
This NULL pointer dereferencing triggers a driver crash.

 [ 1417.074538] Unable to handle kernel NULL pointer dereference at virtual
 address 0000000000000000
 [...]
 [ 1417.075653] Call trace:
 [ 1417.075662]  brcmf_p2p_send_action_frame+0x23c/0xc58 [brcmfmac]
 [ 1417.075738]  brcmf_cfg80211_mgmt_tx+0x304/0x5c0 [brcmfmac]
 [ 1417.075810]  cfg80211_mlme_mgmt_tx+0x1b0/0x428 [cfg80211]
 [ 1417.076067]  nl80211_tx_mgmt+0x238/0x388 [cfg80211]
 [ 1417.076281]  genl_family_rcv_msg_doit+0xe0/0x158
 [ 1417.076302]  genl_rcv_msg+0x220/0x2a0
 [ 1417.076317]  netlink_rcv_skb+0x68/0x140
 [ 1417.076330]  genl_rcv+0x40/0x60
 [ 1417.076343]  netlink_unicast+0x330/0x3b8
 [ 1417.076357]  netlink_sendmsg+0x19c/0x3f8
 [ 1417.076370]  __sock_sendmsg+0x64/0xc0
 [ 1417.076391]  ____sys_sendmsg+0x268/0x2a0
 [ 1417.076408]  ___sys_sendmsg+0xb8/0x118
 [ 1417.076427]  __sys_sendmsg+0x90/0xf8
 [ 1417.076445]  __arm64_sys_sendmsg+0x2c/0x40
 [ 1417.076465]  invoke_syscall+0x50/0x120
 [ 1417.076486]  el0_svc_common.constprop.0+0x48/0xf0
 [ 1417.076506]  do_el0_svc+0x24/0x38
 [ 1417.076525]  el0_svc+0x30/0x100
 [ 1417.076548]  el0t_64_sync_handler+0x100/0x130
 [ 1417.076569]  el0t_64_sync+0x190/0x198
 [ 1417.076589] Code: f9401e80 aa1603e2 f9403be1 5280e483 (f9400000)

Fix this, by always using the vif corresponding to the wdev on which the
Action frame Transmission request was initiated by the userspace. This way,
even if P2P vif is not available, the IOVAR is sent to firmware on AP vif
and the ANQP Query RESP Action frame is transmitted without crashing the
driver.

Move init_completion() for "send_af_done" from brcmf_p2p_create_p2pdev()
to brcmf_p2p_attach(). Because the former function would not get executed
when only hostapd is managing wlan interface, and it is not safe to do
reinit_completion() later in brcmf_p2p_tx_action_frame(), without any prior
init_completion().

And in the brcmf_p2p_tx_action_frame() function, the condition check for
P2P Presence response frame is not needed, since the wpa_supplicant is
properly sending the P2P Presense Response frame on the P2P-GO vif instead
of the P2P-Device vif.

Cc: stable@vger.kernel.org
Fixes: 18e2f61 ("brcmfmac: P2P action frame tx")
Signed-off-by: Gokul Sivakumar <gokulkumar.sivakumar@infineon.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20251013102819.9727-1-gokulkumar.sivakumar@infineon.com
[Cc stable]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-12-04 02:20:01 -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
d597efce51 fixing copyright section 2025-11-17 00:59:28 -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
ce89d8ce4e fixing copyright section 2025-11-17 00:53:36 -06:00
dvab-sarma
714e166773 testing: Adding vp9 decoder registers
This phase of development introduces vp9 hardware decoder for rk3588 developed by  me.
2025-11-17 00:53:04 -06:00
dvab-sarma
fd0b1b17cb testing: RKVDEC 2 based vp9 hardware decoder
This commit introduces vp9 hardware decoder present in vdpu381 on RK3588. Current testing shows that this can play until 4k@30fps - profile 0. Tested using various vp9 based videos and youtube. This is still in development phase and not production ready.
2025-11-17 00:44:33 -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