rockchip: add patches to fix peripheral mode
rk322x has peripheral mode that is not working really well, add various non-upstream patches and timing adjustments that makes things a bit more usable (mass storage and ethernet works, uac isn't)
This commit is contained in:
parent
1e6fdcb13b
commit
55836c6074
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 6.6.10 Kernel Configuration
|
||||
# Linux/arm 6.6.20 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="arm-linux-gnueabihf-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -15,6 +15,7 @@ CONFIG_CC_CAN_LINK=y
|
||||
CONFIG_CC_CAN_LINK_STATIC=y
|
||||
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
||||
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
|
||||
CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
|
||||
CONFIG_CC_HAS_ASM_INLINE=y
|
||||
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
|
||||
CONFIG_PAHOLE_VERSION=122
|
||||
@ -2560,6 +2561,7 @@ CONFIG_WLAN_VENDOR_TI=y
|
||||
# CONFIG_WLCORE is not set
|
||||
# CONFIG_RTL8723DU is not set
|
||||
# CONFIG_RTL8723DS is not set
|
||||
# CONFIG_RTL8822CS is not set
|
||||
# CONFIG_RTL8822BU is not set
|
||||
# CONFIG_RTL8821CU is not set
|
||||
# CONFIG_88XXAU is not set
|
||||
@ -3056,7 +3058,6 @@ CONFIG_SPI_ROCKCHIP=y
|
||||
# CONFIG_SPI_MXIC is not set
|
||||
# CONFIG_SPI_XCOMM is not set
|
||||
# CONFIG_SPI_XILINX is not set
|
||||
# CONFIG_SPI_ZYNQMP_GQSPI is not set
|
||||
# CONFIG_SPI_AMD is not set
|
||||
|
||||
#
|
||||
@ -3605,7 +3606,6 @@ CONFIG_MFD_RK8XX_I2C=y
|
||||
# CONFIG_MFD_SKY81452 is not set
|
||||
# CONFIG_MFD_STMPE is not set
|
||||
CONFIG_MFD_SYSCON=y
|
||||
# CONFIG_MFD_TI_AM335X_TSCADC is not set
|
||||
# CONFIG_MFD_LP3943 is not set
|
||||
# CONFIG_MFD_LP8788 is not set
|
||||
# CONFIG_MFD_TI_LMU is not set
|
||||
@ -4120,18 +4120,18 @@ CONFIG_MEDIA_COMMON_OPTIONS=y
|
||||
#
|
||||
CONFIG_CYPRESS_FIRMWARE=m
|
||||
CONFIG_TTPCI_EEPROM=m
|
||||
CONFIG_UVC_COMMON=m
|
||||
CONFIG_UVC_COMMON=y
|
||||
CONFIG_VIDEO_CX2341X=m
|
||||
CONFIG_VIDEO_TVEEPROM=m
|
||||
CONFIG_DVB_B2C2_FLEXCOP=m
|
||||
CONFIG_SMS_SIANO_MDTV=m
|
||||
CONFIG_SMS_SIANO_RC=y
|
||||
CONFIG_VIDEOBUF2_CORE=m
|
||||
CONFIG_VIDEOBUF2_V4L2=m
|
||||
CONFIG_VIDEOBUF2_MEMOPS=m
|
||||
CONFIG_VIDEOBUF2_CORE=y
|
||||
CONFIG_VIDEOBUF2_V4L2=y
|
||||
CONFIG_VIDEOBUF2_MEMOPS=y
|
||||
CONFIG_VIDEOBUF2_DMA_CONTIG=m
|
||||
CONFIG_VIDEOBUF2_VMALLOC=m
|
||||
CONFIG_VIDEOBUF2_DMA_SG=m
|
||||
CONFIG_VIDEOBUF2_VMALLOC=y
|
||||
CONFIG_VIDEOBUF2_DMA_SG=y
|
||||
# end of Media drivers
|
||||
|
||||
#
|
||||
@ -5489,7 +5489,7 @@ CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FS is not set
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=300
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=2
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
# CONFIG_U_SERIAL_CONSOLE is not set
|
||||
|
||||
@ -5502,8 +5502,8 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
# CONFIG_USB_PXA27X is not set
|
||||
# CONFIG_USB_MV_UDC is not set
|
||||
# CONFIG_USB_MV_U3D is not set
|
||||
CONFIG_USB_SNP_CORE=m
|
||||
CONFIG_USB_SNP_UDC_PLAT=m
|
||||
CONFIG_USB_SNP_CORE=y
|
||||
CONFIG_USB_SNP_UDC_PLAT=y
|
||||
# CONFIG_USB_M66592 is not set
|
||||
# CONFIG_USB_BDC_UDC is not set
|
||||
# CONFIG_USB_NET2272 is not set
|
||||
@ -5513,58 +5513,74 @@ CONFIG_USB_SNP_UDC_PLAT=m
|
||||
# end of USB Peripheral Controller
|
||||
|
||||
CONFIG_USB_LIBCOMPOSITE=y
|
||||
CONFIG_USB_F_ACM=m
|
||||
CONFIG_USB_U_SERIAL=m
|
||||
CONFIG_USB_F_SERIAL=m
|
||||
CONFIG_USB_F_ACM=y
|
||||
CONFIG_USB_U_SERIAL=y
|
||||
CONFIG_USB_U_ETHER=y
|
||||
CONFIG_USB_U_AUDIO=m
|
||||
CONFIG_USB_F_SERIAL=y
|
||||
CONFIG_USB_F_OBEX=m
|
||||
CONFIG_USB_F_ECM=y
|
||||
CONFIG_USB_F_EEM=y
|
||||
CONFIG_USB_F_SUBSET=m
|
||||
CONFIG_USB_F_RNDIS=m
|
||||
CONFIG_USB_F_MASS_STORAGE=y
|
||||
CONFIG_USB_F_FS=y
|
||||
CONFIG_USB_F_MIDI2=m
|
||||
CONFIG_USB_F_HID=m
|
||||
CONFIG_USB_F_UAC1=m
|
||||
CONFIG_USB_F_UAC2=m
|
||||
CONFIG_USB_F_UVC=y
|
||||
CONFIG_USB_F_MIDI=m
|
||||
CONFIG_USB_F_HID=y
|
||||
CONFIG_USB_F_PRINTER=y
|
||||
CONFIG_USB_F_TCM=m
|
||||
CONFIG_USB_CONFIGFS=y
|
||||
# CONFIG_USB_CONFIGFS_SERIAL is not set
|
||||
# CONFIG_USB_CONFIGFS_ACM is not set
|
||||
CONFIG_USB_CONFIGFS_SERIAL=y
|
||||
CONFIG_USB_CONFIGFS_ACM=y
|
||||
# CONFIG_USB_CONFIGFS_OBEX is not set
|
||||
# CONFIG_USB_CONFIGFS_NCM is not set
|
||||
# CONFIG_USB_CONFIGFS_ECM is not set
|
||||
CONFIG_USB_CONFIGFS_ECM=y
|
||||
# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
|
||||
# CONFIG_USB_CONFIGFS_RNDIS is not set
|
||||
# CONFIG_USB_CONFIGFS_EEM is not set
|
||||
CONFIG_USB_CONFIGFS_EEM=y
|
||||
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
|
||||
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
|
||||
CONFIG_USB_CONFIGFS_F_FS=y
|
||||
# CONFIG_USB_CONFIGFS_F_UAC1 is not set
|
||||
CONFIG_USB_CONFIGFS_F_UAC1=y
|
||||
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UAC2 is not set
|
||||
# CONFIG_USB_CONFIGFS_F_MIDI is not set
|
||||
CONFIG_USB_CONFIGFS_F_MIDI2=y
|
||||
# CONFIG_USB_CONFIGFS_F_HID is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UVC is not set
|
||||
# CONFIG_USB_CONFIGFS_F_PRINTER is not set
|
||||
CONFIG_USB_CONFIGFS_F_UAC2=y
|
||||
CONFIG_USB_CONFIGFS_F_MIDI=y
|
||||
# CONFIG_USB_CONFIGFS_F_MIDI2 is not set
|
||||
CONFIG_USB_CONFIGFS_F_HID=y
|
||||
CONFIG_USB_CONFIGFS_F_UVC=y
|
||||
CONFIG_USB_CONFIGFS_F_PRINTER=y
|
||||
CONFIG_USB_CONFIGFS_F_TCM=y
|
||||
|
||||
#
|
||||
# USB Gadget precomposed configurations
|
||||
#
|
||||
# CONFIG_USB_ZERO is not set
|
||||
# CONFIG_USB_AUDIO is not set
|
||||
# CONFIG_USB_ETH is not set
|
||||
CONFIG_USB_AUDIO=m
|
||||
CONFIG_GADGET_UAC1=y
|
||||
# CONFIG_GADGET_UAC1_LEGACY is not set
|
||||
CONFIG_USB_ETH=m
|
||||
CONFIG_USB_ETH_RNDIS=y
|
||||
CONFIG_USB_ETH_EEM=y
|
||||
# CONFIG_USB_G_NCM is not set
|
||||
CONFIG_USB_GADGETFS=m
|
||||
# CONFIG_USB_FUNCTIONFS is not set
|
||||
CONFIG_USB_MASS_STORAGE=m
|
||||
# CONFIG_USB_GADGET_TARGET is not set
|
||||
CONFIG_USB_G_SERIAL=m
|
||||
# CONFIG_USB_MIDI_GADGET is not set
|
||||
# CONFIG_USB_G_PRINTER is not set
|
||||
# CONFIG_USB_CDC_COMPOSITE is not set
|
||||
# CONFIG_USB_G_ACM_MS is not set
|
||||
# CONFIG_USB_G_MULTI is not set
|
||||
CONFIG_USB_MIDI_GADGET=m
|
||||
CONFIG_USB_G_PRINTER=m
|
||||
CONFIG_USB_CDC_COMPOSITE=m
|
||||
CONFIG_USB_G_ACM_MS=m
|
||||
CONFIG_USB_G_MULTI=m
|
||||
CONFIG_USB_G_MULTI_RNDIS=y
|
||||
# CONFIG_USB_G_MULTI_CDC is not set
|
||||
CONFIG_USB_G_HID=m
|
||||
# CONFIG_USB_G_DBGP is not set
|
||||
# CONFIG_USB_G_WEBCAM is not set
|
||||
# CONFIG_USB_RAW_GADGET is not set
|
||||
CONFIG_USB_G_WEBCAM=m
|
||||
CONFIG_USB_RAW_GADGET=m
|
||||
# end of USB Gadget precomposed configurations
|
||||
|
||||
# CONFIG_TYPEC is not set
|
||||
@ -5608,8 +5624,6 @@ CONFIG_MMC_DW_ROCKCHIP=y
|
||||
CONFIG_MMC_HSQ=m
|
||||
# CONFIG_MMC_MTK is not set
|
||||
# CONFIG_MMC_SDHCI_XENON is not set
|
||||
# CONFIG_MMC_SDHCI_OMAP is not set
|
||||
# CONFIG_MMC_SDHCI_AM654 is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 6.7.0 Kernel Configuration
|
||||
# Linux/arm 6.7.8 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="arm-linux-gnueabihf-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -15,6 +15,7 @@ CONFIG_CC_CAN_LINK=y
|
||||
CONFIG_CC_CAN_LINK_STATIC=y
|
||||
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
||||
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
|
||||
CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
|
||||
CONFIG_CC_HAS_ASM_INLINE=y
|
||||
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
|
||||
CONFIG_PAHOLE_VERSION=122
|
||||
@ -2501,8 +2502,7 @@ CONFIG_MT7663U=m
|
||||
CONFIG_MT7921_COMMON=m
|
||||
# CONFIG_MT7921S is not set
|
||||
CONFIG_MT7921U=m
|
||||
CONFIG_MT7925_COMMON=m
|
||||
CONFIG_MT7925U=m
|
||||
# CONFIG_MT7925U is not set
|
||||
# CONFIG_WLAN_VENDOR_MICROCHIP is not set
|
||||
CONFIG_WLAN_VENDOR_PURELIFI=y
|
||||
# CONFIG_PLFXLC is not set
|
||||
@ -2568,6 +2568,7 @@ CONFIG_WLAN_VENDOR_TI=y
|
||||
# CONFIG_WLCORE is not set
|
||||
# CONFIG_RTL8723DU is not set
|
||||
# CONFIG_RTL8723DS is not set
|
||||
# CONFIG_RTL8822CS is not set
|
||||
# CONFIG_RTL8822BU is not set
|
||||
# CONFIG_RTL8821CU is not set
|
||||
# CONFIG_88XXAU is not set
|
||||
@ -3064,7 +3065,6 @@ CONFIG_SPI_ROCKCHIP=y
|
||||
# CONFIG_SPI_MXIC is not set
|
||||
# CONFIG_SPI_XCOMM is not set
|
||||
# CONFIG_SPI_XILINX is not set
|
||||
# CONFIG_SPI_ZYNQMP_GQSPI is not set
|
||||
# CONFIG_SPI_AMD is not set
|
||||
|
||||
#
|
||||
@ -3615,7 +3615,6 @@ CONFIG_MFD_RK8XX_I2C=y
|
||||
# CONFIG_MFD_SKY81452 is not set
|
||||
# CONFIG_MFD_STMPE is not set
|
||||
CONFIG_MFD_SYSCON=y
|
||||
# CONFIG_MFD_TI_AM335X_TSCADC is not set
|
||||
# CONFIG_MFD_LP3943 is not set
|
||||
# CONFIG_MFD_LP8788 is not set
|
||||
# CONFIG_MFD_TI_LMU is not set
|
||||
@ -4135,18 +4134,18 @@ CONFIG_MEDIA_COMMON_OPTIONS=y
|
||||
#
|
||||
CONFIG_CYPRESS_FIRMWARE=m
|
||||
CONFIG_TTPCI_EEPROM=m
|
||||
CONFIG_UVC_COMMON=m
|
||||
CONFIG_UVC_COMMON=y
|
||||
CONFIG_VIDEO_CX2341X=m
|
||||
CONFIG_VIDEO_TVEEPROM=m
|
||||
CONFIG_DVB_B2C2_FLEXCOP=m
|
||||
CONFIG_SMS_SIANO_MDTV=m
|
||||
CONFIG_SMS_SIANO_RC=y
|
||||
CONFIG_VIDEOBUF2_CORE=m
|
||||
CONFIG_VIDEOBUF2_V4L2=m
|
||||
CONFIG_VIDEOBUF2_MEMOPS=m
|
||||
CONFIG_VIDEOBUF2_CORE=y
|
||||
CONFIG_VIDEOBUF2_V4L2=y
|
||||
CONFIG_VIDEOBUF2_MEMOPS=y
|
||||
CONFIG_VIDEOBUF2_DMA_CONTIG=m
|
||||
CONFIG_VIDEOBUF2_VMALLOC=m
|
||||
CONFIG_VIDEOBUF2_DMA_SG=m
|
||||
CONFIG_VIDEOBUF2_VMALLOC=y
|
||||
CONFIG_VIDEOBUF2_DMA_SG=y
|
||||
# end of Media drivers
|
||||
|
||||
#
|
||||
@ -5511,7 +5510,7 @@ CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FS is not set
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=300
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=2
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
# CONFIG_U_SERIAL_CONSOLE is not set
|
||||
|
||||
@ -5524,8 +5523,8 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
# CONFIG_USB_PXA27X is not set
|
||||
# CONFIG_USB_MV_UDC is not set
|
||||
# CONFIG_USB_MV_U3D is not set
|
||||
CONFIG_USB_SNP_CORE=m
|
||||
CONFIG_USB_SNP_UDC_PLAT=m
|
||||
CONFIG_USB_SNP_CORE=y
|
||||
CONFIG_USB_SNP_UDC_PLAT=y
|
||||
# CONFIG_USB_M66592 is not set
|
||||
# CONFIG_USB_BDC_UDC is not set
|
||||
# CONFIG_USB_NET2272 is not set
|
||||
@ -5535,58 +5534,74 @@ CONFIG_USB_SNP_UDC_PLAT=m
|
||||
# end of USB Peripheral Controller
|
||||
|
||||
CONFIG_USB_LIBCOMPOSITE=y
|
||||
CONFIG_USB_F_ACM=m
|
||||
CONFIG_USB_U_SERIAL=m
|
||||
CONFIG_USB_F_SERIAL=m
|
||||
CONFIG_USB_F_ACM=y
|
||||
CONFIG_USB_U_SERIAL=y
|
||||
CONFIG_USB_U_ETHER=y
|
||||
CONFIG_USB_U_AUDIO=m
|
||||
CONFIG_USB_F_SERIAL=y
|
||||
CONFIG_USB_F_OBEX=m
|
||||
CONFIG_USB_F_ECM=y
|
||||
CONFIG_USB_F_EEM=y
|
||||
CONFIG_USB_F_SUBSET=m
|
||||
CONFIG_USB_F_RNDIS=m
|
||||
CONFIG_USB_F_MASS_STORAGE=y
|
||||
CONFIG_USB_F_FS=y
|
||||
CONFIG_USB_F_MIDI2=m
|
||||
CONFIG_USB_F_HID=m
|
||||
CONFIG_USB_F_UAC1=m
|
||||
CONFIG_USB_F_UAC2=m
|
||||
CONFIG_USB_F_UVC=y
|
||||
CONFIG_USB_F_MIDI=m
|
||||
CONFIG_USB_F_HID=y
|
||||
CONFIG_USB_F_PRINTER=y
|
||||
CONFIG_USB_F_TCM=m
|
||||
CONFIG_USB_CONFIGFS=y
|
||||
# CONFIG_USB_CONFIGFS_SERIAL is not set
|
||||
# CONFIG_USB_CONFIGFS_ACM is not set
|
||||
CONFIG_USB_CONFIGFS_SERIAL=y
|
||||
CONFIG_USB_CONFIGFS_ACM=y
|
||||
# CONFIG_USB_CONFIGFS_OBEX is not set
|
||||
# CONFIG_USB_CONFIGFS_NCM is not set
|
||||
# CONFIG_USB_CONFIGFS_ECM is not set
|
||||
CONFIG_USB_CONFIGFS_ECM=y
|
||||
# CONFIG_USB_CONFIGFS_ECM_SUBSET is not set
|
||||
# CONFIG_USB_CONFIGFS_RNDIS is not set
|
||||
# CONFIG_USB_CONFIGFS_EEM is not set
|
||||
CONFIG_USB_CONFIGFS_EEM=y
|
||||
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
|
||||
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
|
||||
CONFIG_USB_CONFIGFS_F_FS=y
|
||||
# CONFIG_USB_CONFIGFS_F_UAC1 is not set
|
||||
CONFIG_USB_CONFIGFS_F_UAC1=y
|
||||
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UAC2 is not set
|
||||
# CONFIG_USB_CONFIGFS_F_MIDI is not set
|
||||
CONFIG_USB_CONFIGFS_F_MIDI2=y
|
||||
# CONFIG_USB_CONFIGFS_F_HID is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UVC is not set
|
||||
# CONFIG_USB_CONFIGFS_F_PRINTER is not set
|
||||
CONFIG_USB_CONFIGFS_F_UAC2=y
|
||||
CONFIG_USB_CONFIGFS_F_MIDI=y
|
||||
# CONFIG_USB_CONFIGFS_F_MIDI2 is not set
|
||||
CONFIG_USB_CONFIGFS_F_HID=y
|
||||
CONFIG_USB_CONFIGFS_F_UVC=y
|
||||
CONFIG_USB_CONFIGFS_F_PRINTER=y
|
||||
CONFIG_USB_CONFIGFS_F_TCM=y
|
||||
|
||||
#
|
||||
# USB Gadget precomposed configurations
|
||||
#
|
||||
# CONFIG_USB_ZERO is not set
|
||||
# CONFIG_USB_AUDIO is not set
|
||||
# CONFIG_USB_ETH is not set
|
||||
CONFIG_USB_AUDIO=m
|
||||
CONFIG_GADGET_UAC1=y
|
||||
# CONFIG_GADGET_UAC1_LEGACY is not set
|
||||
CONFIG_USB_ETH=m
|
||||
CONFIG_USB_ETH_RNDIS=y
|
||||
CONFIG_USB_ETH_EEM=y
|
||||
# CONFIG_USB_G_NCM is not set
|
||||
CONFIG_USB_GADGETFS=m
|
||||
# CONFIG_USB_FUNCTIONFS is not set
|
||||
CONFIG_USB_MASS_STORAGE=m
|
||||
# CONFIG_USB_GADGET_TARGET is not set
|
||||
CONFIG_USB_G_SERIAL=m
|
||||
# CONFIG_USB_MIDI_GADGET is not set
|
||||
# CONFIG_USB_G_PRINTER is not set
|
||||
# CONFIG_USB_CDC_COMPOSITE is not set
|
||||
# CONFIG_USB_G_ACM_MS is not set
|
||||
# CONFIG_USB_G_MULTI is not set
|
||||
CONFIG_USB_MIDI_GADGET=m
|
||||
CONFIG_USB_G_PRINTER=m
|
||||
CONFIG_USB_CDC_COMPOSITE=m
|
||||
CONFIG_USB_G_ACM_MS=m
|
||||
CONFIG_USB_G_MULTI=m
|
||||
CONFIG_USB_G_MULTI_RNDIS=y
|
||||
# CONFIG_USB_G_MULTI_CDC is not set
|
||||
CONFIG_USB_G_HID=m
|
||||
# CONFIG_USB_G_DBGP is not set
|
||||
# CONFIG_USB_G_WEBCAM is not set
|
||||
# CONFIG_USB_RAW_GADGET is not set
|
||||
CONFIG_USB_G_WEBCAM=m
|
||||
CONFIG_USB_RAW_GADGET=m
|
||||
# end of USB Gadget precomposed configurations
|
||||
|
||||
# CONFIG_TYPEC is not set
|
||||
@ -5630,8 +5645,6 @@ CONFIG_MMC_DW_ROCKCHIP=y
|
||||
CONFIG_MMC_HSQ=m
|
||||
# CONFIG_MMC_MTK is not set
|
||||
# CONFIG_MMC_SDHCI_XENON is not set
|
||||
# CONFIG_MMC_SDHCI_OMAP is not set
|
||||
# CONFIG_MMC_SDHCI_AM654 is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_MEMSTICK is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
@ -6991,7 +7004,7 @@ CONFIG_F2FS_IOSTAT=y
|
||||
# CONFIG_F2FS_UNFAIR_RWSEM is not set
|
||||
CONFIG_BCACHEFS_FS=m
|
||||
CONFIG_BCACHEFS_QUOTA=y
|
||||
CONFIG_BCACHEFS_ERASURE_CODING=y
|
||||
# CONFIG_BCACHEFS_ERASURE_CODING is not set
|
||||
CONFIG_BCACHEFS_POSIX_ACL=y
|
||||
CONFIG_BCACHEFS_DEBUG_TRANSACTIONS=y
|
||||
# CONFIG_BCACHEFS_DEBUG is not set
|
||||
|
||||
@ -29,6 +29,9 @@
|
||||
patches.armbian/general-add-overlay-compilation-support.patch
|
||||
patches.armbian/general-add-overlay-configfs.patch
|
||||
patches.armbian/general-add-restart-handler-for-act8846.patch
|
||||
patches.armbian/general-dwc2-fix-wait-peripheral.patch
|
||||
patches.armbian/general-dwc2-fix-wait-time.patch
|
||||
patches.armbian/general-dwc2-nak-gadget.patch
|
||||
patches.armbian/general-fix-reboot-from-kwiboo.patch
|
||||
patches.armbian/general-linux-export-mm-trace-rss-stats.patch
|
||||
patches.armbian/general-rk322x-gpio-ir-driver.patch
|
||||
@ -41,6 +44,7 @@
|
||||
patches.armbian/rk322x-dmc-driver-02-sip-constants.patch
|
||||
patches.armbian/rk322x-dmc-driver-03-dfi-driver.patch
|
||||
patches.armbian/rk322x-dmc-driver-04-driver.patch
|
||||
patches.armbian/rk322x-dwc2-no-clock-gating.patch
|
||||
patches.armbian/wifi-ath9k-no-bulk-EP3-EP4.patch
|
||||
patches.armbian/wifi-brcmfmac-add-bcm43342.patch
|
||||
patches.armbian/wifi-brcmfmac-ap6330-firmware.patch
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
From e477f1546f2739e9ea053d677f421e01a9babff4 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Sabatino <paolo.sabatino@gmail.com>
|
||||
Date: Sat, 2 Mar 2024 21:56:44 +0100
|
||||
Subject: [PATCH] dwc2: add fixes for rk322x peripheral mode
|
||||
|
||||
---
|
||||
drivers/usb/dwc2/core.c | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
|
||||
index 5635e4d7ec88..0a3d387a497a 100644
|
||||
--- a/drivers/usb/dwc2/core.c
|
||||
+++ b/drivers/usb/dwc2/core.c
|
||||
@@ -532,6 +532,9 @@ void dwc2_force_mode(struct dwc2_hsotg *hsotg, bool host)
|
||||
gusbcfg |= set;
|
||||
dwc2_writel(hsotg, gusbcfg, GUSBCFG);
|
||||
|
||||
+ /* On some rockchip platforms, this fixes hang on reset in peripheral mode */
|
||||
+ msleep(10);
|
||||
+
|
||||
dwc2_wait_for_mode(hsotg, host);
|
||||
return;
|
||||
}
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@ -0,0 +1,56 @@
|
||||
From ee7c3ab6b5a4d284a04f110792508a7f8decd7f7 Mon Sep 17 00:00:00 2001
|
||||
From: William Wu <william.wu@rock-chips.com>
|
||||
Date: Tue, 6 Dec 2022 14:45:54 +0800
|
||||
Subject: [PATCH] usb: dwc2: fix waiting time for host only mode
|
||||
|
||||
The current code uses 50ms sleep to wait for host only
|
||||
mode, the delay time is not enough for some Rockchip
|
||||
platforms (e.g RK3036G EVB1).
|
||||
|
||||
Test on RK3036G EVB1, the dwc2 host only controller reg
|
||||
GOTGCTL.ConIDSts = 1'b1 (device mode) if only wait for
|
||||
50ms. And the host fails to detect usb2 device with the
|
||||
following error log:
|
||||
|
||||
usb usb2-port1: connect-debounce failed
|
||||
|
||||
This patch checks the GOTGCTL.ConIDSts for host only
|
||||
mode and increases the maximum waiting time to 200ms.
|
||||
|
||||
Signed-off-by: William Wu <william.wu@rock-chips.com>
|
||||
Change-Id: Ie28299934aba09907ea08f5fd3b34bf2fb35822e
|
||||
---
|
||||
drivers/usb/dwc2/core.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
|
||||
index 15911ac7582b4..cbd5f1142f35e 100644
|
||||
--- a/drivers/usb/dwc2/core.c
|
||||
+++ b/drivers/usb/dwc2/core.c
|
||||
@@ -656,14 +656,24 @@ static void dwc2_clear_force_mode(struct dwc2_hsotg *hsotg)
|
||||
*/
|
||||
void dwc2_force_dr_mode(struct dwc2_hsotg *hsotg)
|
||||
{
|
||||
+ u32 count = 0;
|
||||
+
|
||||
switch (hsotg->dr_mode) {
|
||||
case USB_DR_MODE_HOST:
|
||||
/*
|
||||
* NOTE: This is required for some rockchip soc based
|
||||
* platforms on their host-only dwc2.
|
||||
*/
|
||||
- if (!dwc2_hw_is_otg(hsotg))
|
||||
- msleep(50);
|
||||
+ if (!dwc2_hw_is_otg(hsotg)) {
|
||||
+ while (dwc2_readl(hsotg, GOTGCTL) & GOTGCTL_CONID_B) {
|
||||
+ msleep(20);
|
||||
+ if (++count > 10)
|
||||
+ break;
|
||||
+ }
|
||||
+ if (count > 10)
|
||||
+ dev_err(hsotg->dev,
|
||||
+ "Waiting for Host Mode timed out");
|
||||
+ }
|
||||
|
||||
break;
|
||||
case USB_DR_MODE_PERIPHERAL:
|
||||
@ -0,0 +1,88 @@
|
||||
From 15b317ff84dc09faa47995b1d973d96a6172fa4c Mon Sep 17 00:00:00 2001
|
||||
From: William Wu <william.wu@rock-chips.com>
|
||||
Date: Thu, 15 Dec 2022 14:19:28 +0800
|
||||
Subject: [PATCH] usb: dwc2: gadget: Disable nak interrupt when get first isoc
|
||||
in token
|
||||
|
||||
The dwc2 driver use the nak interrupt for the starting point
|
||||
of isoc-in transfer. The first nak interrupt for isoc-in means
|
||||
that in token has arrived and the dwc2 driver can obtain the
|
||||
(micro) frame of the token to set the even/odd (micro) frame
|
||||
field of DIEPCTL.
|
||||
|
||||
However, on some platforms (e.g Rockchip rk3308) which don't
|
||||
support the "OTG_MULTI_PROC_INTRPT", it means that all device
|
||||
endpoints share the same nak mask and interrupt. If the nak
|
||||
interrupt is always enabled, it may trigger nak interrupt storm
|
||||
by other endpoints except the isoc-in endpoint. So we disable
|
||||
the nak interrupt when get first isoc in token if the feature
|
||||
"OTG_MULTI_PROC_INTRPT" isn't enabled.
|
||||
|
||||
Signed-off-by: William Wu <william.wu@rock-chips.com>
|
||||
Change-Id: I99c71a5e0d7903346fd8f71619b6736c3181c0ec
|
||||
---
|
||||
drivers/usb/dwc2/gadget.c | 37 +++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 35 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
|
||||
index e1dc4735a99c..0e185ef474ac 100644
|
||||
--- a/drivers/usb/dwc2/gadget.c
|
||||
+++ b/drivers/usb/dwc2/gadget.c
|
||||
@@ -1402,6 +1402,8 @@ static int dwc2_gadget_set_ep0_desc_chain(struct dwc2_hsotg *hsotg,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static void dwc2_gadget_start_next_request(struct dwc2_hsotg_ep *hs_ep);
|
||||
+
|
||||
static int dwc2_hsotg_ep_queue(struct usb_ep *ep, struct usb_request *req,
|
||||
gfp_t gfp_flags)
|
||||
{
|
||||
@@ -1518,6 +1520,20 @@ static int dwc2_hsotg_ep_queue(struct usb_ep *ep, struct usb_request *req,
|
||||
|
||||
if (hs_ep->target_frame != TARGET_FRAME_INITIAL)
|
||||
dwc2_hsotg_start_req(hs, hs_ep, hs_req, false);
|
||||
+ } else if (hs_ep->isochronous && hs_ep->dir_in && !hs_ep->req &&
|
||||
+ !(dwc2_readl(hs, GHWCFG2) & GHWCFG2_MULTI_PROC_INT)) {
|
||||
+ /* Update current frame number value. */
|
||||
+ hs->frame_number = dwc2_hsotg_read_frameno(hs);
|
||||
+ while (dwc2_gadget_target_frame_elapsed(hs_ep)) {
|
||||
+ dwc2_gadget_incr_frame_num(hs_ep);
|
||||
+ /* Update current frame number value once more as it
|
||||
+ * changes here.
|
||||
+ */
|
||||
+ hs->frame_number = dwc2_hsotg_read_frameno(hs);
|
||||
+ }
|
||||
+
|
||||
+ if (hs_ep->target_frame != TARGET_FRAME_INITIAL)
|
||||
+ dwc2_gadget_start_next_request(hs_ep);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -2989,8 +3005,25 @@ static void dwc2_gadget_handle_nak(struct dwc2_hsotg_ep *hs_ep)
|
||||
|
||||
hs_ep->target_frame = hsotg->frame_number;
|
||||
if (hs_ep->interval > 1) {
|
||||
- u32 ctrl = dwc2_readl(hsotg,
|
||||
- DIEPCTL(hs_ep->index));
|
||||
+ u32 mask;
|
||||
+ u32 ctrl;
|
||||
+
|
||||
+ /*
|
||||
+ * Disable nak interrupt when we have got the first
|
||||
+ * isoc in token. This can avoid nak interrupt storm
|
||||
+ * on the Rockchip platforms which don't support the
|
||||
+ * "OTG_MULTI_PROC_INTRPT", and all device endpoints
|
||||
+ * share the same nak mask and interrupt.
|
||||
+ */
|
||||
+ if (!(dwc2_readl(hsotg, GHWCFG2) &
|
||||
+ GHWCFG2_MULTI_PROC_INT)) {
|
||||
+ mask = dwc2_readl(hsotg, DIEPMSK);
|
||||
+ mask &= ~DIEPMSK_NAKMSK;
|
||||
+ dwc2_writel(hsotg, mask, DIEPMSK);
|
||||
+ }
|
||||
+
|
||||
+ ctrl = dwc2_readl(hsotg,
|
||||
+ DIEPCTL(hs_ep->index));
|
||||
if (hs_ep->target_frame & 0x1)
|
||||
ctrl |= DXEPCTL_SETODDFR;
|
||||
else
|
||||
@ -764,19 +764,6 @@ index fddb4022c..9583c76b4 100644
|
||||
rockchip_pm_add_subdomain(pmu, np);
|
||||
}
|
||||
|
||||
diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
|
||||
index 272ae5722..cec178404 100644
|
||||
--- a/drivers/usb/dwc2/core.c
|
||||
+++ b/drivers/usb/dwc2/core.c
|
||||
@@ -607,7 +607,7 @@ void dwc2_force_dr_mode(struct dwc2_hsotg *hsotg)
|
||||
* platforms on their host-only dwc2.
|
||||
*/
|
||||
if (!dwc2_hw_is_otg(hsotg))
|
||||
- msleep(50);
|
||||
+ msleep(200);
|
||||
|
||||
break;
|
||||
case USB_DR_MODE_PERIPHERAL:
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
|
||||
index 93f52e371cdd..fb135f62cf26 100644
|
||||
--- a/drivers/usb/dwc2/params.c
|
||||
+++ b/drivers/usb/dwc2/params.c
|
||||
@@ -132,6 +132,14 @@ static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
|
||||
p->hird_threshold_en = false;
|
||||
}
|
||||
|
||||
+static void dwc2_set_rk3228_params(struct dwc2_hsotg *hsotg)
|
||||
+{
|
||||
+ struct dwc2_core_params *p = &hsotg->params;
|
||||
+
|
||||
+ dwc2_set_rk_params(hsotg);
|
||||
+ p->no_clock_gating = true;
|
||||
+}
|
||||
+
|
||||
static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)
|
||||
{
|
||||
struct dwc2_core_params *p = &hsotg->params;
|
||||
@@ -277,6 +285,7 @@ const struct of_device_id dwc2_of_match_table[] = {
|
||||
{ .compatible = "ingenic,x1830-otg", .data = dwc2_set_x1600_params },
|
||||
{ .compatible = "ingenic,x2000-otg", .data = dwc2_set_x2000_params },
|
||||
{ .compatible = "rockchip,rk3066-usb", .data = dwc2_set_rk_params },
|
||||
+ { .compatible = "rockchip,rk3228-usb", .data = dwc2_set_rk3228_params },
|
||||
{ .compatible = "lantiq,arx100-usb", .data = dwc2_set_ltq_params },
|
||||
{ .compatible = "lantiq,xrx200-usb", .data = dwc2_set_ltq_params },
|
||||
{ .compatible = "snps,dwc2" },
|
||||
@ -39,6 +39,9 @@
|
||||
patches.armbian/general-add-overlay-compilation-support.patch
|
||||
patches.armbian/general-add-overlay-configfs.patch
|
||||
patches.armbian/general-add-restart-handler-for-act8846.patch
|
||||
patches.armbian/general-dwc2-fix-wait-peripheral.patch
|
||||
patches.armbian/general-dwc2-fix-wait-time.patch
|
||||
patches.armbian/general-dwc2-nak-gadget.patch
|
||||
patches.armbian/general-fix-reboot-from-kwiboo.patch
|
||||
patches.armbian/general-linux-export-mm-trace-rss-stats.patch
|
||||
patches.armbian/general-rk322x-gpio-ir-driver.patch
|
||||
@ -51,6 +54,7 @@
|
||||
patches.armbian/rk322x-dmc-driver-02-sip-constants.patch
|
||||
patches.armbian/rk322x-dmc-driver-03-dfi-driver.patch
|
||||
patches.armbian/rk322x-dmc-driver-04-driver.patch
|
||||
patches.armbian/rk322x-dwc2-no-clock-gating.patch
|
||||
patches.armbian/wifi-ath9k-no-bulk-EP3-EP4.patch
|
||||
patches.armbian/wifi-brcmfmac-add-bcm43342.patch
|
||||
patches.armbian/wifi-brcmfmac-ap6330-firmware.patch
|
||||
|
||||
@ -37,6 +37,7 @@
|
||||
patches.armbian/ir-keymap-xt-q8l-v10.patch
|
||||
patches.armbian/misc-tinkerboard-spi-interface.patch
|
||||
patches.armbian/mmc-tinkerboard-sdmmc-reboot-fix.patch
|
||||
patches.armbian/rk322x-dwc2-no-clock-gating.patch
|
||||
patches.armbian/rk322x-dmc-driver-01-sipv2-calls.patch
|
||||
patches.armbian/rk322x-dmc-driver-02-sip-constants.patch
|
||||
patches.armbian/rk322x-dmc-driver-03-dfi-driver.patch
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
From e477f1546f2739e9ea053d677f421e01a9babff4 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Sabatino <paolo.sabatino@gmail.com>
|
||||
Date: Sat, 2 Mar 2024 21:56:44 +0100
|
||||
Subject: [PATCH] dwc2: add fixes for rk322x peripheral mode
|
||||
|
||||
---
|
||||
drivers/usb/dwc2/core.c | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
|
||||
index 5635e4d7ec88..0a3d387a497a 100644
|
||||
--- a/drivers/usb/dwc2/core.c
|
||||
+++ b/drivers/usb/dwc2/core.c
|
||||
@@ -532,6 +532,9 @@ void dwc2_force_mode(struct dwc2_hsotg *hsotg, bool host)
|
||||
gusbcfg |= set;
|
||||
dwc2_writel(hsotg, gusbcfg, GUSBCFG);
|
||||
|
||||
+ /* On some rockchip platforms, this fixes hang on reset in peripheral mode */
|
||||
+ msleep(10);
|
||||
+
|
||||
dwc2_wait_for_mode(hsotg, host);
|
||||
return;
|
||||
}
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@ -0,0 +1,56 @@
|
||||
From ee7c3ab6b5a4d284a04f110792508a7f8decd7f7 Mon Sep 17 00:00:00 2001
|
||||
From: William Wu <william.wu@rock-chips.com>
|
||||
Date: Tue, 6 Dec 2022 14:45:54 +0800
|
||||
Subject: [PATCH] usb: dwc2: fix waiting time for host only mode
|
||||
|
||||
The current code uses 50ms sleep to wait for host only
|
||||
mode, the delay time is not enough for some Rockchip
|
||||
platforms (e.g RK3036G EVB1).
|
||||
|
||||
Test on RK3036G EVB1, the dwc2 host only controller reg
|
||||
GOTGCTL.ConIDSts = 1'b1 (device mode) if only wait for
|
||||
50ms. And the host fails to detect usb2 device with the
|
||||
following error log:
|
||||
|
||||
usb usb2-port1: connect-debounce failed
|
||||
|
||||
This patch checks the GOTGCTL.ConIDSts for host only
|
||||
mode and increases the maximum waiting time to 200ms.
|
||||
|
||||
Signed-off-by: William Wu <william.wu@rock-chips.com>
|
||||
Change-Id: Ie28299934aba09907ea08f5fd3b34bf2fb35822e
|
||||
---
|
||||
drivers/usb/dwc2/core.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
|
||||
index 15911ac7582b4..cbd5f1142f35e 100644
|
||||
--- a/drivers/usb/dwc2/core.c
|
||||
+++ b/drivers/usb/dwc2/core.c
|
||||
@@ -656,14 +656,24 @@ static void dwc2_clear_force_mode(struct dwc2_hsotg *hsotg)
|
||||
*/
|
||||
void dwc2_force_dr_mode(struct dwc2_hsotg *hsotg)
|
||||
{
|
||||
+ u32 count = 0;
|
||||
+
|
||||
switch (hsotg->dr_mode) {
|
||||
case USB_DR_MODE_HOST:
|
||||
/*
|
||||
* NOTE: This is required for some rockchip soc based
|
||||
* platforms on their host-only dwc2.
|
||||
*/
|
||||
- if (!dwc2_hw_is_otg(hsotg))
|
||||
- msleep(50);
|
||||
+ if (!dwc2_hw_is_otg(hsotg)) {
|
||||
+ while (dwc2_readl(hsotg, GOTGCTL) & GOTGCTL_CONID_B) {
|
||||
+ msleep(20);
|
||||
+ if (++count > 10)
|
||||
+ break;
|
||||
+ }
|
||||
+ if (count > 10)
|
||||
+ dev_err(hsotg->dev,
|
||||
+ "Waiting for Host Mode timed out");
|
||||
+ }
|
||||
|
||||
break;
|
||||
case USB_DR_MODE_PERIPHERAL:
|
||||
@ -0,0 +1,88 @@
|
||||
From 15b317ff84dc09faa47995b1d973d96a6172fa4c Mon Sep 17 00:00:00 2001
|
||||
From: William Wu <william.wu@rock-chips.com>
|
||||
Date: Thu, 15 Dec 2022 14:19:28 +0800
|
||||
Subject: [PATCH] usb: dwc2: gadget: Disable nak interrupt when get first isoc
|
||||
in token
|
||||
|
||||
The dwc2 driver use the nak interrupt for the starting point
|
||||
of isoc-in transfer. The first nak interrupt for isoc-in means
|
||||
that in token has arrived and the dwc2 driver can obtain the
|
||||
(micro) frame of the token to set the even/odd (micro) frame
|
||||
field of DIEPCTL.
|
||||
|
||||
However, on some platforms (e.g Rockchip rk3308) which don't
|
||||
support the "OTG_MULTI_PROC_INTRPT", it means that all device
|
||||
endpoints share the same nak mask and interrupt. If the nak
|
||||
interrupt is always enabled, it may trigger nak interrupt storm
|
||||
by other endpoints except the isoc-in endpoint. So we disable
|
||||
the nak interrupt when get first isoc in token if the feature
|
||||
"OTG_MULTI_PROC_INTRPT" isn't enabled.
|
||||
|
||||
Signed-off-by: William Wu <william.wu@rock-chips.com>
|
||||
Change-Id: I99c71a5e0d7903346fd8f71619b6736c3181c0ec
|
||||
---
|
||||
drivers/usb/dwc2/gadget.c | 37 +++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 35 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
|
||||
index e1dc4735a99c..0e185ef474ac 100644
|
||||
--- a/drivers/usb/dwc2/gadget.c
|
||||
+++ b/drivers/usb/dwc2/gadget.c
|
||||
@@ -1402,6 +1402,8 @@ static int dwc2_gadget_set_ep0_desc_chain(struct dwc2_hsotg *hsotg,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static void dwc2_gadget_start_next_request(struct dwc2_hsotg_ep *hs_ep);
|
||||
+
|
||||
static int dwc2_hsotg_ep_queue(struct usb_ep *ep, struct usb_request *req,
|
||||
gfp_t gfp_flags)
|
||||
{
|
||||
@@ -1518,6 +1520,20 @@ static int dwc2_hsotg_ep_queue(struct usb_ep *ep, struct usb_request *req,
|
||||
|
||||
if (hs_ep->target_frame != TARGET_FRAME_INITIAL)
|
||||
dwc2_hsotg_start_req(hs, hs_ep, hs_req, false);
|
||||
+ } else if (hs_ep->isochronous && hs_ep->dir_in && !hs_ep->req &&
|
||||
+ !(dwc2_readl(hs, GHWCFG2) & GHWCFG2_MULTI_PROC_INT)) {
|
||||
+ /* Update current frame number value. */
|
||||
+ hs->frame_number = dwc2_hsotg_read_frameno(hs);
|
||||
+ while (dwc2_gadget_target_frame_elapsed(hs_ep)) {
|
||||
+ dwc2_gadget_incr_frame_num(hs_ep);
|
||||
+ /* Update current frame number value once more as it
|
||||
+ * changes here.
|
||||
+ */
|
||||
+ hs->frame_number = dwc2_hsotg_read_frameno(hs);
|
||||
+ }
|
||||
+
|
||||
+ if (hs_ep->target_frame != TARGET_FRAME_INITIAL)
|
||||
+ dwc2_gadget_start_next_request(hs_ep);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -2989,8 +3005,25 @@ static void dwc2_gadget_handle_nak(struct dwc2_hsotg_ep *hs_ep)
|
||||
|
||||
hs_ep->target_frame = hsotg->frame_number;
|
||||
if (hs_ep->interval > 1) {
|
||||
- u32 ctrl = dwc2_readl(hsotg,
|
||||
- DIEPCTL(hs_ep->index));
|
||||
+ u32 mask;
|
||||
+ u32 ctrl;
|
||||
+
|
||||
+ /*
|
||||
+ * Disable nak interrupt when we have got the first
|
||||
+ * isoc in token. This can avoid nak interrupt storm
|
||||
+ * on the Rockchip platforms which don't support the
|
||||
+ * "OTG_MULTI_PROC_INTRPT", and all device endpoints
|
||||
+ * share the same nak mask and interrupt.
|
||||
+ */
|
||||
+ if (!(dwc2_readl(hsotg, GHWCFG2) &
|
||||
+ GHWCFG2_MULTI_PROC_INT)) {
|
||||
+ mask = dwc2_readl(hsotg, DIEPMSK);
|
||||
+ mask &= ~DIEPMSK_NAKMSK;
|
||||
+ dwc2_writel(hsotg, mask, DIEPMSK);
|
||||
+ }
|
||||
+
|
||||
+ ctrl = dwc2_readl(hsotg,
|
||||
+ DIEPCTL(hs_ep->index));
|
||||
if (hs_ep->target_frame & 0x1)
|
||||
ctrl |= DXEPCTL_SETODDFR;
|
||||
else
|
||||
@ -0,0 +1,27 @@
|
||||
diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
|
||||
index 93f52e371cdd..fb135f62cf26 100644
|
||||
--- a/drivers/usb/dwc2/params.c
|
||||
+++ b/drivers/usb/dwc2/params.c
|
||||
@@ -132,6 +132,14 @@ static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
|
||||
p->hird_threshold_en = false;
|
||||
}
|
||||
|
||||
+static void dwc2_set_rk3228_params(struct dwc2_hsotg *hsotg)
|
||||
+{
|
||||
+ struct dwc2_core_params *p = &hsotg->params;
|
||||
+
|
||||
+ dwc2_set_rk_params(hsotg);
|
||||
+ p->no_clock_gating = true;
|
||||
+}
|
||||
+
|
||||
static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)
|
||||
{
|
||||
struct dwc2_core_params *p = &hsotg->params;
|
||||
@@ -277,6 +285,7 @@ const struct of_device_id dwc2_of_match_table[] = {
|
||||
{ .compatible = "ingenic,x1830-otg", .data = dwc2_set_x1600_params },
|
||||
{ .compatible = "ingenic,x2000-otg", .data = dwc2_set_x2000_params },
|
||||
{ .compatible = "rockchip,rk3066-usb", .data = dwc2_set_rk_params },
|
||||
+ { .compatible = "rockchip,rk3228-usb", .data = dwc2_set_rk3228_params },
|
||||
{ .compatible = "lantiq,arx100-usb", .data = dwc2_set_ltq_params },
|
||||
{ .compatible = "lantiq,xrx200-usb", .data = dwc2_set_ltq_params },
|
||||
{ .compatible = "snps,dwc2" },
|
||||
@ -46,6 +46,7 @@
|
||||
patches.armbian/ir-keymap-xt-q8l-v10.patch
|
||||
patches.armbian/misc-tinkerboard-spi-interface.patch
|
||||
patches.armbian/mmc-tinkerboard-sdmmc-reboot-fix.patch
|
||||
patches.armbian/rk322x-dwc2-no-clock-gating.patch
|
||||
patches.armbian/rk322x-dmc-driver-01-sipv2-calls.patch
|
||||
patches.armbian/rk322x-dmc-driver-02-sip-constants.patch
|
||||
patches.armbian/rk322x-dmc-driver-03-dfi-driver.patch
|
||||
|
||||
Loading…
Reference in New Issue
Block a user