| From foo@baz Thu Mar 22 14:57:32 CET 2018 |
| From: Ron Economos <w6rz@comcast.net> |
| Date: Mon, 11 Dec 2017 19:51:53 -0500 |
| Subject: media: [RESEND] media: dvb-frontends: Add delay to Si2168 restart |
| |
| From: Ron Economos <w6rz@comcast.net> |
| |
| |
| [ Upstream commit 380a6c86457573aa42d27ae11e025eb25941a0b7 ] |
| |
| On faster CPUs a delay is required after the resume command and the restart command. Without the delay, the restart command often returns -EREMOTEIO and the Si2168 does not restart. |
| |
| Note that this patch fixes the same issue as https://patchwork.linuxtv.org/patch/44304/, but I believe my udelay() fix addresses the actual problem. |
| |
| Signed-off-by: Ron Economos <w6rz@comcast.net> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/media/dvb-frontends/si2168.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/drivers/media/dvb-frontends/si2168.c |
| +++ b/drivers/media/dvb-frontends/si2168.c |
| @@ -14,6 +14,8 @@ |
| * GNU General Public License for more details. |
| */ |
| |
| +#include <linux/delay.h> |
| + |
| #include "si2168_priv.h" |
| |
| static const struct dvb_frontend_ops si2168_ops; |
| @@ -420,6 +422,7 @@ static int si2168_init(struct dvb_fronte |
| if (ret) |
| goto err; |
| |
| + udelay(100); |
| memcpy(cmd.args, "\x85", 1); |
| cmd.wlen = 1; |
| cmd.rlen = 1; |