Hi to all,

I added some modifications to the driver mb86a20s and would appreciate your 
comments.

>
> File: drivers/media/dvb/frontends/mb86a20s.c
>
> -static int debug = 1;
> +static int debug = 0;
> module_param(debug, int, 0644);
> MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)");
>
 
How is in the description by default debug is off.

>
> -#define rc(args...)  do {
> +#define printk_rc(args...)  do {
>

For clarity, only rc is somewhat vague.

>
> +static int mb86a20s_i2c_gate_ctrl(struct dvb_frontend *fe, int enable) 
> 

Adds the i2c_gate_ctrl to mb86a20s driver.


The mb86a20s has an i2c bus which controls the flow of data to the tuner. When 
enabled, the data stream flowing normally through the i2c bus, when disabled 
the data stream to the tuner is cut and the i2c bus between mb86a20s and the 
tuner goes to tri-state. The data flow between the mb86a20s and its controller 
(CPU, USB), is not affected.

In hybrid systems with analog and digital TV, the i2c bus control can be done 
in the analog demodulator.

>
> -    if (fe->ops.i2c_gate_ctrl)
>-        fe->ops.i2c_gate_ctrl(fe, 0);
>     val = mb86a20s_readreg(state, 0x0a) & 0xf;
> -    if (fe->ops.i2c_gate_ctrl)
> -        fe->ops.i2c_gate_ctrl(fe, 1);
>

The i2c_gate_ctrl controls the i2c bus of the tuner so does not need to enable 
it or disable it here.


>
> +    for (i = 0; i < 20; i++) {
> +        if (mb86a20s_readreg(state, 0x0a) >= 8) break;
> +        msleep(100);
> +    }
>

Waits for the stabilization of the demodulator.

>
> +static int mb86a20s_get_algo(struct dvb_frontend *fe)
> +{
> +    return DVBFE_ALGO_HW;
> +}
>

Because the mb86a20s_tune function was implemented.

Thanks, best regards,

Manoel.


Signed-off-by: Manoel Pinheiro <pinus...@hotmail.com>



                                          

Attachment: i2c_gate_ctrl.patch
Description: Binary data

Reply via email to