lkml.org 
[lkml]   [2005]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[DVB patch 29/54] usb: digitv: support for nxt6000 demod
    From: Svante Olofsson <svante@agentum.com>

    Add support for the NXT6000-based digitv-box.
    Add .get_tune_settings callback for the NXT6000 to have a min_tune_delay of 500ms.

    Signed-off-by: Svante Olofsson <svante@agentum.com>
    Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
    Signed-off-by: Johannes Stezenbach <js@linuxtv.org>

    drivers/media/dvb/dvb-usb/digitv.c | 40 ++++++++++++++++++++--------------
    drivers/media/dvb/frontends/nxt6000.c | 9 +++++++
    2 files changed, 33 insertions(+), 16 deletions(-)

    --- linux-2.6.13-git4.orig/drivers/media/dvb/dvb-usb/digitv.c 2005-09-04 21:56:59.000000000 +0200
    +++ linux-2.6.13-git4/drivers/media/dvb/dvb-usb/digitv.c 2005-09-04 22:28:22.000000000 +0200
    @@ -113,31 +113,28 @@ static int digitv_mt352_demod_init(struc
    }

    static struct mt352_config digitv_mt352_config = {
    - .demod_address = 0x0, /* ignored by the digitv anyway */
    .demod_init = digitv_mt352_demod_init,
    .pll_set = dvb_usb_pll_set,
    };

    -static struct nxt6000_config digitv_nxt6000_config = {
    - .demod_address = 0x0, /* ignored by the digitv anyway */
    - .clock_inversion = 0x0,
    +static int digitv_nxt6000_pll_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *fep)
    +{
    + struct dvb_usb_device *d = fe->dvb->priv;
    + u8 b[5];
    + dvb_usb_pll_set(fe,fep,b);
    + return digitv_ctrl_msg(d,USB_WRITE_TUNER,0,&b[1],4,NULL,0);
    +}

    - .pll_init = NULL,
    - .pll_set = NULL,
    +static struct nxt6000_config digitv_nxt6000_config = {
    + .clock_inversion = 1,
    + .pll_set = digitv_nxt6000_pll_set,
    };

    static int digitv_frontend_attach(struct dvb_usb_device *d)
    {
    - if ((d->fe = mt352_attach(&digitv_mt352_config, &d->i2c_adap)) != NULL)
    + if ((d->fe = mt352_attach(&digitv_mt352_config, &d->i2c_adap)) != NULL ||
    + (d->fe = nxt6000_attach(&digitv_nxt6000_config, &d->i2c_adap)) != NULL)
    return 0;
    - if ((d->fe = nxt6000_attach(&digitv_nxt6000_config, &d->i2c_adap)) != NULL) {
    -
    - warn("nxt6000 support is not done yet, in fact you are one of the first "
    - "person who wants to use this device in Linux. Please report to "
    - "linux-dvb@linuxtv.org");
    -
    - return 0;
    - }
    return -EIO;
    }

    @@ -175,7 +172,18 @@ static struct dvb_usb_properties digitv_
    static int digitv_probe(struct usb_interface *intf,
    const struct usb_device_id *id)
    {
    - return dvb_usb_device_init(intf,&digitv_properties,THIS_MODULE,NULL);
    + struct dvb_usb_device *d;
    + int ret;
    + if ((ret = dvb_usb_device_init(intf,&digitv_properties,THIS_MODULE,&d)) == 0) {
    + u8 b[4] = { 0 };
    +
    + b[0] = 1;
    + digitv_ctrl_msg(d,USB_WRITE_REMOTE_TYPE,0,b,4,NULL,0);
    +
    + b[0] = 0;
    + digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0);
    + }
    + return ret;
    }

    static struct usb_device_id digitv_table [] = {
    --- linux-2.6.13-git4.orig/drivers/media/dvb/frontends/nxt6000.c 2005-09-04 22:24:23.000000000 +0200
    +++ linux-2.6.13-git4/drivers/media/dvb/frontends/nxt6000.c 2005-09-04 22:28:22.000000000 +0200
    @@ -482,6 +482,7 @@ static int nxt6000_set_frontend(struct d
    if ((result = nxt6000_set_inversion(state, param->inversion)) < 0)
    return result;

    + msleep(500);
    return 0;
    }

    @@ -525,6 +526,12 @@ static int nxt6000_read_signal_strength(
    return 0;
    }

    +static int nxt6000_fe_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings *tune)
    +{
    + tune->min_delay_ms = 500;
    + return 0;
    +}
    +
    static struct dvb_frontend_ops nxt6000_ops;

    struct dvb_frontend* nxt6000_attach(const struct nxt6000_config* config,
    @@ -577,6 +584,8 @@ static struct dvb_frontend_ops nxt6000_o
    .release = nxt6000_release,

    .init = nxt6000_init,
    +
    + .get_tune_settings = nxt6000_fe_get_tune_settings,

    .set_frontend = nxt6000_set_frontend,

    --

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-09-05 01:45    [W:0.024 / U:59.140 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site