From: Greg Kroah-Hartman Date: Tue, 1 Aug 2023 06:21:06 +0000 (+0200) Subject: 4.19-stable patches X-Git-Tag: v5.15.124~43 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3c80e4dbf3af28f6621a3e49baec4a07471b993a;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: asoc-wm8904-fill-the-cache-for-wm8904_adc_test_0-register.patch s390-dasd-fix-hanging-device-after-quiesce-resume.patch --- diff --git a/queue-4.19/asoc-wm8904-fill-the-cache-for-wm8904_adc_test_0-register.patch b/queue-4.19/asoc-wm8904-fill-the-cache-for-wm8904_adc_test_0-register.patch new file mode 100644 index 00000000000..afb40280402 --- /dev/null +++ b/queue-4.19/asoc-wm8904-fill-the-cache-for-wm8904_adc_test_0-register.patch @@ -0,0 +1,40 @@ +From f061e2be8689057cb4ec0dbffa9f03e1a23cdcb2 Mon Sep 17 00:00:00 2001 +From: Mark Brown +Date: Sun, 23 Jul 2023 00:27:22 +0100 +Subject: ASoC: wm8904: Fill the cache for WM8904_ADC_TEST_0 register + +From: Mark Brown + +commit f061e2be8689057cb4ec0dbffa9f03e1a23cdcb2 upstream. + +The WM8904_ADC_TEST_0 register is modified as part of updating the OSR +controls but does not have a cache default, leading to errors when we try +to modify these controls in cache only mode with no prior read: + +wm8904 3-001a: ASoC: error at snd_soc_component_update_bits on wm8904.3-001a for register: [0x000000c6] -16 + +Add a read of the register to probe() to fill the cache and avoid both the +error messages and the misconfiguration of the chip which will result. + +Acked-by: Charles Keepax +Signed-off-by: Mark Brown +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20230723-asoc-fix-wm8904-adc-test-read-v1-1-2cdf2edd83fd@kernel.org +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/codecs/wm8904.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/sound/soc/codecs/wm8904.c ++++ b/sound/soc/codecs/wm8904.c +@@ -2264,6 +2264,9 @@ static int wm8904_i2c_probe(struct i2c_c + regmap_update_bits(wm8904->regmap, WM8904_BIAS_CONTROL_0, + WM8904_POBCTRL, 0); + ++ /* Fill the cache for the ADC test register */ ++ regmap_read(wm8904->regmap, WM8904_ADC_TEST_0, &val); ++ + /* Can leave the device powered off until we need it */ + regcache_cache_only(wm8904->regmap, true); + regulator_bulk_disable(ARRAY_SIZE(wm8904->supplies), wm8904->supplies); diff --git a/queue-4.19/s390-dasd-fix-hanging-device-after-quiesce-resume.patch b/queue-4.19/s390-dasd-fix-hanging-device-after-quiesce-resume.patch new file mode 100644 index 00000000000..feebaf10305 --- /dev/null +++ b/queue-4.19/s390-dasd-fix-hanging-device-after-quiesce-resume.patch @@ -0,0 +1,44 @@ +From 05f1d8ed03f547054efbc4d29bb7991c958ede95 Mon Sep 17 00:00:00 2001 +From: Stefan Haberland +Date: Fri, 21 Jul 2023 21:36:44 +0200 +Subject: s390/dasd: fix hanging device after quiesce/resume + +From: Stefan Haberland + +commit 05f1d8ed03f547054efbc4d29bb7991c958ede95 upstream. + +Quiesce and resume are functions that tell the DASD driver to stop/resume +issuing I/Os to a specific DASD. + +On resume dasd_schedule_block_bh() is called to kick handling of IO +requests again. This does unfortunately not cover internal requests which +are used for path verification for example. + +This could lead to a hanging device when a path event or anything else +that triggers internal requests occurs on a quiesced device. + +Fix by also calling dasd_schedule_device_bh() which triggers handling of +internal requests on resume. + +Fixes: 8e09f21574ea ("[S390] dasd: add hyper PAV support to DASD device driver, part 1") + +Cc: stable@vger.kernel.org +Signed-off-by: Stefan Haberland +Reviewed-by: Jan Hoeppner +Link: https://lore.kernel.org/r/20230721193647.3889634-2-sth@linux.ibm.com +Signed-off-by: Jens Axboe +Signed-off-by: Greg Kroah-Hartman +--- + drivers/s390/block/dasd_ioctl.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/s390/block/dasd_ioctl.c ++++ b/drivers/s390/block/dasd_ioctl.c +@@ -137,6 +137,7 @@ static int dasd_ioctl_resume(struct dasd + spin_unlock_irqrestore(get_ccwdev_lock(base->cdev), flags); + + dasd_schedule_block_bh(block); ++ dasd_schedule_device_bh(base); + return 0; + } + diff --git a/queue-4.19/series b/queue-4.19/series index 9aa0e6c18e4..353db17c0e7 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -276,3 +276,5 @@ irq-bcm6345-l1-do-not-assume-a-fixed-block-to-cpu-ma.patch serial-8250_dw-split-synopsys-designware-8250-common.patch serial-8250_dw-preserve-original-value-of-dlf-regist.patch virtio-net-fix-race-between-set-queues-and-probe.patch +s390-dasd-fix-hanging-device-after-quiesce-resume.patch +asoc-wm8904-fill-the-cache-for-wm8904_adc_test_0-register.patch