linux-postmarketos-stericsson: upgrade to 5.17-rc1 (MR 2974)
Also temporarily switch to Linus Walleij's branch to enable charging. Patches should be upstreamed to mainline by Linux 5.18. emmc.patch: Linux no longer hangs without this fix-boot-regression-skomer.patch: Upstreamed and included here [ci:skip-build] Already built fine on CI in MR
This commit is contained in:
parent
56df39676d
commit
a9d66fe687
@ -5,7 +5,8 @@
|
||||
_flavor="postmarketos-stericsson"
|
||||
_config="config-$_flavor.armv7"
|
||||
pkgname=linux-$_flavor
|
||||
pkgver=5.16.7
|
||||
pkgver=5.17_rc1
|
||||
_commit=3205c463457e0bec98ef7d707889e9daefec79ca
|
||||
pkgrel=0
|
||||
pkgdesc="Mainline kernel fork for ST-Ericsson NovaThor devices"
|
||||
arch="armv7"
|
||||
@ -35,12 +36,10 @@ case $pkgver in
|
||||
*.*) _kernver=$pkgver;;
|
||||
esac
|
||||
source="
|
||||
https://cdn.kernel.org/pub/linux/kernel/v${_kernver%%.*}.x/linux-$_kernver.tar.xz
|
||||
https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/snapshot/linux-nomadik-$_commit.tar.gz
|
||||
config-$_flavor.armv7
|
||||
emmc.patch
|
||||
fix-boot-regression-skomer.patch
|
||||
"
|
||||
builddir="$srcdir/linux-${_kernver//_/-}"
|
||||
builddir="$srcdir/linux-nomadik-$_commit"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
@ -67,8 +66,6 @@ package() {
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
db21a01720921ebca5d462b828c661be3edcd0c6f62e20a187aff95b1f8579b119cc7d5443fac14f9372dba41764cf01b50a484eabfad33dcb6b06d2e1268a17 linux-5.16.7.tar.xz
|
||||
ccd9280c1398425884998c0c9324284738a5b64f55c78a391aaa78c0e030fed11d6386ee44396cd893c006047ba86f4ce84dc7ef5faf98ecd52cd57b84ca6a07 config-postmarketos-stericsson.armv7
|
||||
d1bd4c1f04e67ab33f03285f8baf1187d4dde29b9c49711c56f31d4708296172295ea1ad153504f2a4e944ad3d80ddc12a7218dc0d79161089ed527fc4404632 emmc.patch
|
||||
a45735c71cedb53359f9b26a9d1cb6c15b850eb871c21ad5d5414cfe83a0186efaa86dcbff746a9327da1e8e4edba9d439454c7743684a6429167a93f83febf4 fix-boot-regression-skomer.patch
|
||||
615cee2040d060eaabfe7fadbcf8590daf54bfe7555d56d183de814c6b13db1eed43fbc283e8cad7bcee79606f695a06c669f16cde0f026444c6073da4830d0a linux-nomadik-3205c463457e0bec98ef7d707889e9daefec79ca.tar.gz
|
||||
8bf5ffb6e5adb64b468ee203a0897f3e0746a4ce548a058f3ff3e09b2aa527cafc213a328c3bf356c73212e0a9025eebac25d39d2cd083b76435c5080318ca70 config-postmarketos-stericsson.armv7
|
||||
"
|
||||
|
@ -1,15 +1,15 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.16.7 Kernel Configuration
|
||||
# Linux/arm 5.17.0-rc1 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="armv7-alpine-linux-musleabihf-gcc (Alpine 11.2.1_git20220117) 11.2.1 20220117"
|
||||
CONFIG_CC_VERSION_TEXT="armv7-alpine-linux-musleabihf-gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
CONFIG_GCC_VERSION=110201
|
||||
CONFIG_CLANG_VERSION=0
|
||||
CONFIG_AS_IS_GNU=y
|
||||
CONFIG_AS_VERSION=23700
|
||||
CONFIG_AS_VERSION=23800
|
||||
CONFIG_LD_IS_BFD=y
|
||||
CONFIG_LD_VERSION=23700
|
||||
CONFIG_LD_VERSION=23800
|
||||
CONFIG_LLD_VERSION=0
|
||||
CONFIG_CC_HAS_ASM_GOTO=y
|
||||
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
||||
@ -198,7 +198,6 @@ CONFIG_ELF_CORE=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_FUTEX_PI=y
|
||||
CONFIG_HAVE_FUTEX_CMPXCHG=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SIGNALFD=y
|
||||
CONFIG_TIMERFD=y
|
||||
@ -599,6 +598,7 @@ CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
CONFIG_HAVE_EXIT_THREAD=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS=8
|
||||
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
|
||||
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
|
||||
CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
@ -741,13 +741,12 @@ CONFIG_CONTIG_ALLOC=y
|
||||
CONFIG_BOUNCE=y
|
||||
# CONFIG_KSM is not set
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||
# CONFIG_CLEANCACHE is not set
|
||||
# CONFIG_FRONTSWAP is not set
|
||||
CONFIG_CMA=y
|
||||
# CONFIG_CMA_DEBUG is not set
|
||||
# CONFIG_CMA_DEBUGFS is not set
|
||||
# CONFIG_CMA_SYSFS is not set
|
||||
CONFIG_CMA_AREAS=7
|
||||
# CONFIG_ZSWAP is not set
|
||||
# CONFIG_ZPOOL is not set
|
||||
CONFIG_ZSMALLOC=m
|
||||
CONFIG_ZSMALLOC_STAT=y
|
||||
@ -757,6 +756,7 @@ CONFIG_GENERIC_EARLY_IOREMAP=y
|
||||
# CONFIG_GUP_TEST is not set
|
||||
CONFIG_KMAP_LOCAL=y
|
||||
CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY=y
|
||||
# CONFIG_ANON_VMA_NAME is not set
|
||||
|
||||
#
|
||||
# Data Access Monitoring
|
||||
@ -879,7 +879,6 @@ CONFIG_NF_TABLES_INET=y
|
||||
# CONFIG_NF_TABLES_NETDEV is not set
|
||||
# CONFIG_NFT_NUMGEN is not set
|
||||
CONFIG_NFT_CT=m
|
||||
CONFIG_NFT_COUNTER=m
|
||||
# CONFIG_NFT_CONNLIMIT is not set
|
||||
CONFIG_NFT_LOG=m
|
||||
CONFIG_NFT_LIMIT=m
|
||||
@ -1309,6 +1308,7 @@ CONFIG_UEVENT_HELPER=y
|
||||
CONFIG_UEVENT_HELPER_PATH=""
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_DEVTMPFS_SAFE=y
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
|
||||
@ -1547,6 +1547,7 @@ CONFIG_NET_VENDOR_CORTINA=y
|
||||
# CONFIG_GEMINI_ETHERNET is not set
|
||||
# CONFIG_DM9000 is not set
|
||||
# CONFIG_DNET is not set
|
||||
# CONFIG_NET_VENDOR_ENGLEDER is not set
|
||||
CONFIG_NET_VENDOR_EZCHIP=y
|
||||
# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
|
||||
CONFIG_NET_VENDOR_FARADAY=y
|
||||
@ -1606,6 +1607,7 @@ CONFIG_NET_VENDOR_STMICRO=y
|
||||
# CONFIG_STMMAC_ETH is not set
|
||||
CONFIG_NET_VENDOR_SYNOPSYS=y
|
||||
# CONFIG_DWC_XLGMAC is not set
|
||||
# CONFIG_NET_VENDOR_VERTEXCOM is not set
|
||||
CONFIG_NET_VENDOR_VIA=y
|
||||
# CONFIG_VIA_VELOCITY is not set
|
||||
CONFIG_NET_VENDOR_WIZNET=y
|
||||
@ -2134,11 +2136,11 @@ CONFIG_PINCONF=y
|
||||
CONFIG_GENERIC_PINCONF=y
|
||||
# CONFIG_DEBUG_PINCTRL is not set
|
||||
# CONFIG_PINCTRL_MCP23S08 is not set
|
||||
# CONFIG_PINCTRL_SINGLE is not set
|
||||
# CONFIG_PINCTRL_SX150X is not set
|
||||
# CONFIG_PINCTRL_STMFX is not set
|
||||
# CONFIG_PINCTRL_OCELOT is not set
|
||||
# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
|
||||
# CONFIG_PINCTRL_OCELOT is not set
|
||||
# CONFIG_PINCTRL_SINGLE is not set
|
||||
# CONFIG_PINCTRL_STMFX is not set
|
||||
# CONFIG_PINCTRL_SX150X is not set
|
||||
CONFIG_PINCTRL_ABX500=y
|
||||
CONFIG_PINCTRL_AB8500=y
|
||||
CONFIG_PINCTRL_AB8505=y
|
||||
@ -2220,6 +2222,7 @@ CONFIG_GPIO_TC3589X=y
|
||||
#
|
||||
# CONFIG_GPIO_AGGREGATOR is not set
|
||||
# CONFIG_GPIO_MOCKUP is not set
|
||||
# CONFIG_GPIO_SIM is not set
|
||||
# end of Virtual GPIO drivers
|
||||
|
||||
# CONFIG_W1 is not set
|
||||
@ -2235,6 +2238,7 @@ CONFIG_POWER_SUPPLY_HWMON=y
|
||||
# CONFIG_BATTERY_DS2780 is not set
|
||||
# CONFIG_BATTERY_DS2781 is not set
|
||||
# CONFIG_BATTERY_DS2782 is not set
|
||||
CONFIG_BATTERY_SAMSUNG_SDI=y
|
||||
# CONFIG_BATTERY_SBS is not set
|
||||
# CONFIG_CHARGER_SBS is not set
|
||||
# CONFIG_MANAGER_SBS is not set
|
||||
@ -2249,6 +2253,7 @@ CONFIG_POWER_SUPPLY_HWMON=y
|
||||
# CONFIG_CHARGER_LT3651 is not set
|
||||
# CONFIG_CHARGER_LTC4162L is not set
|
||||
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
|
||||
CONFIG_CHARGER_MAX77976=m
|
||||
# CONFIG_CHARGER_BQ2415X is not set
|
||||
# CONFIG_CHARGER_BQ24190 is not set
|
||||
# CONFIG_CHARGER_BQ24257 is not set
|
||||
@ -2259,12 +2264,13 @@ CONFIG_POWER_SUPPLY_HWMON=y
|
||||
# CONFIG_CHARGER_BQ256XX is not set
|
||||
# CONFIG_CHARGER_SMB347 is not set
|
||||
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
|
||||
# CONFIG_AB8500_BM is not set
|
||||
CONFIG_AB8500_BM=y
|
||||
# CONFIG_BATTERY_GOLDFISH is not set
|
||||
# CONFIG_BATTERY_RT5033 is not set
|
||||
# CONFIG_CHARGER_RT9455 is not set
|
||||
# CONFIG_CHARGER_UCS1002 is not set
|
||||
# CONFIG_CHARGER_BD99954 is not set
|
||||
CONFIG_BATTERY_UG3105=m
|
||||
CONFIG_HWMON=y
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
|
||||
@ -2394,6 +2400,7 @@ CONFIG_SENSORS_NTC_THERMISTOR=y
|
||||
# CONFIG_SENSORS_AMC6821 is not set
|
||||
# CONFIG_SENSORS_INA209 is not set
|
||||
# CONFIG_SENSORS_INA2XX is not set
|
||||
CONFIG_SENSORS_INA238=m
|
||||
# CONFIG_SENSORS_INA3221 is not set
|
||||
# CONFIG_SENSORS_TC74 is not set
|
||||
# CONFIG_SENSORS_THMC50 is not set
|
||||
@ -2532,7 +2539,6 @@ CONFIG_MFD_CORE=y
|
||||
# CONFIG_MFD_SKY81452 is not set
|
||||
CONFIG_ABX500_CORE=y
|
||||
CONFIG_AB8500_CORE=y
|
||||
CONFIG_AB8500_DEBUG=y
|
||||
CONFIG_MFD_DB8500_PRCMU=y
|
||||
CONFIG_MFD_STMPE=y
|
||||
|
||||
@ -2580,7 +2586,6 @@ CONFIG_MFD_TC3589X=y
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_WM8994 is not set
|
||||
# CONFIG_MFD_ROHM_BD718XX is not set
|
||||
# CONFIG_MFD_ROHM_BD70528 is not set
|
||||
# CONFIG_MFD_ROHM_BD71828 is not set
|
||||
# CONFIG_MFD_ROHM_BD957XMUF is not set
|
||||
# CONFIG_MFD_STPMIC1 is not set
|
||||
@ -2624,6 +2629,7 @@ CONFIG_REGULATOR_GPIO=y
|
||||
# CONFIG_REGULATOR_MAX8893 is not set
|
||||
# CONFIG_REGULATOR_MAX8952 is not set
|
||||
# CONFIG_REGULATOR_MAX8973 is not set
|
||||
CONFIG_REGULATOR_MAX20086=m
|
||||
# CONFIG_REGULATOR_MAX77826 is not set
|
||||
# CONFIG_REGULATOR_MCP16502 is not set
|
||||
# CONFIG_REGULATOR_MP5416 is not set
|
||||
@ -2750,6 +2756,7 @@ CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y
|
||||
# CONFIG_VIDEO_OV6650 is not set
|
||||
# CONFIG_VIDEO_OV5670 is not set
|
||||
# CONFIG_VIDEO_OV5675 is not set
|
||||
# CONFIG_VIDEO_OV5693 is not set
|
||||
# CONFIG_VIDEO_OV5695 is not set
|
||||
# CONFIG_VIDEO_OV7251 is not set
|
||||
# CONFIG_VIDEO_OV772X is not set
|
||||
@ -2832,7 +2839,6 @@ CONFIG_DRM_FBDEV_OVERALLOC=100
|
||||
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
|
||||
# CONFIG_DRM_DP_CEC is not set
|
||||
CONFIG_DRM_GEM_CMA_HELPER=y
|
||||
CONFIG_DRM_KMS_CMA_HELPER=y
|
||||
CONFIG_DRM_GEM_SHMEM_HELPER=y
|
||||
CONFIG_DRM_SCHED=y
|
||||
|
||||
@ -2858,7 +2864,8 @@ CONFIG_DRM_SCHED=y
|
||||
# CONFIG_DRM_EXYNOS is not set
|
||||
# CONFIG_DRM_ARMADA is not set
|
||||
# CONFIG_DRM_RCAR_DW_HDMI is not set
|
||||
# CONFIG_DRM_RCAR_LVDS is not set
|
||||
# CONFIG_DRM_RCAR_USE_LVDS is not set
|
||||
# CONFIG_DRM_RCAR_MIPI_DSI is not set
|
||||
# CONFIG_DRM_OMAP is not set
|
||||
# CONFIG_DRM_TILCDC is not set
|
||||
# CONFIG_DRM_VIRTIO_GPU is not set
|
||||
@ -2872,6 +2879,7 @@ CONFIG_DRM_PANEL=y
|
||||
# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
|
||||
# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
|
||||
# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
|
||||
# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set
|
||||
# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
|
||||
# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set
|
||||
# CONFIG_DRM_PANEL_DSI_CM is not set
|
||||
@ -2887,6 +2895,7 @@ CONFIG_DRM_PANEL=y
|
||||
# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
|
||||
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
|
||||
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
|
||||
# CONFIG_DRM_PANEL_JDI_R63452 is not set
|
||||
# CONFIG_DRM_PANEL_KHADAS_TS050 is not set
|
||||
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
|
||||
# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
|
||||
@ -2896,6 +2905,7 @@ CONFIG_DRM_PANEL=y
|
||||
# CONFIG_DRM_PANEL_LG_LG4573 is not set
|
||||
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
|
||||
CONFIG_DRM_PANEL_NOVATEK_NT35510=y
|
||||
# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set
|
||||
# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set
|
||||
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
|
||||
# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
|
||||
@ -2929,6 +2939,7 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_DSI=y
|
||||
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
|
||||
CONFIG_DRM_PANEL_SONY_ACX424AKP=y
|
||||
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
|
||||
# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set
|
||||
# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
|
||||
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
|
||||
# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
|
||||
@ -2986,6 +2997,7 @@ CONFIG_DRM_PANEL_BRIDGE=y
|
||||
# CONFIG_DRM_ARCPGU is not set
|
||||
# CONFIG_DRM_SIMPLEDRM is not set
|
||||
# CONFIG_TINYDRM_HX8357D is not set
|
||||
# CONFIG_TINYDRM_ILI9163 is not set
|
||||
# CONFIG_TINYDRM_ILI9225 is not set
|
||||
# CONFIG_TINYDRM_ILI9341 is not set
|
||||
# CONFIG_TINYDRM_ILI9486 is not set
|
||||
@ -3001,6 +3013,7 @@ CONFIG_DRM_MCDE=y
|
||||
# CONFIG_DRM_TIDSS is not set
|
||||
# CONFIG_DRM_LEGACY is not set
|
||||
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
|
||||
CONFIG_DRM_NOMODESET=y
|
||||
|
||||
#
|
||||
# Frame buffer Devices
|
||||
@ -3107,6 +3120,7 @@ CONFIG_SND_SOC=y
|
||||
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
|
||||
# CONFIG_SND_SOC_ADI is not set
|
||||
# CONFIG_SND_SOC_AMD_ACP is not set
|
||||
# CONFIG_SND_AMD_ACP_CONFIG is not set
|
||||
# CONFIG_SND_ATMEL_SOC is not set
|
||||
# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
|
||||
# CONFIG_SND_DESIGNWARE_I2S is not set
|
||||
@ -3164,6 +3178,7 @@ CONFIG_SND_SOC_AB8500_CODEC=y
|
||||
# CONFIG_SND_SOC_ADAU7118_I2C is not set
|
||||
# CONFIG_SND_SOC_AK4104 is not set
|
||||
# CONFIG_SND_SOC_AK4118 is not set
|
||||
# CONFIG_SND_SOC_AK4375 is not set
|
||||
# CONFIG_SND_SOC_AK4458 is not set
|
||||
# CONFIG_SND_SOC_AK4554 is not set
|
||||
# CONFIG_SND_SOC_AK4613 is not set
|
||||
@ -3258,6 +3273,7 @@ CONFIG_SND_SOC_AB8500_CODEC=y
|
||||
# CONFIG_SND_SOC_TDA7419 is not set
|
||||
# CONFIG_SND_SOC_TFA9879 is not set
|
||||
# CONFIG_SND_SOC_TFA989X is not set
|
||||
# CONFIG_SND_SOC_TLV320ADC3XXX is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC31XX is not set
|
||||
@ -3631,6 +3647,10 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
# CONFIG_LEDS_TRIGGER_PATTERN is not set
|
||||
# CONFIG_LEDS_TRIGGER_AUDIO is not set
|
||||
# CONFIG_LEDS_TRIGGER_TTY is not set
|
||||
|
||||
#
|
||||
# Simple LED drivers
|
||||
#
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_INFINIBAND is not set
|
||||
CONFIG_EDAC_ATOMIC_SCRUB=y
|
||||
@ -3889,6 +3909,7 @@ CONFIG_ASHMEM=y
|
||||
# CONFIG_GOLDFISH is not set
|
||||
# CONFIG_CHROME_PLATFORMS is not set
|
||||
# CONFIG_MELLANOX_PLATFORM is not set
|
||||
# CONFIG_SURFACE_PLATFORMS is not set
|
||||
CONFIG_HAVE_CLK=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
CONFIG_COMMON_CLK=y
|
||||
@ -3910,6 +3931,7 @@ CONFIG_COMMON_CLK=y
|
||||
# CONFIG_COMMON_CLK_CDCE706 is not set
|
||||
# CONFIG_COMMON_CLK_CDCE925 is not set
|
||||
# CONFIG_COMMON_CLK_CS2000_CP is not set
|
||||
# CONFIG_COMMON_CLK_LAN966X is not set
|
||||
# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
|
||||
# CONFIG_COMMON_CLK_VC5 is not set
|
||||
# CONFIG_COMMON_CLK_FIXED_MMIO is not set
|
||||
@ -4158,6 +4180,12 @@ CONFIG_AB8500_GPADC=y
|
||||
# CONFIG_XILINX_XADC is not set
|
||||
# end of Analog to digital converters
|
||||
|
||||
#
|
||||
# Analog to digital and digital to analog converters
|
||||
#
|
||||
# CONFIG_AD74413R is not set
|
||||
# end of Analog to digital and digital to analog converters
|
||||
|
||||
#
|
||||
# Analog Front Ends
|
||||
#
|
||||
@ -4219,6 +4247,7 @@ CONFIG_IIO_ST_SENSORS_CORE=y
|
||||
#
|
||||
# Digital to analog converters
|
||||
#
|
||||
# CONFIG_AD3552R is not set
|
||||
# CONFIG_AD5064 is not set
|
||||
# CONFIG_AD5360 is not set
|
||||
# CONFIG_AD5380 is not set
|
||||
@ -4238,6 +4267,7 @@ CONFIG_IIO_ST_SENSORS_CORE=y
|
||||
# CONFIG_AD5766 is not set
|
||||
# CONFIG_AD5770R is not set
|
||||
# CONFIG_AD5791 is not set
|
||||
# CONFIG_AD7293 is not set
|
||||
# CONFIG_AD7303 is not set
|
||||
# CONFIG_AD8801 is not set
|
||||
# CONFIG_DPOT_DAC is not set
|
||||
@ -4261,6 +4291,11 @@ CONFIG_IIO_ST_SENSORS_CORE=y
|
||||
#
|
||||
# end of IIO dummy driver
|
||||
|
||||
#
|
||||
# Filters
|
||||
#
|
||||
# end of Filters
|
||||
|
||||
#
|
||||
# Frequency Synthesizers DDS/PLL
|
||||
#
|
||||
@ -4276,6 +4311,7 @@ CONFIG_IIO_ST_SENSORS_CORE=y
|
||||
#
|
||||
# CONFIG_ADF4350 is not set
|
||||
# CONFIG_ADF4371 is not set
|
||||
# CONFIG_ADMV1013 is not set
|
||||
# CONFIG_ADRF6780 is not set
|
||||
# end of Phase-Locked Loop (PLL) frequency synthesizers
|
||||
# end of Frequency Synthesizers DDS/PLL
|
||||
@ -4565,8 +4601,10 @@ CONFIG_RESET_CONTROLLER=y
|
||||
# CONFIG_PHY_CADENCE_SALVO is not set
|
||||
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
|
||||
# CONFIG_PHY_MIXEL_MIPI_DPHY is not set
|
||||
# CONFIG_PHY_FSL_IMX8M_PCIE is not set
|
||||
# CONFIG_PHY_PXA_28NM_HSIC is not set
|
||||
# CONFIG_PHY_PXA_28NM_USB2 is not set
|
||||
# CONFIG_PHY_LAN966X_SERDES is not set
|
||||
# CONFIG_PHY_CPCAP_USB is not set
|
||||
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
|
||||
# CONFIG_PHY_OCELOT_SERDES is not set
|
||||
@ -5007,20 +5045,6 @@ CONFIG_CRYPTO_JITTERENTROPY=y
|
||||
# CONFIG_CRYPTO_USER_API_RNG is not set
|
||||
# CONFIG_CRYPTO_USER_API_AEAD is not set
|
||||
CONFIG_CRYPTO_HASH_INFO=y
|
||||
|
||||
#
|
||||
# Crypto library routines
|
||||
#
|
||||
CONFIG_CRYPTO_LIB_AES=y
|
||||
CONFIG_CRYPTO_LIB_ARC4=y
|
||||
# CONFIG_CRYPTO_LIB_BLAKE2S is not set
|
||||
# CONFIG_CRYPTO_LIB_CHACHA is not set
|
||||
# CONFIG_CRYPTO_LIB_CURVE25519 is not set
|
||||
CONFIG_CRYPTO_LIB_DES=y
|
||||
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
|
||||
# CONFIG_CRYPTO_LIB_POLY1305 is not set
|
||||
# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_CRYPTO_DEV_UX500=y
|
||||
CONFIG_CRYPTO_DEV_UX500_CRYP=y
|
||||
@ -5064,6 +5088,22 @@ CONFIG_GENERIC_NET_UTILS=y
|
||||
CONFIG_RATIONAL=y
|
||||
CONFIG_GENERIC_PCI_IOMAP=y
|
||||
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
|
||||
|
||||
#
|
||||
# Crypto library routines
|
||||
#
|
||||
CONFIG_CRYPTO_LIB_AES=y
|
||||
CONFIG_CRYPTO_LIB_ARC4=y
|
||||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
||||
# CONFIG_CRYPTO_LIB_CHACHA is not set
|
||||
# CONFIG_CRYPTO_LIB_CURVE25519 is not set
|
||||
CONFIG_CRYPTO_LIB_DES=y
|
||||
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
|
||||
# CONFIG_CRYPTO_LIB_POLY1305 is not set
|
||||
# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
# end of Crypto library routines
|
||||
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_CRC16=y
|
||||
# CONFIG_CRC_T10DIF is not set
|
||||
@ -5203,6 +5243,13 @@ CONFIG_HAVE_KCSAN_COMPILER=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEBUG_MISC=y
|
||||
|
||||
#
|
||||
# Networking Debugging
|
||||
#
|
||||
# CONFIG_NET_DEV_REFCNT_TRACKER is not set
|
||||
# CONFIG_NET_NS_REFCNT_TRACKER is not set
|
||||
# end of Networking Debugging
|
||||
|
||||
#
|
||||
# Memory Debugging
|
||||
#
|
||||
@ -5230,6 +5277,8 @@ CONFIG_HAVE_ARCH_KASAN=y
|
||||
CONFIG_CC_HAS_KASAN_GENERIC=y
|
||||
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
|
||||
# CONFIG_KASAN is not set
|
||||
CONFIG_HAVE_ARCH_KFENCE=y
|
||||
# CONFIG_KFENCE is not set
|
||||
# end of Memory Debugging
|
||||
|
||||
# CONFIG_DEBUG_SHIRQ is not set
|
||||
@ -5312,6 +5361,7 @@ CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
|
||||
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_BUILDTIME_MCOUNT_SORT=y
|
||||
CONFIG_TRACE_CLOCK=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
# CONFIG_FTRACE is not set
|
||||
@ -5355,6 +5405,7 @@ CONFIG_RUNTIME_TESTING_MENU=y
|
||||
# CONFIG_TEST_MIN_HEAP is not set
|
||||
# CONFIG_TEST_DIV64 is not set
|
||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||
# CONFIG_TEST_REF_TRACKER is not set
|
||||
# CONFIG_RBTREE_TEST is not set
|
||||
# CONFIG_REED_SOLOMON_TEST is not set
|
||||
# CONFIG_INTERVAL_TREE_TEST is not set
|
||||
@ -5372,7 +5423,7 @@ CONFIG_RUNTIME_TESTING_MENU=y
|
||||
# CONFIG_TEST_XARRAY is not set
|
||||
# CONFIG_TEST_OVERFLOW is not set
|
||||
# CONFIG_TEST_RHASHTABLE is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_TEST_SIPHASH is not set
|
||||
# CONFIG_TEST_IDA is not set
|
||||
# CONFIG_TEST_LKM is not set
|
||||
# CONFIG_TEST_BITOPS is not set
|
||||
|
@ -1,237 +0,0 @@
|
||||
Some boot partitions on the Samsung 4GB KLM4G1YE4C "4YMD1R" and "M4G1YC"
|
||||
cards appear broken when accessed randomly. CMD6 to switch back to the main
|
||||
partition randomly stalls after CMD18 access to the boot partition 1, and
|
||||
the card never comes back online. The accesses to the boot partitions work
|
||||
several times before this happens, but eventually the card access hangs
|
||||
while initializing the card.
|
||||
|
||||
Some problematic eMMC cards are found in the Samsung GT-S7710 (Skomer)
|
||||
and SGH-I407 (Kyle) mobile phones.
|
||||
|
||||
I tried using only single blocks with CMD17 on the boot partitions with the
|
||||
result that it crashed even faster.
|
||||
|
||||
After a bit of root cause analysis it turns out that these old eMMC cards
|
||||
probably cannot do hardware busy detection (monitoring DAT0) properly.
|
||||
|
||||
The card survives on older kernels, but this is because recent kernels have
|
||||
added busy detection handling for the SoC used in these phones, exposing
|
||||
the issue.
|
||||
|
||||
Construct a quirk that makes the MMC cord avoid using the ->card_busy()
|
||||
callback if the card is listed with MMC_QUIRK_BROKEN_HW_BUSY_DETECT and
|
||||
register the known problematic cards. The core changes are pretty
|
||||
straight-forward with a helper inline to check of we can use hardware
|
||||
busy detection.
|
||||
|
||||
On the MMCI host we have to counter the fact that if the host was able to
|
||||
use busy detect, it would be used unsolicited in the command IRQ callback.
|
||||
Rewrite this so that MMCI will not attempt to use hardware busy detection
|
||||
in the command IRQ until:
|
||||
- A card is attached to the host and
|
||||
- We know that the card can handle this busy detection
|
||||
|
||||
I have glanced over the ->card_busy() callbacks on some other hosts and
|
||||
they seem to mostly read a register reflecting the value of DAT0 for this
|
||||
which works fine with the quirk in this patch. However if the error appear
|
||||
on other hosts they might need additional fixes.
|
||||
|
||||
After applying this patch, the main partition can be accessed and mounted
|
||||
without problems on Samsung GT-S7710 and SGH-I407.
|
||||
|
||||
Fixes: cb0335b778c7 ("mmc: mmci: add busy_complete callback")
|
||||
Cc: stable@vger.kernel.org
|
||||
Cc: phone-devel@vger.kernel.org
|
||||
Cc: Ludovic Barre <ludovic.barre@st.com>
|
||||
Cc: Stephan Gerhold <stephan@gerhold.net>
|
||||
Reported-by: newbyte@disroot.org
|
||||
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||
Signed-off-by: Stefan Hansson <newbyte@disroot.org>
|
||||
---
|
||||
ChangeLog v3->v4
|
||||
- Rebase on v5.15-rc1
|
||||
ChangeLog v2->v3:
|
||||
- Rebase on v5.14-rc1
|
||||
- Reword the commit message slightly.
|
||||
ChangeLog v1->v2:
|
||||
- Rewrite to reflect the actual problem of broken busy detection.
|
||||
---
|
||||
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
|
||||
index 240c5af793dc..266f21a7d38e 100644
|
||||
--- a/drivers/mmc/core/core.c
|
||||
+++ b/drivers/mmc/core/core.c
|
||||
@@ -232,7 +232,7 @@ static void __mmc_start_request(struct mmc_host *host, struct mmc_request *mrq)
|
||||
* And bypass I/O abort, reset and bus suspend operations.
|
||||
*/
|
||||
if (sdio_is_io_busy(mrq->cmd->opcode, mrq->cmd->arg) &&
|
||||
- host->ops->card_busy) {
|
||||
+ mmc_hw_busy_detect(host)) {
|
||||
int tries = 500; /* Wait aprox 500ms at maximum */
|
||||
|
||||
while (host->ops->card_busy(host) && --tries)
|
||||
@@ -1201,7 +1201,7 @@ int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr)
|
||||
*/
|
||||
if (!host->ops->start_signal_voltage_switch)
|
||||
return -EPERM;
|
||||
- if (!host->ops->card_busy)
|
||||
+ if (!mmc_hw_busy_detect(host))
|
||||
pr_warn("%s: cannot verify signal voltage switch\n",
|
||||
mmc_hostname(host));
|
||||
|
||||
@@ -1221,7 +1221,7 @@ int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr)
|
||||
* after the response of cmd11, but wait 1 ms to be sure
|
||||
*/
|
||||
mmc_delay(1);
|
||||
- if (host->ops->card_busy && !host->ops->card_busy(host)) {
|
||||
+ if (mmc_hw_busy_detect(host) && !host->ops->card_busy(host)) {
|
||||
err = -EAGAIN;
|
||||
goto power_cycle;
|
||||
}
|
||||
@@ -1242,7 +1242,7 @@ int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr)
|
||||
* Failure to switch is indicated by the card holding
|
||||
* dat[0:3] low
|
||||
*/
|
||||
- if (host->ops->card_busy && host->ops->card_busy(host))
|
||||
+ if (mmc_hw_busy_detect(host) && host->ops->card_busy(host))
|
||||
err = -EAGAIN;
|
||||
|
||||
power_cycle:
|
||||
diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h
|
||||
index 7931a4f0137d..522abb18c6dd 100644
|
||||
--- a/drivers/mmc/core/core.h
|
||||
+++ b/drivers/mmc/core/core.h
|
||||
@@ -183,4 +183,21 @@ static inline int mmc_flush_cache(struct mmc_host *host)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * mmc_hw_busy_detect() - Can we use hw busy detection?
|
||||
+ * @host: the host in question
|
||||
+ */
|
||||
+static inline bool mmc_hw_busy_detect(struct mmc_host *host)
|
||||
+{
|
||||
+ struct mmc_card *card = host->card;
|
||||
+ bool has_ops;
|
||||
+ bool able = true;
|
||||
+
|
||||
+ has_ops = (host->ops->card_busy != NULL);
|
||||
+ if (card)
|
||||
+ able = !(card->quirks & MMC_QUIRK_BROKEN_HW_BUSY_DETECT);
|
||||
+
|
||||
+ return (has_ops && able);
|
||||
+}
|
||||
+
|
||||
#endif
|
||||
diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
|
||||
index 0c54858e89c0..43db47c296ea 100644
|
||||
--- a/drivers/mmc/core/mmc_ops.c
|
||||
+++ b/drivers/mmc/core/mmc_ops.c
|
||||
@@ -435,7 +435,7 @@ static int mmc_busy_cb(void *cb_data, bool *busy)
|
||||
u32 status = 0;
|
||||
int err;
|
||||
|
||||
- if (data->busy_cmd != MMC_BUSY_IO && host->ops->card_busy) {
|
||||
+ if (data->busy_cmd != MMC_BUSY_IO && mmc_hw_busy_detect(host)) {
|
||||
*busy = host->ops->card_busy(host);
|
||||
return 0;
|
||||
}
|
||||
@@ -600,7 +600,7 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
|
||||
* when it's not allowed to poll by using CMD13, then we need to rely on
|
||||
* waiting the stated timeout to be sufficient.
|
||||
*/
|
||||
- if (!send_status && !host->ops->card_busy) {
|
||||
+ if (!send_status && !mmc_hw_busy_detect(host)) {
|
||||
mmc_delay(timeout_ms);
|
||||
goto out_tim;
|
||||
}
|
||||
diff --git a/drivers/mmc/core/quirks.h b/drivers/mmc/core/quirks.h
|
||||
index d68e6e513a4f..8da6526f0eb0 100644
|
||||
--- a/drivers/mmc/core/quirks.h
|
||||
+++ b/drivers/mmc/core/quirks.h
|
||||
@@ -99,6 +99,27 @@ static const struct mmc_fixup __maybe_unused mmc_blk_fixups[] = {
|
||||
MMC_FIXUP("V10016", CID_MANFID_KINGSTON, CID_OEMID_ANY, add_quirk_mmc,
|
||||
MMC_QUIRK_TRIM_BROKEN),
|
||||
|
||||
+ /*
|
||||
+ * Some older Samsung eMMCs have broken hardware busy detection.
|
||||
+ * Enabling this feature in the host controller can make the card
|
||||
+ * accesses lock up completely.
|
||||
+ */
|
||||
+ MMC_FIXUP("4YMD1R", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
|
||||
+ MMC_QUIRK_BROKEN_HW_BUSY_DETECT),
|
||||
+ /* Samsung KLMxGxxE4x eMMCs from 2012: 4, 8, 16, 32 and 64 GB */
|
||||
+ MMC_FIXUP("M4G1YC", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
|
||||
+ MMC_QUIRK_BROKEN_HW_BUSY_DETECT),
|
||||
+ MMC_FIXUP("M8G1WA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
|
||||
+ MMC_QUIRK_BROKEN_HW_BUSY_DETECT),
|
||||
+ MMC_FIXUP("MAG2WA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
|
||||
+ MMC_QUIRK_BROKEN_HW_BUSY_DETECT),
|
||||
+ MMC_FIXUP("MBG4WA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
|
||||
+ MMC_QUIRK_BROKEN_HW_BUSY_DETECT),
|
||||
+ MMC_FIXUP("MAG2WA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
|
||||
+ MMC_QUIRK_BROKEN_HW_BUSY_DETECT),
|
||||
+ MMC_FIXUP("MCG8WA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
|
||||
+ MMC_QUIRK_BROKEN_HW_BUSY_DETECT),
|
||||
+
|
||||
END_FIXUP
|
||||
};
|
||||
|
||||
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
|
||||
index 3765e2f4ad98..79a2f143573e 100644
|
||||
--- a/drivers/mmc/host/mmci.c
|
||||
+++ b/drivers/mmc/host/mmci.c
|
||||
@@ -347,6 +347,24 @@ static int mmci_card_busy(struct mmc_host *mmc)
|
||||
return busy;
|
||||
}
|
||||
|
||||
+/* Use this if the MMCI variant AND the card supports it */
|
||||
+static bool mmci_use_busy_detect(struct mmci_host *host)
|
||||
+{
|
||||
+ struct mmc_card *card = host->mmc->card;
|
||||
+
|
||||
+ if (!host->variant->busy_detect)
|
||||
+ return false;
|
||||
+
|
||||
+ /* We don't allow this until we know that the card can handle it */
|
||||
+ if (!card)
|
||||
+ return false;
|
||||
+
|
||||
+ if (card->quirks & MMC_QUIRK_BROKEN_HW_BUSY_DETECT)
|
||||
+ return false;
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
static void mmci_reg_delay(struct mmci_host *host)
|
||||
{
|
||||
/*
|
||||
@@ -1381,7 +1399,7 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd,
|
||||
return;
|
||||
|
||||
/* Handle busy detection on DAT0 if the variant supports it. */
|
||||
- if (busy_resp && host->variant->busy_detect)
|
||||
+ if (busy_resp && mmci_use_busy_detect(host))
|
||||
if (!host->ops->busy_complete(host, status, err_msk))
|
||||
return;
|
||||
|
||||
@@ -1725,7 +1743,7 @@ static void mmci_set_max_busy_timeout(struct mmc_host *mmc)
|
||||
struct mmci_host *host = mmc_priv(mmc);
|
||||
u32 max_busy_timeout = 0;
|
||||
|
||||
- if (!host->variant->busy_detect)
|
||||
+ if (!mmci_use_busy_detect(host))
|
||||
return;
|
||||
|
||||
if (host->variant->busy_timeout && mmc->actual_clock)
|
||||
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
|
||||
index 37f975875102..b922ffd4e0f0 100644
|
||||
--- a/include/linux/mmc/card.h
|
||||
+++ b/include/linux/mmc/card.h
|
||||
@@ -281,6 +281,7 @@ struct mmc_card {
|
||||
/* for byte mode */
|
||||
#define MMC_QUIRK_NONSTD_SDIO (1<<2) /* non-standard SDIO card attached */
|
||||
/* (missing CIA registers) */
|
||||
+#define MMC_QUIRK_BROKEN_HW_BUSY_DETECT (1<<3) /* Disable hardware busy detection on DAT0 */
|
||||
#define MMC_QUIRK_NONSTD_FUNC_IF (1<<4) /* SDIO card has nonstd function interfaces */
|
||||
#define MMC_QUIRK_DISABLE_CD (1<<5) /* disconnect CD/DAT[3] resistor */
|
||||
#define MMC_QUIRK_INAND_CMD38 (1<<6) /* iNAND devices have broken CMD38 */
|
@ -1,29 +0,0 @@
|
||||
The signal routing on the Skomer board was incorrect making
|
||||
it impossible to mount root from the SD card. Fix this up.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Cc: Stefan Hansson <newbyte@disroot.org>
|
||||
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||
---
|
||||
ARM SoC folks: please apply this directly for fixes.
|
||||
---
|
||||
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/ste-ux500-samsung-skomer.dts b/arch/arm/boot/dts/ste-ux500-samsung-skomer.dts
|
||||
index 9d09dffc1aa5..1129b5049805 100644
|
||||
--- a/arch/arm/boot/dts/ste-ux500-samsung-skomer.dts
|
||||
+++ b/arch/arm/boot/dts/ste-ux500-samsung-skomer.dts
|
||||
@@ -207,10 +207,6 @@ mmc@80126000 {
|
||||
cap-sd-highspeed;
|
||||
cap-mmc-highspeed;
|
||||
/* All direction control is used */
|
||||
- st,sig-dir-cmd;
|
||||
- st,sig-dir-dat0;
|
||||
- st,sig-dir-dat2;
|
||||
- st,sig-dir-dat31;
|
||||
st,sig-pin-fbclk;
|
||||
full-pwr-cycle;
|
||||
vmmc-supply = <&ab8500_ldo_aux3_reg>;
|
||||
--
|
||||
2.34.1
|
Loading…
x
Reference in New Issue
Block a user