V4L/DVB: Update tuner script for new firmware
Subsystems (2)
PATCH 2/4 V4L/DVB: Update tuner script for new firmware
Quoted 1 line
From
b3f9eb6e410ac317042cebdce5833dac8e276c1aMon Sep 17 00:00:00 2001
From: Bimow Chen <[email protected]>
Date: Tue, 5 Aug 2014 10:31:46 +0800
Subject: [PATCH 2/4] Update tuner script for new firmware.
--- drivers/media/dvb-frontends/af9033.c | 14 ++++++++++++++ drivers/media/dvb-frontends/af9033_priv.h | 20 +++++++++----------- 2 files changed, 23 insertions(+), 11 deletions(-)
drivers/media/dvb-frontends/af9033.c +14 -0
@@ -274,6 +274,20 @@ static int af9033_init(struct dvb_frontend *fe) { 0x800045, state->cfg.adc_multiplier, 0xff }, }; +/* power up tuner - for performance */ +switch (state->cfg.tuner) { +case AF9033_TUNER_IT9135_38 : +case AF9033_TUNER_IT9135_51 : +case AF9033_TUNER_IT9135_52 : +case AF9033_TUNER_IT9135_60 : +case AF9033_TUNER_IT9135_61 : +case AF9033_TUNER_IT9135_62 : + ret =af9033_wr_reg (state,0x80ec40 ,0x1 ); + ret |=af9033_wr_reg (state,0x80fba8 ,0x0 ); +if (ret <0 ) + goto err; + } +/* program clock control */ clock_cw =af9033_div (state, state->cfg.clock,1000000ul ,19ul ); buf[0 ] = (clock_cw >>0 ) &0xff ;
drivers/media/dvb-frontends/af9033_priv.h +9 -11
@@ -1418,7 +1418,7 @@ static const struct reg_val tuner_init_it9135_60[] = { { 0x800068, 0x0a }, { 0x80006a, 0x03 }, { 0x800070, 0x0a }, - { 0x800071, 0x05 }, + { 0x800071, 0x0a }, { 0x800072, 0x02 }, { 0x800075, 0x8c }, { 0x800076, 0x8c },
@@ -1484,7 +1484,6 @@ static const struct reg_val tuner_init_it9135_60[] = { { 0x800104, 0x02 }, { 0x800105, 0xbe }, { 0x800106, 0x00 }, - { 0x800109, 0x02 }, { 0x800115, 0x0a }, { 0x800116, 0x03 }, { 0x80011a, 0xbe },
@@ -1510,7 +1509,6 @@ static const struct reg_val tuner_init_it9135_60[] = { { 0x80014b, 0x8c }, { 0x80014d, 0xac }, { 0x80014e, 0xc6 }, - { 0x80014f, 0x03 }, { 0x800151, 0x1e }, { 0x800153, 0xbc }, { 0x800178, 0x09 },
@@ -1522,9 +1520,10 @@ static const struct reg_val tuner_init_it9135_60[] = { { 0x80018d, 0x5f }, { 0x80018f, 0xa0 }, { 0x800190, 0x5a }, - { 0x80ed02, 0xff }, - { 0x80ee42, 0xff }, - { 0x80ee82, 0xff }, + { 0x800191, 0x00 }, + { 0x80ed02, 0x40 }, + { 0x80ee42, 0x40 }, + { 0x80ee82, 0x40 }, { 0x80f000, 0x0f }, { 0x80f01f, 0x8c }, { 0x80f020, 0x00 },
@@ -1699,7 +1698,6 @@ static const struct reg_val tuner_init_it9135_61[] = { { 0x800104, 0x02 }, { 0x800105, 0xc8 }, { 0x800106, 0x00 }, - { 0x800109, 0x02 }, { 0x800115, 0x0a }, { 0x800116, 0x03 }, { 0x80011a, 0xc6 },
@@ -1725,7 +1723,6 @@ static const struct reg_val tuner_init_it9135_61[] = { { 0x80014b, 0x8c }, { 0x80014d, 0xa8 }, { 0x80014e, 0xc6 }, - { 0x80014f, 0x03 }, { 0x800151, 0x28 }, { 0x800153, 0xcc }, { 0x800178, 0x09 },
@@ -1737,9 +1734,10 @@ static const struct reg_val tuner_init_it9135_61[] = { { 0x80018d, 0x5f }, { 0x80018f, 0xfb }, { 0x800190, 0x5c }, - { 0x80ed02, 0xff }, - { 0x80ee42, 0xff }, - { 0x80ee82, 0xff }, + { 0x800191, 0x00 }, + { 0x80ed02, 0x40 }, + { 0x80ee42, 0x40 }, + { 0x80ee82, 0x40 }, { 0x80f000, 0x0f }, { 0x80f01f, 0x8c }, { 0x80f020, 0x00 },
Signature · 1 line
1.7.0.4
I applied that too, but removed those register writes you added to af9033 driver. Patch commit message was totally missing and I did a *lot* of reverse-engineering in order to understand patch (actually all these patches).
What I discovered, not sure if correct, but that patch updates IT9135 BX chipset tuner related inittabs. Tuner config 60 and 61 was updated. I take latest IT9135 windows driver binary from Hauppauge and extracted inittab for tuner 60. It was just same as here. So I suspect these tabs are just same than latest windows. Firmware is likely same too, but I was too lazy to dump it out from windows driver and compare...
Also, what I suspect, the 0xfba8 register write I removed from that patch, is some clock output provided by demod core. That is clock source for tuner, right?
regards
Antti
Signature · 1 line
http://palosaari.fi/