mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-02-15 04:42:02 +00:00
Remove 4.19 not needed patches
This commit is contained in:
parent
130a3c1507
commit
3a7f9c49e3
2 changed files with 0 additions and 152 deletions
|
@ -1,102 +0,0 @@
|
||||||
From b954ef0dbb6bab97d22c921a79768e9207440fca Mon Sep 17 00:00:00 2001
|
|
||||||
From: James Hutchinson <jahutchinson99@googlemail.com>
|
|
||||||
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 <jahutchinson99@googlemail.com>
|
|
||||||
Reviewed-by: Antti Palosaari <crope@iki.fi>
|
|
||||||
Signed-off-by: Sean Young <sean@mess.org>
|
|
||||||
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
From afb1d05657278c16cca2a9fa96ef9a6c7170d07d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mariusz Bialonczyk <manio@skyboo.net>
|
|
||||||
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 <manio@skyboo.net>
|
|
||||||
Reviewed-by: Jean-Francois Dagenais <jeff.dagenais@gmail.com>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
Loading…
Reference in a new issue