Pull asus into release branch
[pandora-kernel.git] / drivers / media / dvb / frontends / nxt200x.c
index 809ffd4..b809f83 100644 (file)
@@ -55,7 +55,6 @@
 struct nxt200x_state {
 
        struct i2c_adapter* i2c;
-       struct dvb_frontend_ops ops;
        const struct nxt200x_config* config;
        struct dvb_frontend frontend;
 
@@ -548,8 +547,8 @@ static int nxt200x_setup_frontend_parameters (struct dvb_frontend* fe,
        }
 
        /* get tuning information */
-       if (fe->ops->tuner_ops.pllbuf) {
-               fe->ops->tuner_ops.pllbuf(fe, p, buf, 5);
+       if (fe->ops.tuner_ops.calc_regs) {
+               fe->ops.tuner_ops.calc_regs(fe, p, buf, 5);
        }
 
        /* set additional params */
@@ -563,7 +562,7 @@ static int nxt200x_setup_frontend_parameters (struct dvb_frontend* fe,
 
                        /* set input */
                        if (state->config->set_pll_input)
-                               state->config->set_pll_input(buf, 1);
+                               state->config->set_pll_input(buf+1, 1);
                        break;
                case VSB_8:
                        /* Set non-punctured clock for VSB */
@@ -572,7 +571,7 @@ static int nxt200x_setup_frontend_parameters (struct dvb_frontend* fe,
 
                        /* set input */
                        if (state->config->set_pll_input)
-                               state->config->set_pll_input(buf, 0);
+                               state->config->set_pll_input(buf+1, 0);
                        break;
                default:
                        return -EINVAL;
@@ -897,9 +896,9 @@ static int nxt2002_init(struct dvb_frontend* fe)
        }
 
        ret = nxt2002_load_firmware(fe, fw);
+       release_firmware(fw);
        if (ret) {
                printk("nxt2002: Writing firmware to device failed\n");
-               release_firmware(fw);
                return ret;
        }
        printk("nxt2002: Firmware upload complete\n");
@@ -961,9 +960,9 @@ static int nxt2004_init(struct dvb_frontend* fe)
        }
 
        ret = nxt2004_load_firmware(fe, fw);
+       release_firmware(fw);
        if (ret) {
                printk("nxt2004: Writing firmware to device failed\n");
-               release_firmware(fw);
                return ret;
        }
        printk("nxt2004: Firmware upload complete\n");
@@ -1161,7 +1160,6 @@ struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config,
        /* setup the state */
        state->config = config;
        state->i2c = i2c;
-       memcpy(&state->ops, &nxt200x_ops, sizeof(struct dvb_frontend_ops));
        state->initialised = 0;
 
        /* read card id */
@@ -1200,7 +1198,7 @@ struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config,
        }
 
        /* create dvb_frontend */
-       state->frontend.ops = &state->ops;
+       memcpy(&state->frontend.ops, &nxt200x_ops, sizeof(struct dvb_frontend_ops));
        state->frontend.demodulator_priv = state;
        return &state->frontend;