On faster CPUs a delay is required after the POWER_UP/RESUME command and
the DD_RESTART command. Without the delay, the DD_RESTART command often
returns -EREMOTEIO and the Si2168 does not restart.
diff --git a/drivers/media/dvb-frontends/si2168.c
b/drivers/media/dvb-frontends/si2168.c
index 172fc36..f2a3c8f 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -15,6 +15,7 @@
*/
#include "si2168_priv.h"
+#include <linux/delay.h>
static const struct dvb_frontend_ops si2168_ops;
@@ -435,6 +436,7 @@ static int si2168_init(struct dvb_frontend *fe)
if (ret)
goto err;
+ udelay(100);
memcpy(cmd.args, "\x85", 1);
cmd.wlen = 1;
cmd.rlen = 1;