1. Disable auto_rst to avoid false interrupt generation.
2. Reset core_clk before startup to avoid hardware runaway due to
continuous scaling.
3. Configure auto_clean command count to avoid iommu access exception
after command count from 4095->0.
Update driver version to 1.3.4
Signed-off-by: Yu Qiaowei <cerf.yu@rock-chips.com>
Change-Id: I12f312280429996c182952fbe8c8c4a20155dc4f
VERSION >= SAI_VER_2311
Support Frame Sync xN (FSXN)
Support Frame Sync Error Detect (FSE)
Support Frame Sync Lost Detect (FSLOST)
Support Force Clear (FCR)
Support SAIn-Chained (e.g. SAI0-CLK-DATA + SAI3-DATA +...)
Support Transmit Auto Gate Mode
Support Timing Shift Left for TX
Optimize SCLK/FSYNC Timing Alignment
VERSION >= SAI_VER_2403
Support Loopback LR Select (e.g. L:MIC R:LP)
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Change-Id: I9c957b5115686df2573a06b9276f26a15e709d4e
This patch converts the original unreadable machine log output into
human readable data.
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com>
Change-Id: Ibec0a11d8f65c58b0ba0c5c5bc3daa5bc5c9ca81
Notify the usb role to usb2 phy when we received role_switch set from
the TCPM (Type-C Port Manager) to escape BC1.2 charge detection at host
mode in usb2 phy driver.
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Change-Id: Id41df3d25b29771d4461cfd1106ca3f3c2572a18
TX_CTL and RX_CTL MSB bit is in different bit filed.
Change-Id: I79ada641acd2034998400e2b2f7310cbe1d5de3c
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
Since the speed requirement, this adds another txpoll-period time
in microseconds support.
The feature depends on CONFIG_MAILBOX_POLL_PERIOD_US is selected.
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Change-Id: Iffc098e80c378f1b16d54135e9b930f57d841a6d
Select CONFIG_MAILBOX_POLL_PERIOD_US to use microseconds resolution
for txdone_hrtimer polling to increase TX speed.
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Change-Id: Icd76dc79fc8d9cb02b7c12837b8b344e31941050
This commit updates the rk3562_robot.config to ensure compatibility with
kernel version 6.1
Steps performed:
1. Generate the default configuration:
make ARCH=arm64 rockchip_linux_defconfig
2. Backup the old configuration:
cp .config .config-old
3. Apply the rk3562_robot.config:
make ARCH=arm64 rockchip_linux_defconfig rk3562_robot.config
4. Backup the new configuration:
cp .config .config-new
5. Generate the diff and update the rk3562_robot.config:
./scripts/diffconfig -m .config-old .config-new > arch/arm64/configs/rk3562_robot.config
Change-Id: Ib02eb95158b02547147c43c533dcb5f22753b149
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Bus devfreq policy support a group of bus clks drive DVFS together with
a single regulator.
Signed-off-by: Liang Chen <cl@rock-chips.com>
Change-Id: I920a7df009638041b6b6cf2b77f914b6efc7862d
Add bindings for the Rockchip Flexbus QPI serial flash controller.
Change-Id: I9a4126e14cd732cb5daa4b6b685678758584389a
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
According to the SI report, SI test items in TP3, which
are not applicable for eDP v1.3 but necessary for eDP
v1.4, can not meet signal requirements.
Add tx_drv_pre_lvl_ctrl, ana_tx_jeq_en, tx_jeq_even_ctrl
and tx_jeq_odd_ctrl to pass above SI test items.
Change-Id: Ie99f009bee7f2a5d459002b22bccca591f298fea
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
drm_fbdev_generic_setup(drm_dev, 0) register fbdev will register drm
client and lead to display black screen after kernel logo, so we
reintroduction rockchip drm fbdev.
fbdev register drm client will show black screen:
drm_kms_helper_hotplug_event
->drm_client_dev_hotplug
->client->funcs->hotplug
->drm_fbdev_client_hotplug
->drm_fb_helper_hotplug_event
->drm_fb_helper_set_par
...
-> drm_atomic_commit
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Id2725e26c633c9ef5f4bd01f9f4fa45c072e8ef9
If less this commit, VOP will dead at the system bandwidth
very terrible scene.
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Ie49ea5c3955d98cefbaa360cc8d6ae1a64ca656e
power up plane should be before pd up, otherwise all the
power down module register is zero.
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I0959d442292e1f3753c965a1a15280cc5de28950
When a NAK is received in one Discover Modes, the Initiator should
skip consuming modes and continue to request Discover Modes for the
rest of SVIDs or register altmodes that have been consumed in
previous ACK.
This fixes a few USB-C Docking Stations failed to register DP
alternate mode since they respond a ACK in the DP SID Discover Modes
first and a NAK in the second VID Discover Modes.
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Change-Id: I52d3fae2731fbe88445f47be3ffee20751309ea4
Cluster win only need to attach share_id_prop as ordinary win, just like
esmart parent win.
Fixes: 48c83387b1 ("drm/rockchip: vop2: Add unique share id for Cluster window")
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I45a7486c73ca75a04baba6eb1ac4bda3daab3caa
If dts assigned esmart1-win0 as vp1 primary plane but vp1 is disabled,
the esmart1-win0 plane may be lost.
Fixes: 1568e5614d ("drm/rockchip: vop2: not to register crtc for inactive video port")
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I13675bd0695c342bceccba224ff64a2e5dc1f9e0
According to Documentation/driver-api/driver-model/driver.rst,
a warning as follow:
-EPROBE_DEFER must not be returned if probe() has already created
child devices, even if those child devices are removed again
in a cleanup path. If -EPROBE_DEFER is returned after a child
device has been registered, it may result in an infinite loop of
.probe() calls to the same driver.
To avoid this issue, we init the audio in .late_register()
of drm_encoder_func.
Change-Id: Id2219e0225a88075780ea4d0d5030b30e4d97f8c
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
For reboot stress tests, have the below crash.
[ 15.003004] Unable to handle kernel paging request at virtual address ffffffc009c975a0
[ 14.897469] pc : queued_spin_lock_slowpath+0x274/0x420
[ 14.898086] lr : kthread_queue_work+0xb8/0x114
[ 14.899280] sp : ffffffc00cb93c90
[ 14.899280] x29: ffffffc00cb93c90 x28: 0000000000000000 x27: 0000000000000000
[ 14.899284] x26: ffffffc0080bc414 x25: ffffffc0080bc4f0
...
[ 15.010633] CPU: 5 PID: 240 Comm: irq/82-husb311 Tainted: G O 6.1.75 #120
...
[ 15.029917] Call trace:
[ 15.030137] queued_spin_lock_slowpath+0x274/0x420
[ 15.030564] kthread_queue_work+0xb8/0x114
[ 15.030926] tcpm_cc_change+0x60/0xa4
[ 15.031256] tcpci_irq+0x150/0x240
[ 15.031554] husb311_irq+0x50/0x290
[ 15.031863] irq_thread_fn+0x30/0xb0
[ 15.032182] irq_thread+0x16c/0x2c4
[ 15.032490] kthread+0xdc/0xe0
[ 15.032765] ret_from_fork+0x10/0x20
...
This commit addresses the issue by disabling the IRQ before unregistering
the TCPCI port in both the remove and shutdown handlers. This ensures that
no new interrupts are handled after the port is unregistered, preventing
potential race conditions or use-after-free issues.
Fixes: 5e320d0310 ("usb: typec: husb311: set vbus off when shutdown")
Change-Id: Ie2cb85a15f6c63b019e4a000ba65205bc508e483
Signed-off-by: Caesar Wang <wxt@rock-chips.com>