Caesar Wang
39d1fb94fa
media: rockchip: vpss: prevent NULL dereference in rkvpss runtime resume
...
- Validate vpss[i] and sw_base_addr before memset/memcpy operations
- Add bounds checking for dev_num to prevent array overflow
- Add error logging for invalid sw_base_addr during register restoration
This resolves kernel panic caused by accessing uninitialized sw_base_addr
during power management resume path. The issue occurred when restoring
VPSS hardware registers from suspend state.
Boot up on as below logs:
[ 6.869681] lr : rkvpss_hw_runtime_resume+0x160/0x198
[ 6.870141] sp : ffffffc00969b930
[ 6.870444] x29: ffffffc00969b930 x28: ffffff80035e9800 x27: ffffff80020ad200
[ 6.871088] x26: 0000000000000003 x25: ffffffc0091f4000 x24: ffffff8001ed40a8
[ 6.871730] x23: ffffffc008cbf000 x22: ffffff8001953010 x21: ffffff8001ed40c8
[ 6.872373] x20: 0000000000000002 x19: ffffff8001ed4080 x18: 0000000000000000
[ 6.873018] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[ 6.873652] x14: ffffff8001fb5025 x13: 0000000000000007 x12: ffffff800142c900
[ 6.874284] x11: 0000000000000002 x10: 00000007305dcf59 x9 : 0000000000000000
[ 6.874926] x8 : 0000018000000000 x7 : 0000000000000000 x6 : 000000000000003f
[ 6.875567] x5 : 0000000000000040 x4 : 0000000000000000 x3 : 0000000000000004
[ 6.876208] x2 : 0000000000006f40 x1 : 0000000000000000 x0 : 0000018000000000
[ 6.876851] Call trace:
[ 6.877076] __memset+0x16c/0x188
[ 6.877375] pm_generic_runtime_resume+0x24/0x34
[ 6.877787] __rpm_callback+0x40/0x11c
[ 6.878129] rpm_callback+0x68/0x6c
[ 6.878448] rpm_resume+0x304/0x37c
[ 6.878767] __pm_runtime_resume+0x50/0x74
[ 6.879132] ofl_open+0x4c/0xc8
[ 6.879419] v4l2_open+0x98/0xec
[ 6.879714] chrdev_open+0x158/0x164
[ 6.880048] do_dentry_open+0x2d4/0x350
Change-Id: Iab179899258189d7bdf9ccc9bb13d07c25d80910
Signed-off-by: Caesar Wang <wxt@rock-chips.com >
Signed-off-by: Cai YiWei <cyw@rock-chips.com >
2025-03-27 20:43:26 +08:00
Caesar Wang
ae4ced56fe
media: rockchip: vpss: prevent NULL dereference in ofl_open
...
Add NULL check for ofl->hw before accessing dev_lock mutex to avoid
kernel panic caused by translation fault at virtual address 0x27d8.
The crash occurs when opening V4L2 device if the hardware structure
(ofl->hw) is not properly initialized. This adds defensive checks to:
1. Validate ofl and ofl->hw pointers before mutex operations
2. Return -ENODEV if hw structure is unavailable
3. Prevent use-after-unlock in error paths
Fixes system stability issues with v4l_id process (PID 229) when
handling uninitialized hardware states. Detail issues can repo as below:
[ 6.811649] Unable to handle kernel paging request at virtual address 00000000000027d8
[ 6.812363] Mem abort info:
[ 6.812621] ESR = 0x0000000096000005
[ 6.812958] EC = 0x25: DABT (current EL), IL = 32 bits
[ 6.813438] SET = 0, FnV = 0
[ 6.813718] EA = 0, S1PTW = 0
[ 6.813999] FSC = 0x05: level 1 translation fault
[ 6.814429] Data abort info:
[ 6.814685] ISV = 0, ISS = 0x00000005
[ 6.815021] CM = 0, WnR = 0
[ 6.815360] user pgtable: 4k pages, 39-bit VAs, pgdp=0000000043594000
[ 6.815941] [00000000000027d8] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000
[ 6.816746] Internal error: Oops: 0000000096000005 [#1 ] SMP
[ 6.817245] Modules linked in:
[ 6.817530] CPU: 0 PID: 229 Comm: v4l_id Tainted: G W 6.1.118 #16
[ 6.818193] Hardware name: Rockchip RV1126B EVB1 V10 Board (DT)
[ 6.818715] pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 6.819332] pc : mutex_unlock+0xc/0x40
[ 6.819686] lr : ofl_open+0x5c/0xc8
[ 6.820010] sp : ffffffc009673ad0
[ 6.820312] x29: ffffffc009673ad0 x28: ffffff8001f65400 x27: 0000000000000000
[ 6.820956] x26: 0000000000000004 x25: 0000000000000000 x24: ffffffc008cae360
[ 6.821598] x23: ffffff800290e200 x22: 00000000000027d8 x21: ffffff8002030108
[ 6.822233] x20: ffffff800290e200 x19: 0000000000000000 x18: 0000000000000000
[ 6.822865] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[ 6.823508] x14: ffffff8001820025 x13: 0000000000000007 x12: ffffff8001425480
[ 6.824155] x11: 0000000000000002 x10: 00000007305dcf59 x9 : 0000000000000000
[ 6.824787] x8 : ffffff80020328b8 x7 : 0000000000000000 x6 : 000000000000056c
[ 6.825430] x5 : ffffffc008c23fb0 x4 : 0000000000000000 x3 : 0000000000000000
[ 6.826072] x2 : 0000000000000000 x1 : ffffff8001f65400 x0 : 00000000000027d8
[ 6.826715] Call trace:
[ 6.826940] mutex_unlock+0xc/0x40
[ 6.827254] v4l2_open+0x98/0xec
[ 6.827550] chrdev_open+0x158/0x164
[ 6.827875] do_dentry_open+0x2d4/0x350
[ 6.828231] vfs_open+0x28/0x30
[ 6.828520] path_openat+0x760/0x870
[ 6.828854] do_filp_open+0x38/0x88
Change-Id: I48b2e39f2e9a79efee7e63348e9dfc02889a02a1
Signed-off-by: Caesar Wang <wxt@rock-chips.com >
2025-03-27 20:43:26 +08:00
Mingwei Yan
62ed11eb36
media: rockchip: vpss: offline wrap add reset and read hw seq
...
Signed-off-by: Mingwei Yan <mingwei.yan@rock-chips.com >
Change-Id: I5d8a80492896e0e57c3efac3c5bf55c4e83c78ec
2025-03-27 20:43:26 +08:00
Yandong Lin
7871f4dbaf
media: rockchip: vpss: support vpss-dvbm wrap
...
Change-Id: I03c53d4c66cfad276ea0f4aed25b9e0019f893e6
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com >
2025-03-27 20:43:25 +08:00
Mingwei Yan
05533d40dc
media: rockchip: vpss: add v20 for rv1126b
...
Signed-off-by: Mingwei Yan <mingwei.yan@rock-chips.com >
Change-Id: I60d64e1d8ffb39f199b6a8cd8352f64b3afef344
2025-03-27 20:43:25 +08:00
Mingwei Yan
3c1a5874b0
media: rockchip: fec: init driver for rv1126b
...
Signed-off-by: Mingwei Yan <mingwei.yan@rock-chips.com >
Signed-off-by: Xu Hongfei <xuhf@rock-chips.com >
Change-Id: I2fa7a5b68c56fadcd664299c987ee4c227f998c7
2025-03-27 20:43:25 +08:00
William Wu
2ea7714258
phy: rockchip: inno-usb2: Add usb2 phy support for rv1126b
...
RV1126B has one USB2.0 PHY with two ports, the OTG port
support OTG function and BC1.2, and the Host port only
support Host function. The SoC provides USB GRF to control
the internal UTMI+ interface and it also provides APB to
access the PHY internal registers for the USB HS/FS/LS
signal integrity tuning.
This patch adds the USB2.0 PHY tuning to improve the
signal integrity for RV1126B.
1. Enable pre-emphasis during non-chirp phase.
2. Set HS eye height to 425mv(default is 400mv).
3. Set Rx squelch trigger point configure to 112.5mv.
Signed-off-by: William Wu <william.wu@rock-chips.com >
Change-Id: Ief1a0aa532ba6dc6824dce72595bd39d8df8cefe
2025-03-27 20:43:25 +08:00
William Wu
0dddc104b3
phy: rockchip: naneng-combphy: build depends on CPU config
...
When build with rv1126b_defconfig, and enable the combphy
config manually:
CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=y
size drivers/phy/rockchip/phy-rockchip-naneng-combphy.o
before:
text data bss dec hex filename
14891 224 0 15115 3b0b drivers/phy/rockchip/phy-rockchip-naneng-combphy.o
after:
text data bss dec hex filename
5091 224 0 5315 14c3 drivers/phy/rockchip/phy-rockchip-naneng-combphy.o
Signed-off-by: William Wu <william.wu@rock-chips.com >
Change-Id: I83cde7bc9fdc373ad934b9f7fd75160719022b55
2025-03-27 19:47:38 +08:00
William Wu
1cef86cabd
phy: rockchip: naneng-combphy: Add support for rv1126b usb3
...
This patch adds the USB3.0 PHY configurations for
RV1126B USB3.0 interface.
The RV1126B USB3.0 PHY clamp default value is 1'b0 which
means that clamp enable. This patch sets clamp value to
1'b1 for USB3.0 function.
Signed-off-by: William Wu <william.wu@rock-chips.com >
Change-Id: Id285ffd72e849a878b8d338671060ad222143c7e
2025-03-27 19:47:38 +08:00
William Wu
df2f6b949e
dt-bindings: usb: dwc3: Add rv1126b compatible to rockchip,dwc3
...
Add the compatible "rockchip,rv1126b-dwc3" for the RV1126B.
Signed-off-by: William Wu <william.wu@rock-chips.com >
Change-Id: I90f912b68cdaf3ff88045c89ad4ea67b1e736c43
2025-03-27 18:43:43 +08:00
William Wu
292bfc0a73
dt-bindings: phy: rockchip-naneng-combphy: Add rv1126b compatible
...
Add the compatible "rockchip,rv1126b-usb3-phy" for the RV1126B.
Signed-off-by: William Wu <william.wu@rock-chips.com >
Change-Id: If9b7a72e9a96752c21b4dace69e285ab5dd97f33
2025-03-27 18:43:42 +08:00
William Wu
b05f3f93a4
dt-bindings: phy: rockchip-inno-usb2: Add rv1126b-usb2phy compatible
...
Add the compatible "rockchip,rv1126b-usb2phy" for the RV1126B.
Signed-off-by: William Wu <william.wu@rock-chips.com >
Change-Id: I4428c04f5ebf3f47b0ecdebf55dde76c0d56cae1
2025-03-27 18:43:42 +08:00
Cai YiWei
66c8a421fa
media: rockchip: isp: adjust clk rate for isp35
...
Change-Id: I236aa8e529dd5a167d65e394a6d45d5ade82f2d0
Signed-off-by: Cai YiWei <cyw@rock-chips.com >
2025-03-27 18:43:42 +08:00
Cai YiWei
8fa74cd819
media: rockchip: isp: fix stats buf error for isp35
...
Change-Id: I18819a2f036119fbaef47b054980508ae30948a9
Signed-off-by: Cai YiWei <cyw@rock-chips.com >
2025-03-27 18:43:42 +08:00
Cai YiWei
310f380783
media: rockchip: isp: fast stream from vpss for isp35
...
Change-Id: Ie0a6cc46aebedb85bc0d885108ebc3873027c4a4
Signed-off-by: Cai YiWei <cyw@rock-chips.com >
2025-03-27 18:43:42 +08:00
Cai YiWei
502d08b106
media: rockchip: isp: support multi-sensor for aiisp
...
Change-Id: I207420d7a55ff4ad5d5a11ffd1b5f04faa06bc14
Signed-off-by: Cai YiWei <cyw@rock-chips.com >
2025-03-27 18:43:42 +08:00
Cai YiWei
6fb09131fa
media: rockchip: isp: fix isp35 get dvbm error
...
Change-Id: I382b4316e05f82cb5a1eec522b1e0023d7d64286
Signed-off-by: Cai YiWei <cyw@rock-chips.com >
2025-03-27 18:43:42 +08:00
Cai YiWei
d465481ffa
media: rockchip: isp: aiisp for isp35
...
Change-Id: I52313925f5007b9192402e50a985e8cbd42b1e73
Signed-off-by: Cai YiWei <cyw@rock-chips.com >
2025-03-27 18:43:42 +08:00
Cai YiWei
d80d956f28
media: rockchip: isp: add isp35
...
Change-Id: I1f254e64426307983d3a223c761ea9480772b32c
Signed-off-by: Cai YiWei <cyw@rock-chips.com >
2025-03-27 18:43:42 +08:00
Jon Lin
bd86f00ac7
spi: rockchip-sfc: Add rockchip,rv1126b-fspi compatible
...
Change-Id: Ifa2736e82e2e3764aa9c8e56de10550bf5d0d76f
Signed-off-by: Jon Lin <jon.lin@rock-chips.com >
2025-03-27 18:43:42 +08:00
Jon Lin
3a999d1f8a
dt-bindings: spi: rockchip-sfc: Add rockchip,rv1126b-fspi compatible
...
Change-Id: Id2669b535a51e644698400ce96533cab5b88e33d
Signed-off-by: Jon Lin <jon.lin@rock-chips.com >
2025-03-27 18:43:42 +08:00
Zhihuan He
77f58e32b1
memory: rockchip: dsmc: Add rv1126b support
...
Change-Id: I7be576b84977dc3c0524525cfc5389038b584f2d
Signed-off-by: Zhihuan He <huan.he@rock-chips.com >
2025-03-27 18:43:42 +08:00
Finley Xiao
86e61b25c4
nvmem: rockchip-otp: Add support for rv1126b
...
This adds the necessary data for handling otp on the rv1126b.
Change-Id: Ie8114fbb07590556382ccfee63052c67072f3ce2
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com >
2025-03-27 18:43:42 +08:00
Zefa Chen
5493cbb090
media: rockchip: vicap support dvp for rv1126b
...
Change-Id: I5eaeccd464d5b8e688559e25a08d63164999b9f1
Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com >
2025-03-27 18:43:42 +08:00
Zefa Chen
89102de3a7
media: rockchip: vicap fixes error of stop stream
...
it may lead to iommu error
Change-Id: If1b1d59f3e1ffe839ebd63b9bc06253ea20b1ec4
Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com >
2025-03-27 18:43:42 +08:00
Zefa Chen
02b83fb29a
media: rockchip: vicap support mipi csi2 for rv1126b
...
Change-Id: I6e5a16c450e64c41ade9a6b0ea49915e49038d3c
Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com >
2025-03-27 18:43:42 +08:00
Zefa Chen
08ad0f6304
media: rockchip: vicap support rv1126b
...
Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com >
Change-Id: Ib7949645d9d2081993e19574ba95195b77268387
2025-03-27 18:43:41 +08:00
Lin Jinhan
3683167fd0
crypto: rockchip: rkce init version
...
RKCE has redesigned the operational flow of CRYPTO to implement
pipelined computing. Using the standard crypto engine framework on
the driver can greatly simplify the logic of the code.
Signed-off-by: Lin Jinhan <troy.lin@rock-chips.com >
Change-Id: Ia6f5e2321ab4c7ae01d33cbd30a222bf32706ab4
2025-03-27 18:43:41 +08:00
Chaoyi Chen
5b8f017ee3
drm/rockchip: vop: Add MCU support for RV1126B
...
Change-Id: Ic91e167930d92a7cb13f345199a5ee5560df1fa8
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com >
2025-03-27 18:43:41 +08:00
Chaoyi Chen
6990c888f1
drm/rockchip: dsi2: Add cpu depend for dsi2 kconfig
...
Change-Id: Id96a3214ffd9dd12491b757423b39976829fac9b
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com >
2025-03-27 18:43:41 +08:00
Hongming Zou
ac6249fbe0
drm/rockchip: dsi: add rv1126b support
...
Support 4lane MIPI interface, 1.5Gbps/lane
Max output resolution is 1920x1080@60fps
Change-Id: I6b99b9d42aefd6f07a2bc49c9bb1696d712ed1fa
Signed-off-by: Hongming Zou <hongming.zou@rock-chips.com >
2025-03-27 18:43:41 +08:00
Chaoyi Chen
f7e3199891
drm/rockchip: vop: Add writeback support
...
RV1126B VOP has a writeback with max 1920 x 1080 output.
Writeback work as a connector in drm system.
Change-Id: I550601e480630a841c9abfadb9eda2204c074592
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com >
2025-03-27 18:43:41 +08:00
Chaoyi Chen
8f17704e58
drm/rockchip: vop: Add dclk rate count for RV1126B
...
RV1126B supports calculating the exact dclk from the known aclk rate.
Change-Id: I92539f34eda514a5f35ce53ece98109dac888d6c
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com >
2025-03-27 18:43:41 +08:00
Chaoyi Chen
c80bc3d76f
drm/rockchip: vop: Add support for color bar
...
RV1126B support horizontial and vertical color bar.
Change-Id: Idf4fe9d125585286b928f4728b0567ea4c20aa2e
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com >
2025-03-27 18:43:41 +08:00
Chaoyi Chen
bdc1cace60
drm/rockchip: vop: Add support for RV1126B
...
VOP on RV1126B support 2 win, max output resolution 1920x1080P60:
Win0 MAX 1920x1080, support line YUV/RGB
Win2 MAX 1920x1080, support RGB
RV1126B VOP also supports write back feature, max resolution 1920x1080.
Change-Id: I07376ec32e5200f29038b5bdcacc0ac31bd7e915
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com >
2025-03-27 18:43:41 +08:00
Chaoyi Chen
042e588ff7
drm/rockchip: rgb: Add support for RV1126B
...
Change-Id: I5fe861a4fac567254ae5fc18352fed9569480372
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com >
2025-03-27 18:43:41 +08:00
Finley Xiao
0debea1483
soc: rockchip: power-domain: Add power domain support for rv1126b
...
This driver is modified to support RV1126B SoCs.
Change-Id: I9f2c09f229e933f68f37af179ef8d6c27bc09a41
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com >
2025-03-27 18:43:41 +08:00
Finley Xiao
37564c9fcf
dt-bindings: add power-domain header for RV1126B SoCs
...
Add power-domain header for RV1126B SoC from description in TRM.
Change-Id: I7fda5a49ec3eed790ddff17ba2be3e74a35f02c3
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com >
2025-03-27 18:43:41 +08:00
Jason Zhu
240d040e41
ASoC: rockchip: pdm_v2: support new features for rv1126b pdm
...
1.Support data shift.
2.Move the hpf after cic filter.
3.Separate the gain control.
Change-Id: I092360fad0945084c3b44f3a31be6ee67371755a
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com >
2025-03-27 18:43:41 +08:00
Sugar Zhang
e0d4c336d2
ASoC: rockchip: sai: Add support for slot mask cfg
...
e.g. mask the right channel for play and rec
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-tx-mask = <0 1>;
dai-tdm-slot-rx-mask = <0 1>;
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com >
Change-Id: Id359876f47916417ee6be9e607b05b79665cd9bf
2025-03-27 18:43:41 +08:00
Elaine Zhang
6c3b5ec765
rtc: rockchip: add rv1126b rtc
...
Change-Id: I455581ac1e2d933dd470d081f975ab22741b4e29
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com >
2025-03-27 18:43:41 +08:00
Sugar Zhang
a5efaae962
dmaengine: rockchip-dma: Use clk_bulk API
...
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com >
Change-Id: If69dc1a0df9b4001d7501d9f19e93efdcb7bfb5c
2025-03-27 18:43:41 +08:00
Sugar Zhang
dded1124fe
dmaengine: rockchip-dma: Use BIT_ULL helper for dma chan
...
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com >
Change-Id: Ied6b7ea214642ba74c0e39d0a6d37de0739a1105
2025-03-27 18:43:40 +08:00
Sugar Zhang
8eaaad2158
dmaengine: rockchip-dma: Limit the maxburst per buf-depth
...
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com >
Change-Id: I8a6e9f24cd6effc5345a74d698f1c7e92f8becd2
2025-03-27 18:43:40 +08:00
Sugar Zhang
003ad51ebb
dmaengine: rockchip-dma: Add support desc addressed in sram
...
&dmac {
sram = <&system_sram>;
iram = <&system_sram>;
};
property 'sram' for desc addressed in sram.
property 'iram' for audio buf in sram.
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com >
Change-Id: I0021d971da663cd90c05622f07039bd87725a55b
2025-03-27 18:43:40 +08:00
Sugar Zhang
adeea7a684
dmaengine: rockchip-dma: Add support for RV1126B
...
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com >
Change-Id: Ibb9eae158c6c86ac65a4509b8e86640ffbe06d07
2025-03-27 18:43:40 +08:00
Sugar Zhang
80e7b5d620
ASoC: rockchip: sai: Add support for RV1126B
...
* Enhance Frame Integrity Robustness
* Support FIFO Interleaved Cfg
* Support Data Debug
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com >
Change-Id: I1cff642007e3421b49e602ea900832a0d94c58d1
2025-03-27 18:43:40 +08:00
Elaine Zhang
f5ab8f61cc
net: can: rockchip: support canfd for rv1126b
...
Change-Id: I23925f6199686e7184abb5802cd819b0d6c4b090
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com >
2025-03-27 18:34:23 +08:00
Finley Xiao
56f63ccba4
thermal: rockchip: Add phy init for rv1126b
...
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com >
Change-Id: I57287dd94425dcb65133033fc02d19404beac609
2025-03-27 16:40:22 +08:00
Ye Zhang
05a960a2c2
thermal: rockchip: Support RV1126B SoC in the thermal driver
...
Signed-off-by: Ye Zhang <ye.zhang@rock-chips.com >
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com >
Change-Id: I2c21b7a8c4fd7062e43e74445cb9c8b0cd8c6494
2025-03-27 16:40:22 +08:00