LPM feature of DWC2 module integrated in Rockchip SoCs doesn't work
properly or needs some additional handling, so disable it for now.
Without disabling LPM feature, the USB ADB communication fail with
the following error log:
dwc2 ff580000.usb: new address 27
dwc2 ff580000.usb: Failed to exit L1 sleep state in 200us.
dwc2 ff580000.usb: dwc2_hsotg_send_reply: cannot queue req
dwc2 ff580000.usb: dwc2_hsotg_process_req_status: failed to send reply
dwc2 ff580000.usb: dwc2_hsotg_enqueue_setup: failed queue (-11)
dwc2 ff580000.usb: Failed to exit L1 sleep state in 200us.
[diff vs vendor kernel: added lpm_clock_gating, besl and
hird_threshold_en settings as seen in commit 53febc9569 ("usb: dwc2:
disable Link Power Management on STM32MP15 HS OTG")]
Signed-off-by: William Wu <william.wu@rock-chips.com>
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Link: https://lore.kernel.org/r/20221206-dwc2-gadget-dual-role-v1-1-36515e1092cd@theobroma-systems.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 42a317d076)
Change-Id: I96a344c5e3940907b6f470110c843b69c68b60b7
we use hdptxphy_hdmi0/1 instead of hdptxphy_hdmi_clk0/1 after the
following commit, so the sub node hdptxphy_hdmi_clk0/1 is unused an
remove it:
commit: 23301555f50b ("arm64: dts: rockchip: rk3588: move hdmi phy clk
to hdmiphy")
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Ifb8246fd682d54c48276e6fa615d662cb55f9fba
hdmi phy clk move to hdmi phy devices at the following commit, so update
the clock at display_subsystem.
commit: 23301555f50b ("arm64: dts: rockchip: rk3588: move hdmi phy clk
to hdmiphy")
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I4e14e6436d3ac2ae19941038ac7259361c66a4bb
move hdmi phy clk register at hdmiphy and get clock name by
property: clock-output-names
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Ica0ce0537b9b520623f9c4b21de6da3bf8e4ac5e
hdmi0/1 depend on the hdptxphy_hdmi_clk0/1, but hdptxphy_hdmi_clk0/1 is a
subdev at hdmiphy and less corresponding driver, this will lead to
hdmi driver probe will be delayed 10 seconds after add the following
commit:
commit: 4a032827da ("of: property: Simplify of_link_to_phandle")
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I36ce464860c578eb113de82f089c4637eb47b0fc
This is the 6.1.57 stable release
* tag 'v6.1.57': (2054 commits)
Linux 6.1.57
xen/events: replace evtchn_rwlock with RCU
ipv6: remove one read_lock()/read_unlock() pair in rt6_check_neigh()
btrfs: file_remove_privs needs an exclusive lock in direct io write
netlink: remove the flex array from struct nlmsghdr
btrfs: fix fscrypt name leak after failure to join log transaction
btrfs: fix an error handling path in btrfs_rename()
vrf: Fix lockdep splat in output path
ipv6: remove nexthop_fib6_nh_bh()
parisc: Restore __ldcw_align for PA-RISC 2.0 processors
ksmbd: fix uaf in smb20_oplock_break_ack
ksmbd: fix race condition between session lookup and expire
x86/sev: Use the GHCB protocol when available for SNP CPUID requests
RDMA/mlx5: Fix NULL string error
RDMA/mlx5: Fix mutex unlocking on error flow for steering anchor creation
RDMA/siw: Fix connection failure handling
RDMA/srp: Do not call scsi_done() from srp_abort()
RDMA/uverbs: Fix typo of sizeof argument
RDMA/cma: Fix truncation compilation warning in make_cma_ports
RDMA/cma: Initialize ib_sa_multicast structure to 0 when join
...
Change-Id: I79b925ca5822e02e0b9f497b1db93fef0e1dadd3
Conflicts:
drivers/gpu/drm/rockchip/rockchip_drm_vop.c
drivers/iommu/rockchip-iommu.c
drivers/power/supply/rk817_charger.c
drivers/scsi/sd.c
include/linux/pci.h
* commit '604cec4004abe5a96c734f2fab7b74809d2d742f':
soc: rockchip: rockchip_system_monitor: Fix opp_info NULL pointer
media: rockchip: vicap fixes error of access NULL point when pm resume
media: rockchip: vicap fixes error flags of devm_request_irq
pwm: rockchip: support pwm version 4
pwm: core: add oneshot_repeat and duty_offset attributes
pwm: rockchip: support more features
driver: rknpu: Fix passing 0 to PTR_ERR in rknpu_devfreq_init()
media: rockchip: vicap fixes error of rk_csirx_irq1_handler
media: rockchip: vicap fixes issue of resend the same buffer to isp
media: rockchip: vicap fixes logic error of skip frame
media: rockchip: vicap fixes rdbk buffer not send to isp with single frame mode
arm/configs: rk3308bs_aarch32_mipi_display.config add gt911
Change-Id: I97a6c31ec3c250c7a83e8d85cf7d5e0124fc4dea
In px30, rkvdec and vdpu&vepu need set grf and ensure working
in current hardware mode before running. this issue may accur
when get iommu dte_addr, thus add set_grf before, then ensure
the hardware working mode.
refer log when probe:
[ 3.040107][ T53] mpp_rkvdec ff440000.hevc: Adding to iommu group 1
[ 3.040455][ T53] mpp_rkvdec ff440000.hevc: probing start
[ 3.040939][ T53] rkvdec_init:1139: failed on clk_get clk_cabac
[ 3.040991][ T53] rkvdec_init:1142: failed on clk_get
clk_hevc_cabac
[ 3.041031][ T53] mpp_rkvdec ff440000.hevc:
reset_group->rw_sem_on=0
[ 3.041057][ T53] mpp_rkvdec ff440000.hevc:
reset_group->rw_sem_on=0
[ 3.041107][ T53] mpp_rkvdec ff440000.hevc: shared_video_cabac is
not found!
[ 3.041123][ T53] rkvdec_init:1170: No cabac reset resource define
[ 3.041141][ T53] mpp_rkvdec ff440000.hevc: shared_video_hevc_cabac
is not found!
[ 3.041156][ T53] rkvdec_init:1173: No hevc cabac reset resource
define
[ 3.042264][ T53] rk_iommu ff440440.iommu: Error during raw reset.
MMU_DTE_ADDR is not functioning
[ 3.042303][ T53] mpp_rkvdec ff440000.hevc:
px30_workaround_combo_init dte_addr 00000000
[ 3.043372][ T53] rk_iommu ff440440.iommu: Error during raw reset.
MMU_DTE_ADDR is not functioning
[ 3.044133][ T53] mpp_rkvdec ff440000.hevc: probing finish
Change-Id: I09a700e946871ef9822d44a868ff82ce085ed514
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
1.support counter, frequency meter, global control and
wave generator.
2.add struct rockchip_pwm_funcs and modify struct
rockchip_pwm_data for compatibility and extensibility.
3.rename current .enable/.config/.irq_handler to v1.
4.not to return ERRNO if failed to get irq in probing for
pwm_v3.
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: I28c6a2946ccb9072f464397d6b25f4b6803fa8c5
drivers/input/touchscreen/gt9xx/gt9xx_update.c:104:5: error: unknown type name 'mm_segment_t'
drivers/input/touchscreen/gt9xx/gt9xx_update.c:3448:25: error: implicit declaration of function 'get_fs'; did you mean 'sget_fc'? [-Werror=implicit-function-declaration]
drivers/input/touchscreen/gt9xx/gt9xx_update.c:3449:5: error: implicit declaration of function 'set_fs'; did you mean 'sget_fc'? [-Werror=implicit-function-declaration]
drivers/input/touchscreen/gt9xx/gt9xx_update.c:3449:12: error: 'KERNEL_DS' undeclared (first use in this function); did you mean 'KERNFS_NS'?
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Ib054bb4652595313a06faaa26d2ec65f3c9b4c67
aarch64-none-linux-gnu-ld: drivers/gpu/drm/rockchip/dw-dp.o: in function `dw_dp_send_hdr_metadata_infoframe_sdp':
drivers/gpu/drm/rockchip/dw-dp.c:2192: undefined reference to `drm_hdmi_infoframe_set_hdr_metadata'
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: I47967b76f34cd317b415f37b67e23a0533ca432f
Merge made by the 'ours' strategy.
* commit '9b4205b38d4a835446ece378c344d0cae059c17f':
UPSTREAM: usb: gadget: uvc: Fix argument to sizeof() in uvc_register_video()
UPSTREAM: usb: gadget: uvc: increase worker prio to WQ_HIGHPRI
UPSTREAM: usb: gadget: uvc: ensure the vdev is unset
Change-Id: Icd702c0ded90ea85dd95905ded8c02f497b2418c
drivers/media/platform/rockchip/hdmirx/rk_hdmirx_cec.c:143:3: error: implicit declaration of function 'cec_transmit_attempt_done' [-Werror,-Wimplicit-function-declaration]
drivers/media/platform/rockchip/hdmirx/rk_hdmirx_cec.c:148:3: error: implicit declaration of function 'cec_received_msg' [-Werror,-Wimplicit-function-declaration]
drivers/media/platform/rockchip/hdmirx/rk_hdmirx_cec.c:224:14: error: implicit declaration of function 'cec_allocate_adapter' [-Werror,-Wimplicit-function-declaration]
drivers/media/platform/rockchip/hdmirx/rk_hdmirx_cec.c:224:12: error: incompatible integer to pointer conversion assigning to 'struct cec_adapter *' from 'int' [-Werror,-Wint-conversion]
drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c:1068:2: error: implicit declaration of function 'cec_queue_pin_hpd_event' [-Werror,-Wimplicit-function-declaration]
drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c:1077:2: error: implicit declaration of function 'cec_queue_pin_hpd_event' [-Werror,-Wimplicit-function-declaration]
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Ibad7f45af8ecf9a789d7062a2b33c68c4f1541cb
Merge made by the 'ours' strategy.
* commit '6f0438f55fd59adeec0ed0f1fdd2d9dbf8791e22':
media: i2c: nvp6324: add workqueue support
Change-Id: I3fffe62bb2f5d691fa495e49f8030ff5a4746c3a
Merge made by the 'ours' strategy.
* commit '8fb9b4c3ba5caf4330c68af01505cacc5d4b11b1':
ASoC: rockchip: i2s-tdm: Register PCM before DAI component
Change-Id: Ibe2454198ab246896b9a45ccbdf8c6fb3da6c446
API snd_soc_register_component will try to rebind card per
each component register. and the ASoC allow no-pcm card instance.
devm_snd_soc_register_component
snd_soc_try_rebind_card
snd_soc_bind_card
snd_soc_add_pcm_runtime
devm_snd_dmaengine_pcm_register
So, we should register PCM before DAI component.
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Change-Id: I578b7c54b96cfa89fd2f8cf346832e2b68a1d355
* commit '87d068845824b89f96208feb628be75bdd2b1f1e':
drm/bridge: synopsys: Fix no sound on some TVs
spi: spidev_rkslv: Support dynamic adjustment of system performance
drm/rockchip: vop2: fix other display dev do disable and enable when disable writeback
Change-Id: If3e04127be92d57f0897432223fba9e4fea7fde5
support dual sc230ai
support master_slaver mode
Change-Id: I0b3fdffa22dd5ca0b9272e6b3f8159aeb4727208
Signed-off-by: Lan Honglin <helin.lan@rock-chips.com>
When building s390 allmodconfig after commit 9b91a65230 ("usb: gadget:
uvc: increase worker prio to WQ_HIGHPRI"), the following error occurs:
In file included from ../include/linux/string.h:253,
from ../include/linux/bitmap.h:11,
from ../include/linux/cpumask.h:12,
from ../include/linux/smp.h:13,
from ../include/linux/lockdep.h:14,
from ../include/linux/rcupdate.h:29,
from ../include/linux/rculist.h:11,
from ../include/linux/pid.h:5,
from ../include/linux/sched.h:14,
from ../include/linux/ratelimit.h:6,
from ../include/linux/dev_printk.h:16,
from ../include/linux/device.h:15,
from ../drivers/usb/gadget/function/f_uvc.c:9:
In function ‘fortify_memset_chk’,
inlined from ‘uvc_register_video’ at ../drivers/usb/gadget/function/f_uvc.c:424:2:
../include/linux/fortify-string.h:301:25: error: call to ‘__write_overflow_field’ declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning]
301 | __write_overflow_field(p_size_field, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This points to the memset() in uvc_register_video(). It is clear that
the argument to sizeof() is incorrect, as uvc->vdev (a 'struct
video_device') is being zeroed out but the size of uvc->video (a 'struct
uvc_video') is being used as the third arugment to memset().
pahole shows that prior to commit 9b91a65230 ("usb: gadget: uvc:
increase worker prio to WQ_HIGHPRI"), 'struct video_device' and
'struct ucv_video' had the same size, meaning that the argument to
sizeof() is incorrect semantically but there is no visible issue:
$ pahole -s build/drivers/usb/gadget/function/f_uvc.o | grep -E "(uvc_video|video_device)\s+"
video_device 1400 4
uvc_video 1400 3
After that change, uvc_video becomes slightly larger, meaning that the
memset() will overwrite by 8 bytes:
$ pahole -s build/drivers/usb/gadget/function/f_uvc.o | grep -E "(uvc_video|video_device)\s+"
video_device 1400 4
uvc_video 1408 3
Fix the arugment to sizeof() so that there is no overwrite.
Cc: stable@vger.kernel.org
Fixes: e4ce9ed835 ("usb: gadget: uvc: ensure the vdev is unset")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20220928201921.3152163-1-nathan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: William Wu <william.wu@rock-chips.com>
(cherry picked from commit a15e17acce)
Change-Id: Id7fe8570ae7f3998593f33c01ffb63c8c89f0716
This patch is changing the simple workqueue in the gadget driver to be
allocated as async_wq with a higher priority. The pump worker, that is
filling the usb requests, will have a higher priority and will not be
scheduled away so often while the video stream is handled. This will
lead to fewer streaming underruns.
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Link: https://lore.kernel.org/r/20220907215818.2670097-1-m.grzeschik@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: William Wu <william.wu@rock-chips.com>
(cherry picked from commit 9b91a65230)
Change-Id: I3a70591f53a4040c50d723784f5e520cf2d53d99
It's hard to debug without log if folks add wrong present
gpio.
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Change-Id: Ic9d54a90911d6d268830e21df90710af0a352992