Mimic what windows driver does here: it writes 0x07 to
SIO_CC_SOFT_RST__A, instead of just 0x03.

Signed-off-by: Mauro Carvalho Chehab <m.che...@samsung.com>
---
 drivers/media/dvb-frontends/drx39xyj/drxj.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb-frontends/drx39xyj/drxj.c 
b/drivers/media/dvb-frontends/drx39xyj/drxj.c
index 97a30057ff09..ed68c52f4e96 100644
--- a/drivers/media/dvb-frontends/drx39xyj/drxj.c
+++ b/drivers/media/dvb-frontends/drx39xyj/drxj.c
@@ -19876,8 +19876,15 @@ int drxj_open(struct drx_demod_instance *demod)
                goto rw_error;
        }
 
-       /* Soft reset of sys- and osc-clockdomain */
-       rc = drxj_dap_write_reg16(dev_addr, SIO_CC_SOFT_RST__A, 
(SIO_CC_SOFT_RST_SYS__M | SIO_CC_SOFT_RST_OSC__M), 0);
+       /*
+        * Soft reset of sys- and osc-clockdomain
+        *
+        * HACK: On windows, it writes a 0x07 here, instead of just 0x03.
+        * As we didn't load the firmware here yet, we should do the same.
+        * Btw, this is coherent with DRX-K, where we send reset codes
+        * for modulation (OFTM, in DRX-k), SYS and OSC clock domains.
+        */
+       rc = drxj_dap_write_reg16(dev_addr, SIO_CC_SOFT_RST__A, (0x04 | 
SIO_CC_SOFT_RST_SYS__M | SIO_CC_SOFT_RST_OSC__M), 0);
        if (rc != 0) {
                pr_err("error %d\n", rc);
                goto rw_error;
-- 
1.8.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to