From 852017d19da090e1c5d65ae20564776088bc9dfe Mon Sep 17 00:00:00 2001 From: Newbyte Date: Tue, 5 Apr 2022 18:57:18 +0200 Subject: [PATCH] linux-postmarketos-stericsson: upgrade to 5.18-rc1 (MR 3060) --- .../linux-postmarketos-stericsson/APKBUILD | 25 ++- ...500-add-line-impedance-to-fuel-gauge.patch | 112 +++++++++++ .../config-postmarketos-stericsson.armv7 | 175 +++++++++++------- .../disable-busy-detect-on-ux500-mmci.patch | 46 +++++ ...-exit-maintenance-if-too-low-voltage.patch | 67 +++++++ ...00-respect-charge_restart_voltage_uv.patch | 69 +++++++ ...-add-missing-charge-restart-voltages.patch | 38 ++++ .../pwm-ab8500-get-hw-id-from-reg-value.patch | 58 ++++++ 8 files changed, 512 insertions(+), 78 deletions(-) create mode 100644 device/testing/linux-postmarketos-stericsson/arm-dts-ux500-add-line-impedance-to-fuel-gauge.patch create mode 100644 device/testing/linux-postmarketos-stericsson/disable-busy-detect-on-ux500-mmci.patch create mode 100644 device/testing/linux-postmarketos-stericsson/power-supply-ab8500-exit-maintenance-if-too-low-voltage.patch create mode 100644 device/testing/linux-postmarketos-stericsson/power-supply-ab8500-respect-charge_restart_voltage_uv.patch create mode 100644 device/testing/linux-postmarketos-stericsson/power-supply-samsung-add-missing-charge-restart-voltages.patch create mode 100644 device/testing/linux-postmarketos-stericsson/pwm-ab8500-get-hw-id-from-reg-value.patch diff --git a/device/testing/linux-postmarketos-stericsson/APKBUILD b/device/testing/linux-postmarketos-stericsson/APKBUILD index 04bdb6c30..6474b5cb7 100644 --- a/device/testing/linux-postmarketos-stericsson/APKBUILD +++ b/device/testing/linux-postmarketos-stericsson/APKBUILD @@ -5,8 +5,7 @@ _flavor="postmarketos-stericsson" _config="config-$_flavor.armv7" pkgname=linux-$_flavor -pkgver=5.17_rc1 -_commit=3205c463457e0bec98ef7d707889e9daefec79ca +pkgver=5.18_rc1 pkgrel=0 pkgdesc="Mainline kernel fork for ST-Ericsson NovaThor devices" arch="armv7" @@ -36,10 +35,16 @@ case $pkgver in *.*) _kernver=$pkgver;; esac source=" - https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/snapshot/linux-nomadik-$_commit.tar.gz + https://git.kernel.org/torvalds/t/linux-${_kernver//_/-}.tar.gz config-$_flavor.armv7 -" -builddir="$srcdir/linux-nomadik-$_commit" + arm-dts-ux500-add-line-impedance-to-fuel-gauge.patch + disable-busy-detect-on-ux500-mmci.patch + power-supply-ab8500-exit-maintenance-if-too-low-voltage.patch + power-supply-ab8500-respect-charge_restart_voltage_uv.patch + power-supply-samsung-add-missing-charge-restart-voltages.patch + pwm-ab8500-get-hw-id-from-reg-value.patch + " +builddir="$srcdir/linux-${_kernver//_/-}" prepare() { default_prepare @@ -66,6 +71,12 @@ package() { } sha512sums=" -615cee2040d060eaabfe7fadbcf8590daf54bfe7555d56d183de814c6b13db1eed43fbc283e8cad7bcee79606f695a06c669f16cde0f026444c6073da4830d0a linux-nomadik-3205c463457e0bec98ef7d707889e9daefec79ca.tar.gz -8bf5ffb6e5adb64b468ee203a0897f3e0746a4ce548a058f3ff3e09b2aa527cafc213a328c3bf356c73212e0a9025eebac25d39d2cd083b76435c5080318ca70 config-postmarketos-stericsson.armv7 +8b3c19e9a5ca0bb6c78ab680196688819bf0ee438940c3086f975508e46b2f7bdec4b564e94cc2b50501bcc1a96421aa61cc42f31d482d420203dc3956ab82d1 linux-5.18-rc1.tar.gz +c50979b7f7bcc8e164e832eedd460f983796e0dc53a850bc94653327cc683f0ca46cd1488fd8bf7ecd2c79f720d056e6118c8f79f650ed55209ae4d8ba3b4d1c config-postmarketos-stericsson.armv7 +abd32f479cec53b9df092f2c0f434343b1e228be2cf340d26f6f61d4fabbba127f24ec1bd561b5b2fc806cec16eef46e18f6d5c781dd3ef256797acc5409dc62 arm-dts-ux500-add-line-impedance-to-fuel-gauge.patch +4ea0fd3fa602bab21f0cc2c31462d3ef6958c63394b41061ddf0bc2c8baa8b9c571cb5553a37c43315df84049eb7d6a6dc4f873c6d06d9ea4883c37dce40d7ec disable-busy-detect-on-ux500-mmci.patch +56c0e375d9078abf1144bf6df25dab176794a18d5c33f77e76b5dc44fc60f0f40ffe26991f0529ff36deaef0b3b66f8ae880968aa2459f774feb4c7993658bdd power-supply-ab8500-exit-maintenance-if-too-low-voltage.patch +81c1acf81a250326b6917503ec70572e18b06864248f704c1a691b0f2fd096f9d0a87acd4e05e258583b4c21c990a3f3230a360a7a02f00b6e83e3034902641c power-supply-ab8500-respect-charge_restart_voltage_uv.patch +c7793f5f5a87d675acfdad00fa61e65797cf7f938f791e4039d9125be0c506fb35949b02104dda128e3abf4b3c48426aeb5171a9dc4059128dafed238f877f51 power-supply-samsung-add-missing-charge-restart-voltages.patch +56126fcfee94121cddacf6987d64517c88fb35739285143fd2fb7f8c3c10d3e326d931c5a981d3cbc5a09d7286e41c9013866b36532a410441140b4af80a2808 pwm-ab8500-get-hw-id-from-reg-value.patch " diff --git a/device/testing/linux-postmarketos-stericsson/arm-dts-ux500-add-line-impedance-to-fuel-gauge.patch b/device/testing/linux-postmarketos-stericsson/arm-dts-ux500-add-line-impedance-to-fuel-gauge.patch new file mode 100644 index 000000000..a7f4c0514 --- /dev/null +++ b/device/testing/linux-postmarketos-stericsson/arm-dts-ux500-add-line-impedance-to-fuel-gauge.patch @@ -0,0 +1,112 @@ +From 16aa4f15e003e3a621341ea2f5a3a3f8318ad852 Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Sat, 26 Feb 2022 02:29:48 +0100 +Subject: ARM: dts: ux500: Add line impedance to fuel gauge + +The line impedance is used to improve battery capacity estimation. + +Signed-off-by: Linus Walleij +--- +FIXME: Fix up Codina-TMO too +--- + arch/arm/boot/dts/ste-ux500-samsung-codina.dts | 4 ++++ + arch/arm/boot/dts/ste-ux500-samsung-gavini.dts | 4 ++++ + arch/arm/boot/dts/ste-ux500-samsung-golden.dts | 4 ++++ + arch/arm/boot/dts/ste-ux500-samsung-janice.dts | 4 ++++ + arch/arm/boot/dts/ste-ux500-samsung-kyle.dts | 4 ++++ + arch/arm/boot/dts/ste-ux500-samsung-skomer.dts | 4 ++++ + 6 files changed, 24 insertions(+) + +diff --git a/arch/arm/boot/dts/ste-ux500-samsung-codina.dts b/arch/arm/boot/dts/ste-ux500-samsung-codina.dts +index 1c1725d31c7cd..30d23d36efc9e 100644 +--- a/arch/arm/boot/dts/ste-ux500-samsung-codina.dts ++++ b/arch/arm/boot/dts/ste-ux500-samsung-codina.dts +@@ -483,6 +483,10 @@ + pinctrl-1 = <&usb_a_1_sleep>; + }; + ++ ab8500_fg { ++ line-impedance-micro-ohms = <36000>; ++ }; ++ + regulator { + ab8500_ldo_aux1 { + /* Used for VDD for sensors */ +diff --git a/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts b/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts +index fd170974765fb..53062d50e455a 100644 +--- a/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts ++++ b/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts +@@ -456,6 +456,10 @@ + pinctrl-1 = <&usb_a_1_sleep>; + }; + ++ ab8500_fg { ++ line-impedance-micro-ohms = <43000>; ++ }; ++ + regulator { + ab8500_ldo_aux1 { + /* Used for VDD for sensors */ +diff --git a/arch/arm/boot/dts/ste-ux500-samsung-golden.dts b/arch/arm/boot/dts/ste-ux500-samsung-golden.dts +index 290ab59e863d7..b0dce91aff4be 100644 +--- a/arch/arm/boot/dts/ste-ux500-samsung-golden.dts ++++ b/arch/arm/boot/dts/ste-ux500-samsung-golden.dts +@@ -304,6 +304,10 @@ + pinctrl-1 = <&usb_a_1_sleep>; + }; + ++ ab8500_fg { ++ line-impedance-micro-ohms = <36000>; ++ }; ++ + regulator { + ab8500_ldo_aux1 { + regulator-name = "sensor_3v"; +diff --git a/arch/arm/boot/dts/ste-ux500-samsung-janice.dts b/arch/arm/boot/dts/ste-ux500-samsung-janice.dts +index 42762bfcd8781..16f61d8acf4c7 100644 +--- a/arch/arm/boot/dts/ste-ux500-samsung-janice.dts ++++ b/arch/arm/boot/dts/ste-ux500-samsung-janice.dts +@@ -504,6 +504,10 @@ + pinctrl-1 = <&usb_a_1_sleep>; + }; + ++ ab8500_fg { ++ line-impedance-micro-ohms = <15000>; ++ }; ++ + regulator { + ab8500_ldo_aux1 { + /* Used for VDD for sensors */ +diff --git a/arch/arm/boot/dts/ste-ux500-samsung-kyle.dts b/arch/arm/boot/dts/ste-ux500-samsung-kyle.dts +index 2a5bf54137ce6..c57676faf181b 100644 +--- a/arch/arm/boot/dts/ste-ux500-samsung-kyle.dts ++++ b/arch/arm/boot/dts/ste-ux500-samsung-kyle.dts +@@ -325,6 +325,10 @@ + pinctrl-1 = <&usb_a_1_sleep>; + }; + ++ ab8500_fg { ++ line-impedance-micro-ohms = <36000>; ++ }; ++ + regulator { + ab8500_ldo_aux1 { + /* Used for VDD for sensors */ +diff --git a/arch/arm/boot/dts/ste-ux500-samsung-skomer.dts b/arch/arm/boot/dts/ste-ux500-samsung-skomer.dts +index dcb03ce7cbd4a..dcdec867f24d2 100644 +--- a/arch/arm/boot/dts/ste-ux500-samsung-skomer.dts ++++ b/arch/arm/boot/dts/ste-ux500-samsung-skomer.dts +@@ -305,6 +305,10 @@ + pinctrl-1 = <&usb_a_1_sleep>; + }; + ++ ab8500_fg { ++ line-impedance-micro-ohms = <16000>; ++ }; ++ + regulator { + ab8500_ldo_aux1 { + /* Used for VDD for sensors */ +-- +cgit + diff --git a/device/testing/linux-postmarketos-stericsson/config-postmarketos-stericsson.armv7 b/device/testing/linux-postmarketos-stericsson/config-postmarketos-stericsson.armv7 index 30b2d5d6a..f359b2639 100644 --- a/device/testing/linux-postmarketos-stericsson/config-postmarketos-stericsson.armv7 +++ b/device/testing/linux-postmarketos-stericsson/config-postmarketos-stericsson.armv7 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 5.17.0-rc1 Kernel Configuration +# Linux/arm 5.18.0-rc1 Kernel Configuration # CONFIG_CC_VERSION_TEXT="armv7-alpine-linux-musleabihf-gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219" CONFIG_CC_IS_GCC=y @@ -15,6 +15,7 @@ CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -240,6 +241,7 @@ CONFIG_SYSTEM_DATA_VERIFICATION=y # end of General setup CONFIG_ARM=y +CONFIG_ARM_HAS_GROUP_RELOCS=y CONFIG_ARM_HAS_SG_CHAIN=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_HAVE_PROC_CPU=y @@ -283,6 +285,7 @@ CONFIG_ARCH_MULTI_V6_V7=y # end of Multiple platform selection # CONFIG_ARCH_VIRT is not set +# CONFIG_ARCH_AIROHA is not set # CONFIG_ARCH_ACTIONS is not set # CONFIG_ARCH_ALPINE is not set # CONFIG_ARCH_ARTPEC is not set @@ -366,6 +369,7 @@ CONFIG_SWP_EMULATE=y # CONFIG_CPU_BPREDICT_DISABLE is not set CONFIG_CPU_SPECTRE=y CONFIG_HARDEN_BRANCH_PREDICTOR=y +CONFIG_HARDEN_BRANCH_HISTORY=y CONFIG_KUSER_HELPERS=y # CONFIG_VDSO is not set CONFIG_OUTER_CACHE=y @@ -413,6 +417,7 @@ CONFIG_HAVE_SMP=y CONFIG_SMP=y CONFIG_SMP_ON_UP=y CONFIG_CURRENT_POINTER_IN_TPIDRURO=y +CONFIG_IRQSTACKS=y CONFIG_ARM_CPU_TOPOLOGY=y # CONFIG_SCHED_MC is not set # CONFIG_SCHED_SMT is not set @@ -450,7 +455,6 @@ CONFIG_HIGHMEM=y CONFIG_HIGHPTE=y CONFIG_CPU_SW_DOMAIN_PAN=y CONFIG_HW_PERF_EVENTS=y -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARM_MODULE_PLTS=y CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y @@ -593,6 +597,8 @@ CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_REL=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y @@ -604,6 +610,8 @@ CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y @@ -646,6 +654,7 @@ CONFIG_MODULE_COMPRESS_NONE=y CONFIG_MODPROBE_PATH="/sbin/modprobe" CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y +CONFIG_BLOCK_LEGACY_AUTOLOAD=y CONFIG_BLK_CGROUP_RWSTAT=y # CONFIG_BLK_DEV_BSGLIB is not set # CONFIG_BLK_DEV_INTEGRITY is not set @@ -687,6 +696,7 @@ CONFIG_EFI_PARTITION=y CONFIG_BLK_PM=y CONFIG_BLOCK_HOLDER_DEPRECATED=y +CONFIG_BLK_MQ_STACKING=y # # IO Schedulers @@ -741,6 +751,7 @@ CONFIG_CONTIG_ALLOC=y CONFIG_BOUNCE=y # CONFIG_KSM is not set CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set @@ -752,6 +763,7 @@ CONFIG_ZSMALLOC=m CONFIG_ZSMALLOC_STAT=y CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_TEST is not set CONFIG_KMAP_LOCAL=y @@ -1330,6 +1342,7 @@ CONFIG_ALLOW_DEV_COREDUMP=y # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_SOC_BUS=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y @@ -1434,6 +1447,7 @@ CONFIG_BLK_DEV_RAM_SIZE=65536 # CONFIG_LATTICE_ECP3_CONFIG is not set # CONFIG_SRAM is not set # CONFIG_XILINX_SDFEC is not set +# CONFIG_OPEN_DICE is not set # CONFIG_C2PORT is not set # @@ -1545,7 +1559,7 @@ CONFIG_NET_VENDOR_CIRRUS=y # CONFIG_CS89x0_PLATFORM is not set CONFIG_NET_VENDOR_CORTINA=y # CONFIG_GEMINI_ETHERNET is not set -# CONFIG_DM9000 is not set +# CONFIG_NET_VENDOR_DAVICOM is not set # CONFIG_DNET is not set # CONFIG_NET_VENDOR_ENGLEDER is not set CONFIG_NET_VENDOR_EZCHIP=y @@ -1553,6 +1567,7 @@ CONFIG_NET_VENDOR_EZCHIP=y CONFIG_NET_VENDOR_FARADAY=y # CONFIG_FTMAC100 is not set # CONFIG_FTGMAC100 is not set +# CONFIG_NET_VENDOR_FUNGIBLE is not set CONFIG_NET_VENDOR_GOOGLE=y CONFIG_NET_VENDOR_HISILICON=y # CONFIG_HIX5HD2_GMAC is not set @@ -1865,6 +1880,7 @@ CONFIG_TOUCHSCREEN_CY8CTMA140=y # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set # CONFIG_TOUCHSCREEN_MSG2638 is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_IMAGIS is not set # CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_MK712 is not set @@ -1979,7 +1995,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_SIFIVE is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set -# CONFIG_SERIAL_BCM63XX is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_XILINX_PS_UART is not set @@ -2232,6 +2247,7 @@ CONFIG_POWER_SUPPLY=y CONFIG_POWER_SUPPLY_HWMON=y # CONFIG_PDA_POWER is not set # CONFIG_GENERIC_ADC_BATTERY is not set +# CONFIG_IP5XXX_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_CHARGER_ADP5061 is not set # CONFIG_BATTERY_CW2015 is not set @@ -2383,6 +2399,7 @@ CONFIG_SENSORS_NTC_THERMISTOR=y # CONFIG_SENSORS_SHT3x is not set # CONFIG_SENSORS_SHT4x is not set # CONFIG_SENSORS_SHTC1 is not set +# CONFIG_SENSORS_SY7636A is not set # CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_EMC1403 is not set # CONFIG_SENSORS_EMC2103 is not set @@ -2409,6 +2426,7 @@ CONFIG_SENSORS_INA238=m # CONFIG_SENSORS_TMP108 is not set # CONFIG_SENSORS_TMP401 is not set # CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_TMP464 is not set # CONFIG_SENSORS_TMP513 is not set # CONFIG_SENSORS_VT1211 is not set # CONFIG_SENSORS_W83773G is not set @@ -2514,6 +2532,7 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_MAX77650 is not set # CONFIG_MFD_MAX77686 is not set # CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77714 is not set # CONFIG_MFD_MAX77843 is not set # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set @@ -2535,6 +2554,7 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_RN5T618 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SIMPLE_MFD_I2C is not set # CONFIG_MFD_SM501 is not set # CONFIG_MFD_SKY81452 is not set CONFIG_ABX500_CORE=y @@ -2645,17 +2665,20 @@ CONFIG_REGULATOR_MAX20086=m # CONFIG_REGULATOR_PV88090 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set # CONFIG_REGULATOR_RT4801 is not set +# CONFIG_REGULATOR_RT5190A is not set # CONFIG_REGULATOR_RT6160 is not set # CONFIG_REGULATOR_RT6245 is not set # CONFIG_REGULATOR_RTQ2134 is not set # CONFIG_REGULATOR_RTMV20 is not set # CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set +# CONFIG_REGULATOR_SY7636A is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set # CONFIG_REGULATOR_SY8827N is not set # CONFIG_REGULATOR_TPS51632 is not set # CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS6286X is not set # CONFIG_REGULATOR_TPS65023 is not set # CONFIG_REGULATOR_TPS6507X is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -2691,7 +2714,6 @@ CONFIG_MEDIA_CONTROLLER=y # # Video4Linux options # -CONFIG_VIDEO_V4L2=y CONFIG_VIDEO_V4L2_I2C=y CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_ADV_DEBUG is not set @@ -2712,6 +2734,10 @@ CONFIG_V4L2_ASYNC=y # # Drivers filtered as selected at 'Filter media drivers' # + +# +# Media drivers +# # end of Media drivers CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y @@ -2720,19 +2746,12 @@ CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y # Media ancillary drivers # -# -# audio, video and radio I2C drivers auto-selected by 'Autoselect ancillary drivers' -# - -# -# Video and audio decoders -# - # # Camera sensor devices # # CONFIG_VIDEO_HI556 is not set # CONFIG_VIDEO_HI846 is not set +# CONFIG_VIDEO_HI847 is not set # CONFIG_VIDEO_IMX208 is not set # CONFIG_VIDEO_IMX214 is not set # CONFIG_VIDEO_IMX219 is not set @@ -2744,33 +2763,6 @@ CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y # CONFIG_VIDEO_IMX335 is not set # CONFIG_VIDEO_IMX355 is not set # CONFIG_VIDEO_IMX412 is not set -# CONFIG_VIDEO_OV02A10 is not set -# CONFIG_VIDEO_OV2640 is not set -# CONFIG_VIDEO_OV2659 is not set -# CONFIG_VIDEO_OV2680 is not set -# CONFIG_VIDEO_OV2685 is not set -# CONFIG_VIDEO_OV5640 is not set -# CONFIG_VIDEO_OV5645 is not set -# CONFIG_VIDEO_OV5647 is not set -# CONFIG_VIDEO_OV5648 is not set -# 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 -# CONFIG_VIDEO_OV7640 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_OV7740 is not set -# CONFIG_VIDEO_OV8856 is not set -# CONFIG_VIDEO_OV8865 is not set -# CONFIG_VIDEO_OV9282 is not set -# CONFIG_VIDEO_OV9640 is not set -# CONFIG_VIDEO_OV9650 is not set -# CONFIG_VIDEO_OV13858 is not set -# CONFIG_VIDEO_OV13B10 is not set -# CONFIG_VIDEO_VS6624 is not set # CONFIG_VIDEO_MT9M001 is not set # CONFIG_VIDEO_MT9M032 is not set # CONFIG_VIDEO_MT9M111 is not set @@ -2780,19 +2772,48 @@ CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y # CONFIG_VIDEO_MT9V011 is not set # CONFIG_VIDEO_MT9V032 is not set # CONFIG_VIDEO_MT9V111 is not set -# CONFIG_VIDEO_SR030PC30 is not set # CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_OG01A1B is not set +# CONFIG_VIDEO_OV02A10 is not set +# CONFIG_VIDEO_OV08D10 is not set +# CONFIG_VIDEO_OV13858 is not set +# CONFIG_VIDEO_OV13B10 is not set +# CONFIG_VIDEO_OV2640 is not set +# CONFIG_VIDEO_OV2659 is not set +# CONFIG_VIDEO_OV2680 is not set +# CONFIG_VIDEO_OV2685 is not set +# CONFIG_VIDEO_OV5640 is not set +# CONFIG_VIDEO_OV5645 is not set +# CONFIG_VIDEO_OV5647 is not set +# CONFIG_VIDEO_OV5648 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_OV6650 is not set +# CONFIG_VIDEO_OV7251 is not set +# CONFIG_VIDEO_OV7640 is not set +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_OV772X is not set +# CONFIG_VIDEO_OV7740 is not set +# CONFIG_VIDEO_OV8856 is not set +# CONFIG_VIDEO_OV8865 is not set +# CONFIG_VIDEO_OV9282 is not set +# CONFIG_VIDEO_OV9640 is not set +# CONFIG_VIDEO_OV9650 is not set # CONFIG_VIDEO_RDACM20 is not set # CONFIG_VIDEO_RDACM21 is not set # CONFIG_VIDEO_RJ54N1 is not set -# CONFIG_VIDEO_S5K6AA is not set -# CONFIG_VIDEO_S5K6A3 is not set +# CONFIG_VIDEO_S5C73M3 is not set # CONFIG_VIDEO_S5K4ECGX is not set # CONFIG_VIDEO_S5K5BAF is not set +# CONFIG_VIDEO_S5K6A3 is not set +# CONFIG_VIDEO_S5K6AA is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_VS6624 is not set # CONFIG_VIDEO_CCS is not set # CONFIG_VIDEO_ET8EK8 is not set -# CONFIG_VIDEO_S5C73M3 is not set +# CONFIG_VIDEO_M5MOLS is not set # end of Camera sensor devices # @@ -2813,6 +2834,14 @@ CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y # CONFIG_VIDEO_LM3646 is not set # end of Flash devices +# +# audio, video and radio I2C drivers auto-selected by 'Autoselect ancillary drivers' +# + +# +# Video and audio decoders +# + # # SPI I2C drivers auto-selected by 'Autoselect ancillary drivers' # @@ -2820,6 +2849,7 @@ CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y # # Media SPI Adapters # +# CONFIG_VIDEO_GS1662 is not set # end of Media SPI Adapters # end of Media ancillary drivers @@ -2905,6 +2935,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_NT35560 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set # CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set @@ -2937,7 +2968,6 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_DSI=y # CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set # CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set # 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 @@ -2960,6 +2990,7 @@ CONFIG_DRM_PANEL_BRIDGE=y # CONFIG_DRM_CHIPONE_ICN6211 is not set # CONFIG_DRM_CHRONTEL_CH7033 is not set # CONFIG_DRM_DISPLAY_CONNECTOR is not set +# CONFIG_DRM_ITE_IT6505 is not set # CONFIG_DRM_LONTIUM_LT8912B is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set @@ -2995,6 +3026,7 @@ CONFIG_DRM_PANEL_BRIDGE=y # CONFIG_DRM_ETNAVIV is not set # CONFIG_DRM_MXSFB is not set # CONFIG_DRM_ARCPGU is not set +# CONFIG_DRM_PANEL_MIPI_DBI is not set # CONFIG_DRM_SIMPLEDRM is not set # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9163 is not set @@ -3011,6 +3043,7 @@ CONFIG_DRM_LIMA=y # CONFIG_DRM_PANFROST is not set CONFIG_DRM_MCDE=y # CONFIG_DRM_TIDSS is not set +# CONFIG_DRM_SSD130X is not set # CONFIG_DRM_LEGACY is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_DRM_NOMODESET=y @@ -3072,6 +3105,7 @@ CONFIG_HDMI=y # CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set @@ -3186,6 +3220,7 @@ CONFIG_SND_SOC_AB8500_CODEC=y # CONFIG_SND_SOC_AK5386 is not set # CONFIG_SND_SOC_AK5558 is not set # CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_AW8738 is not set # CONFIG_SND_SOC_BD28623 is not set # CONFIG_SND_SOC_BT_SCO is not set # CONFIG_SND_SOC_CS35L32 is not set @@ -3269,6 +3304,7 @@ CONFIG_SND_SOC_AB8500_CODEC=y # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TAS5805M is not set # CONFIG_SND_SOC_TAS6424 is not set # CONFIG_SND_SOC_TDA7419 is not set # CONFIG_SND_SOC_TFA9879 is not set @@ -3390,6 +3426,7 @@ CONFIG_HID_MONTEREY=y # CONFIG_HID_PETALYNX is not set # CONFIG_HID_PICOLCD is not set # CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_RAZER is not set # CONFIG_HID_PRIMAX is not set # CONFIG_HID_SAITEK is not set # CONFIG_HID_SEMITEK is not set @@ -3847,7 +3884,6 @@ CONFIG_STAGING=y # Analog to digital converters # # CONFIG_AD7816 is not set -# CONFIG_AD7280 is not set # end of Analog to digital converters # @@ -3889,15 +3925,7 @@ CONFIG_STAGING=y # end of IIO staging drivers # CONFIG_STAGING_MEDIA is not set - -# -# Android -# -CONFIG_ASHMEM=y -# end of Android - # CONFIG_STAGING_BOARD is not set -# CONFIG_GS_FPGABOOT is not set # CONFIG_UNISYSSPAR is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set # CONFIG_FB_TFT is not set @@ -3909,7 +3937,6 @@ 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 @@ -3931,8 +3958,8 @@ 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_RS9_PCIE is not set # CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_XILINX_VCU is not set @@ -4080,6 +4107,8 @@ CONFIG_IIO_SW_TRIGGER=y # CONFIG_ADXL345_SPI is not set # CONFIG_ADXL355_I2C is not set # CONFIG_ADXL355_SPI is not set +# CONFIG_ADXL367_SPI is not set +# CONFIG_ADXL367_I2C is not set # CONFIG_ADXL372_SPI is not set # CONFIG_ADXL372_I2C is not set CONFIG_BMA180=y @@ -4124,6 +4153,7 @@ CONFIG_AB8500_GPADC=y # CONFIG_AD7124 is not set # CONFIG_AD7192 is not set # CONFIG_AD7266 is not set +# CONFIG_AD7280 is not set # CONFIG_AD7291 is not set # CONFIG_AD7292 is not set # CONFIG_AD7298 is not set @@ -4196,6 +4226,7 @@ CONFIG_IIO_RESCALE=y # Amplifiers # # CONFIG_AD8366 is not set +# CONFIG_ADA4250 is not set # CONFIG_HMC425 is not set # end of Amplifiers @@ -4258,6 +4289,7 @@ CONFIG_IIO_ST_SENSORS_CORE=y # CONFIG_AD5593R is not set # CONFIG_AD5504 is not set # CONFIG_AD5624R_SPI is not set +# CONFIG_LTC2688 is not set # CONFIG_AD5686_SPI is not set # CONFIG_AD5696_I2C is not set # CONFIG_AD5755 is not set @@ -4312,6 +4344,7 @@ CONFIG_IIO_ST_SENSORS_CORE=y # CONFIG_ADF4350 is not set # CONFIG_ADF4371 is not set # CONFIG_ADMV1013 is not set +# CONFIG_ADMV4420 is not set # CONFIG_ADRF6780 is not set # end of Phase-Locked Loop (PLL) frequency synthesizers # end of Frequency Synthesizers DDS/PLL @@ -4539,6 +4572,8 @@ CONFIG_IIO_ST_PRESS_SPI=y # CONFIG_RFD77402 is not set # CONFIG_SRF04 is not set # CONFIG_SX9310 is not set +# CONFIG_SX9324 is not set +# CONFIG_SX9360 is not set # CONFIG_SX9500 is not set # CONFIG_SRF08 is not set # CONFIG_VCNL3020 is not set @@ -4597,11 +4632,9 @@ CONFIG_RESET_CONTROLLER=y # CONFIG_PHY_CADENCE_TORRENT is not set # CONFIG_PHY_CADENCE_DPHY is not set +# CONFIG_PHY_CADENCE_DPHY_RX is not set # CONFIG_PHY_CADENCE_SIERRA is not set # 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 @@ -4654,6 +4687,7 @@ CONFIG_PM_OPP=y # CONFIG_INTERCONNECT is not set # CONFIG_COUNTER is not set # CONFIG_MOST is not set +# CONFIG_PECI is not set # end of Device Drivers # @@ -4986,7 +5020,7 @@ CONFIG_CRYPTO_HMAC=y # CONFIG_CRYPTO_CRC32C=y # CONFIG_CRYPTO_CRC32 is not set -# CONFIG_CRYPTO_XXHASH is not set +CONFIG_CRYPTO_XXHASH=y # CONFIG_CRYPTO_BLAKE2B is not set # CONFIG_CRYPTO_BLAKE2S is not set # CONFIG_CRYPTO_CRCT10DIF is not set @@ -5107,6 +5141,7 @@ CONFIG_CRYPTO_LIB_SHA256=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y # CONFIG_CRC_T10DIF is not set +# CONFIG_CRC64_ROCKSOFT is not set # CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set @@ -5159,7 +5194,6 @@ CONFIG_DMA_DECLARE_COHERENT=y CONFIG_ARCH_HAS_SETUP_DMA_OPS=y CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y CONFIG_DMA_NONCOHERENT_MMAP=y -CONFIG_DMA_REMAP=y # CONFIG_DMA_CMA is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_DMA_MAP_BENCHMARK is not set @@ -5203,16 +5237,20 @@ CONFIG_SYMBOLIC_ERRNAME=y CONFIG_DEBUG_BUGVERBOSE=y # end of printk and dmesg options +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_MISC=y + # # Compile-time checks and compiler options # CONFIG_DEBUG_INFO=y -# CONFIG_DEBUG_INFO_REDUCED is not set -# CONFIG_DEBUG_INFO_COMPRESSED is not set -# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_DEBUG_INFO_NONE is not set CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y # CONFIG_DEBUG_INFO_DWARF4 is not set # CONFIG_DEBUG_INFO_DWARF5 is not set +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_INFO_COMPRESSED is not set +# CONFIG_DEBUG_INFO_SPLIT is not set # CONFIG_GDB_SCRIPTS is not set CONFIG_FRAME_WARN=1024 # CONFIG_STRIP_ASM_SYMS is not set @@ -5240,9 +5278,6 @@ CONFIG_HAVE_ARCH_KGDB=y CONFIG_HAVE_KCSAN_COMPILER=y # end of Generic Kernel Debugging Instruments -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_MISC=y - # # Networking Debugging # @@ -5361,7 +5396,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_HAVE_BUILDTIME_MCOUNT_SORT=y CONFIG_TRACE_CLOCK=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set @@ -5421,7 +5456,6 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_BITMAP is not set # CONFIG_TEST_UUID is not set # CONFIG_TEST_XARRAY is not set -# CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_SIPHASH is not set # CONFIG_TEST_IDA is not set @@ -5438,7 +5472,6 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_STATIC_KEYS is not set # CONFIG_TEST_KMOD is not set # CONFIG_TEST_MEMCAT_P is not set -# CONFIG_TEST_STACKINIT is not set # CONFIG_TEST_MEMINIT is not set # CONFIG_TEST_FREE_PAGES is not set CONFIG_ARCH_USE_MEMTEST=y diff --git a/device/testing/linux-postmarketos-stericsson/disable-busy-detect-on-ux500-mmci.patch b/device/testing/linux-postmarketos-stericsson/disable-busy-detect-on-ux500-mmci.patch new file mode 100644 index 000000000..c5b58b1ad --- /dev/null +++ b/device/testing/linux-postmarketos-stericsson/disable-busy-detect-on-ux500-mmci.patch @@ -0,0 +1,46 @@ +From c18fec1957132c08a129ffad4fc1e19630949d12 Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Sat, 5 Feb 2022 12:08:42 +0100 +Subject: Disable busy detect on Ux500 MMCI + +--- + drivers/mmc/host/mmci.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c +index 45b8608c935cd..d31d0f6602455 100644 +--- a/drivers/mmc/host/mmci.c ++++ b/drivers/mmc/host/mmci.c +@@ -180,10 +180,10 @@ static struct variant_data variant_ux500 = { + .f_max = 100000000, + .signal_direction = true, + .pwrreg_clkgate = true, +- .busy_detect = true, +- .busy_dpsm_flag = MCI_DPSM_ST_BUSYMODE, +- .busy_detect_flag = MCI_ST_CARDBUSY, +- .busy_detect_mask = MCI_ST_BUSYENDMASK, ++ //.busy_detect = true, ++ //.busy_dpsm_flag = MCI_DPSM_ST_BUSYMODE, ++ //.busy_detect_flag = MCI_ST_CARDBUSY, ++ //.busy_detect_mask = MCI_ST_BUSYENDMASK, + .pwrreg_nopower = true, + .mmcimask1 = true, + .irq_pio_mask = MCI_IRQ_PIO_MASK, +@@ -215,10 +215,10 @@ static struct variant_data variant_ux500v2 = { + .f_max = 100000000, + .signal_direction = true, + .pwrreg_clkgate = true, +- .busy_detect = true, +- .busy_dpsm_flag = MCI_DPSM_ST_BUSYMODE, +- .busy_detect_flag = MCI_ST_CARDBUSY, +- .busy_detect_mask = MCI_ST_BUSYENDMASK, ++ //.busy_detect = true, ++ //.busy_dpsm_flag = MCI_DPSM_ST_BUSYMODE, ++ //.busy_detect_flag = MCI_ST_CARDBUSY, ++ //.busy_detect_mask = MCI_ST_BUSYENDMASK, + .pwrreg_nopower = true, + .mmcimask1 = true, + .irq_pio_mask = MCI_IRQ_PIO_MASK, +-- +cgit + diff --git a/device/testing/linux-postmarketos-stericsson/power-supply-ab8500-exit-maintenance-if-too-low-voltage.patch b/device/testing/linux-postmarketos-stericsson/power-supply-ab8500-exit-maintenance-if-too-low-voltage.patch new file mode 100644 index 000000000..cf6c6109a --- /dev/null +++ b/device/testing/linux-postmarketos-stericsson/power-supply-ab8500-exit-maintenance-if-too-low-voltage.patch @@ -0,0 +1,67 @@ +From 906449d15381899694c1be0926c92657d1537e80 Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Tue, 8 Mar 2022 17:12:52 +0100 +Subject: power: supply: ab8500: Exit maintenance if too low voltage + +The maintenance charging is supposedly designed such that the +maintenance current compensates for the battery discharge curve, +and as the charging progress from CC/CV -> maintenance A -> +maintenance B states, we end up on a reasonable voltage to +restart ordinary CC/CV charging after the safety timer at the +maintenance B state exits. + +However: old batteries discharge quicker, and in an old +battery we might not get to the expiration of the maintenance B +timer before the battery is completely depleted and the system +powers off with an empty battery. + +This is hardly the desire of anyone leaving their phone in the +charger for a few days! + +Introduce a second clause in both maintenance states such that +we exit the state and return to ordinary CC/CV charging if +the voltage drops below charge_restart_voltage_uv or 95% +if this is not defined for the battery. + +Signed-off-by: Linus Walleij +--- + drivers/power/supply/ab8500_chargalg.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/drivers/power/supply/ab8500_chargalg.c b/drivers/power/supply/ab8500_chargalg.c +index b9622eb9fc72e..1b23b5261881a 100644 +--- a/drivers/power/supply/ab8500_chargalg.c ++++ b/drivers/power/supply/ab8500_chargalg.c +@@ -1514,6 +1514,14 @@ static void ab8500_chargalg_algorithm(struct ab8500_chargalg *di) + ab8500_chargalg_stop_maintenance_timer(di); + ab8500_chargalg_state_to(di, STATE_MAINTENANCE_B_INIT); + } ++ /* ++ * This happens if the voltage drops too quickly during ++ * maintenance charging, especially in older batteries. ++ */ ++ if (ab8500_chargalg_time_to_restart(di)) { ++ ab8500_chargalg_state_to(di, STATE_NORMAL_INIT); ++ dev_info(di->dev, "restarted charging from maintenance state A - battery getting old?\n"); ++ } + break; + + case STATE_MAINTENANCE_B_INIT: +@@ -1538,6 +1546,14 @@ static void ab8500_chargalg_algorithm(struct ab8500_chargalg *di) + ab8500_chargalg_stop_maintenance_timer(di); + ab8500_chargalg_state_to(di, STATE_NORMAL_INIT); + } ++ /* ++ * This happens if the voltage drops too quickly during ++ * maintenance charging, especially in older batteries. ++ */ ++ if (ab8500_chargalg_time_to_restart(di)) { ++ ab8500_chargalg_state_to(di, STATE_NORMAL_INIT); ++ dev_info(di->dev, "restarted charging from maintenance state B - battery getting old?\n"); ++ } + break; + + case STATE_TEMP_LOWHIGH_INIT: +-- +cgit + diff --git a/device/testing/linux-postmarketos-stericsson/power-supply-ab8500-respect-charge_restart_voltage_uv.patch b/device/testing/linux-postmarketos-stericsson/power-supply-ab8500-respect-charge_restart_voltage_uv.patch new file mode 100644 index 000000000..28dd103ab --- /dev/null +++ b/device/testing/linux-postmarketos-stericsson/power-supply-ab8500-respect-charge_restart_voltage_uv.patch @@ -0,0 +1,69 @@ +From 17c18cde6b9f3f39a76735d12e6e8323fdc1ae33 Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Tue, 8 Mar 2022 17:05:12 +0100 +Subject: power: supply: ab8500: Respect charge_restart_voltage_uv + +The battery info contains a voltage indicating when the voltage +is so low that it is time to restart the CC/CV charging. +Make the AB8500 respect and prioritize this setting over the +hardcoded 95% threshold. + +Break out the check into its own function and add some safeguards +so we do not run into unpredictable side effects. + +Signed-off-by: Linus Walleij +--- + drivers/power/supply/ab8500_chargalg.c | 30 +++++++++++++++++++++++++++++- + 1 file changed, 29 insertions(+), 1 deletion(-) + +diff --git a/drivers/power/supply/ab8500_chargalg.c b/drivers/power/supply/ab8500_chargalg.c +index 94c22fdfe9632..b9622eb9fc72e 100644 +--- a/drivers/power/supply/ab8500_chargalg.c ++++ b/drivers/power/supply/ab8500_chargalg.c +@@ -1216,6 +1216,34 @@ static void ab8500_chargalg_external_power_changed(struct power_supply *psy) + queue_work(di->chargalg_wq, &di->chargalg_work); + } + ++/** ++ * ab8500_chargalg_time_to_restart() - time to restart CC/CV charging? ++ * @di: charging algorithm state ++ * ++ * This checks if the voltage or capacity of the battery has fallen so ++ * low that we need to restart the CC/CV charge cycle. ++ */ ++static bool ab8500_chargalg_time_to_restart(struct ab8500_chargalg *di) ++{ ++ struct power_supply_battery_info *bi = di->bm->bi; ++ ++ /* Sanity check - these need to have some reasonable values */ ++ if (!di->batt_data.volt_uv || !di->batt_data.percent) ++ return false; ++ ++ /* Some batteries tell us at which voltage we should restart charging */ ++ if (bi->charge_restart_voltage_uv > 0) { ++ if (di->batt_data.volt_uv <= bi->charge_restart_voltage_uv) ++ return true; ++ /* Else we restart as we reach a certain capacity */ ++ } else { ++ if (di->batt_data.percent <= AB8500_RECHARGE_CAP) ++ return true; ++ } ++ ++ return false; ++} ++ + /** + * ab8500_chargalg_algorithm() - Main function for the algorithm + * @di: pointer to the ab8500_chargalg structure +@@ -1459,7 +1487,7 @@ static void ab8500_chargalg_algorithm(struct ab8500_chargalg *di) + fallthrough; + + case STATE_WAIT_FOR_RECHARGE: +- if (di->batt_data.percent <= AB8500_RECHARGE_CAP) ++ if (ab8500_chargalg_time_to_restart(di)) + ab8500_chargalg_state_to(di, STATE_NORMAL_INIT); + break; + +-- +cgit + diff --git a/device/testing/linux-postmarketos-stericsson/power-supply-samsung-add-missing-charge-restart-voltages.patch b/device/testing/linux-postmarketos-stericsson/power-supply-samsung-add-missing-charge-restart-voltages.patch new file mode 100644 index 000000000..96f286258 --- /dev/null +++ b/device/testing/linux-postmarketos-stericsson/power-supply-samsung-add-missing-charge-restart-voltages.patch @@ -0,0 +1,38 @@ +From 044b2d24164c01cc75119151aa2fb5eeecb0140f Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Sun, 6 Mar 2022 00:12:13 +0100 +Subject: power: supply: samsung: Add missing charge restart voltages + +Two of the batteries were missing charging restart voltages, +meaning they can drain if the algorithm relies on restarting +charging at this voltage. Fix it up. + +Fixes: c8aee3f41cb8 ("power: supply: Static data for Samsung batteries") +Signed-off-by: Linus Walleij +--- + drivers/power/supply/samsung-sdi-battery.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/power/supply/samsung-sdi-battery.c b/drivers/power/supply/samsung-sdi-battery.c +index 9d59f277f5198..b33daab798b98 100644 +--- a/drivers/power/supply/samsung-sdi-battery.c ++++ b/drivers/power/supply/samsung-sdi-battery.c +@@ -824,6 +824,7 @@ static struct samsung_sdi_battery samsung_sdi_batteries[] = { + .constant_charge_current_max_ua = 900000, + .constant_charge_voltage_max_uv = 4200000, + .charge_term_current_ua = 200000, ++ .charge_restart_voltage_uv = 4170000, + .maintenance_charge = samsung_maint_charge_table, + .maintenance_charge_size = ARRAY_SIZE(samsung_maint_charge_table), + .alert_low_temp_charge_current_ua = 300000, +@@ -867,6 +868,7 @@ static struct samsung_sdi_battery samsung_sdi_batteries[] = { + .constant_charge_current_max_ua = 1500000, + .constant_charge_voltage_max_uv = 4350000, + .charge_term_current_ua = 120000, ++ .charge_restart_voltage_uv = 4300000, + .maintenance_charge = samsung_maint_charge_table, + .maintenance_charge_size = ARRAY_SIZE(samsung_maint_charge_table), + .alert_low_temp_charge_current_ua = 300000, +-- +cgit + diff --git a/device/testing/linux-postmarketos-stericsson/pwm-ab8500-get-hw-id-from-reg-value.patch b/device/testing/linux-postmarketos-stericsson/pwm-ab8500-get-hw-id-from-reg-value.patch new file mode 100644 index 000000000..0fcfdf84a --- /dev/null +++ b/device/testing/linux-postmarketos-stericsson/pwm-ab8500-get-hw-id-from-reg-value.patch @@ -0,0 +1,58 @@ +From cfc5fcc03c34a5f9366ebb8cf359c9f3f052f083 Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Sat, 15 Jan 2022 01:54:57 +0100 +Subject: pwm: ab8500: Get HW ID from reg value + +Instead of relying on the platform device ID which is just +assigned by the order of appearance of nodes in the device tree +if we're lucky, rely on the reg value which is stable and +predictable. + +Signed-off-by: Linus Walleij +--- + drivers/pwm/pwm-ab8500.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/drivers/pwm/pwm-ab8500.c b/drivers/pwm/pwm-ab8500.c +index ad37bc46f2721..338e046e89ea2 100644 +--- a/drivers/pwm/pwm-ab8500.c ++++ b/drivers/pwm/pwm-ab8500.c +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + + /* + * PWM Out generators +@@ -93,10 +94,16 @@ static const struct pwm_ops ab8500_pwm_ops = { + static int ab8500_pwm_probe(struct platform_device *pdev) + { + struct ab8500_pwm_chip *ab8500; ++ u32 hwid; + int err; + +- if (pdev->id < 1 || pdev->id > 31) +- return dev_err_probe(&pdev->dev, EINVAL, "Invalid device id %d\n", pdev->id); ++ err = device_property_read_u32(&pdev->dev, "reg", &hwid); ++ if (err) { ++ dev_err_probe(&pdev->dev, err, "missing reg property\n"); ++ return err; ++ } ++ if (hwid < 1 || hwid > 31) ++ return dev_err_probe(&pdev->dev, EINVAL, "Invalid device id %d\n", hwid); + + /* + * Nothing to be done in probe, this is required to get the +@@ -109,7 +116,7 @@ static int ab8500_pwm_probe(struct platform_device *pdev) + ab8500->chip.dev = &pdev->dev; + ab8500->chip.ops = &ab8500_pwm_ops; + ab8500->chip.npwm = 1; +- ab8500->hwid = pdev->id - 1; ++ ab8500->hwid = hwid; + + err = devm_pwmchip_add(&pdev->dev, &ab8500->chip); + if (err < 0) +-- +cgit +