diff --git a/root/target/linux/brcm2708/patches-4.19/0433-media-m88ds3103-serialize-reset-messages-in-m88ds310.patch b/root/target/linux/brcm2708/patches-4.19/0433-media-m88ds3103-serialize-reset-messages-in-m88ds310.patch deleted file mode 100644 index bd9bc0ef..00000000 --- a/root/target/linux/brcm2708/patches-4.19/0433-media-m88ds3103-serialize-reset-messages-in-m88ds310.patch +++ /dev/null @@ -1,102 +0,0 @@ -From b954ef0dbb6bab97d22c921a79768e9207440fca Mon Sep 17 00:00:00 2001 -From: James Hutchinson -Date: Sun, 13 Jan 2019 16:13:47 -0500 -Subject: [PATCH 433/493] media: m88ds3103: serialize reset messages in - m88ds3103_set_frontend - -commit 981fbe3da20a6f35f17977453bce7dfc1664d74f upstream. - -Ref: https://bugzilla.kernel.org/show_bug.cgi?id=199323 - -Users are experiencing problems with the DVBSky S960/S960C USB devices -since the following commit: - -9d659ae: ("locking/mutex: Add lock handoff to avoid starvation") - -The device malfunctions after running for an indeterminable period of -time, and the problem can only be cleared by rebooting the machine. - -It is possible to encourage the problem to surface by blocking the -signal to the LNB. - -Further debugging revealed the cause of the problem. - -In the following capture: -- thread #1325 is running m88ds3103_set_frontend -- thread #42 is running ts2020_stat_work - -a> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 80 - [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 08 - [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 68 3f - [42] usb 1-1: dvb_usb_v2_generic_io: <<< 08 ff - [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 - [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 - [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 3d - [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff -b> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 00 - [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07 - [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 - [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 - [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 21 - [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff - [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 - [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 - [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 66 - [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff - [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 - [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07 - [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 60 02 10 0b - [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07 - -Two i2c messages are sent to perform a reset in m88ds3103_set_frontend: - - a. 0x07, 0x80 - b. 0x07, 0x00 - -However, as shown in the capture, the regmap mutex is being handed over -to another thread (ts2020_stat_work) in between these two messages. - ->From here, the device responds to every i2c message with an 07 message, -and will only return to normal operation following a power cycle. - -Use regmap_multi_reg_write to group the two reset messages, ensuring -both are processed before the regmap mutex is unlocked. - -Signed-off-by: James Hutchinson -Reviewed-by: Antti Palosaari -Signed-off-by: Sean Young -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/dvb-frontends/m88ds3103.c | 9 ++++----- - 1 file changed, 4 insertions(+), 5 deletions(-) - -diff --git a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c -index dffd2d4bf1c8..c25c92797408 100644 ---- a/drivers/media/dvb-frontends/m88ds3103.c -+++ b/drivers/media/dvb-frontends/m88ds3103.c -@@ -309,6 +309,9 @@ static int m88ds3103_set_frontend(struct dvb_frontend *fe) - u16 u16tmp; - u32 tuner_frequency_khz, target_mclk; - s32 s32tmp; -+ static const struct reg_sequence reset_buf[] = { -+ {0x07, 0x80}, {0x07, 0x00} -+ }; - - dev_dbg(&client->dev, - "delivery_system=%d modulation=%d frequency=%u symbol_rate=%d inversion=%d pilot=%d rolloff=%d\n", -@@ -321,11 +324,7 @@ static int m88ds3103_set_frontend(struct dvb_frontend *fe) - } - - /* reset */ -- ret = regmap_write(dev->regmap, 0x07, 0x80); -- if (ret) -- goto err; -- -- ret = regmap_write(dev->regmap, 0x07, 0x00); -+ ret = regmap_multi_reg_write(dev->regmap, reset_buf, 2); - if (ret) - goto err; - --- -2.19.1 - diff --git a/root/target/linux/brcm2708/patches-4.19/0501-w1-fix-the-resume-command-API.patch b/root/target/linux/brcm2708/patches-4.19/0501-w1-fix-the-resume-command-API.patch deleted file mode 100644 index 50852d6b..00000000 --- a/root/target/linux/brcm2708/patches-4.19/0501-w1-fix-the-resume-command-API.patch +++ /dev/null @@ -1,50 +0,0 @@ -From afb1d05657278c16cca2a9fa96ef9a6c7170d07d Mon Sep 17 00:00:00 2001 -From: Mariusz Bialonczyk -Date: Thu, 21 Mar 2019 11:52:55 +0100 -Subject: [PATCH 501/515] w1: fix the resume command API - -commit 62909da8aca048ecf9fbd7e484e5100608f40a63 upstream. - ->From the DS2408 datasheet [1]: -"Resume Command function checks the status of the RC flag and, if it is set, - directly transfers control to the control functions, similar to a Skip ROM - command. The only way to set the RC flag is through successfully executing - the Match ROM, Search ROM, Conditional Search ROM, or Overdrive-Match ROM - command" - -The function currently works perfectly fine in a multidrop bus, but when we -have only a single slave connected, then only a Skip ROM is used and Match -ROM is not called at all. This is leading to problems e.g. with single one -DS2408 connected, as the Resume Command is not working properly and the -device is responding with failing results after the Resume Command. - -This commit is fixing this by using a Skip ROM instead in those cases. -The bandwidth / performance advantage is exactly the same. - -Refs: -[1] https://datasheets.maximintegrated.com/en/ds/DS2408.pdf - -Signed-off-by: Mariusz Bialonczyk -Reviewed-by: Jean-Francois Dagenais -Signed-off-by: Greg Kroah-Hartman ---- - drivers/w1/w1_io.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/drivers/w1/w1_io.c b/drivers/w1/w1_io.c -index 0364d3329c52..3516ce6718d9 100644 ---- a/drivers/w1/w1_io.c -+++ b/drivers/w1/w1_io.c -@@ -432,8 +432,7 @@ int w1_reset_resume_command(struct w1_master *dev) - if (w1_reset_bus(dev)) - return -1; - -- /* This will make only the last matched slave perform a skip ROM. */ -- w1_write_8(dev, W1_RESUME_CMD); -+ w1_write_8(dev, dev->slave_count > 1 ? W1_RESUME_CMD : W1_SKIP_ROM); - return 0; - } - EXPORT_SYMBOL_GPL(w1_reset_resume_command); --- -2.19.1 -