lkml.org 
[lkml]   [2006]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 078/141] V4L/DVB (3291): Added support for xc3028 analogue tuner (Hauppauge HVR900, Terratec Hybrid XS)
    Date
    From: Markus Rechberger <mrechberger@gmail.com>
    Date: 1141009647 -0300

    Added support for xc3028 to v4l which adds support for:
    * Terratec Hybrid XS (analogue)
    * Hauppauge HVR 900 (analogue)


    Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
    ---

    diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
    diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
    index f6d0cf7..de48438 100644
    --- a/Documentation/video4linux/CARDLIST.tuner
    +++ b/Documentation/video4linux/CARDLIST.tuner
    @@ -69,3 +69,4 @@ tuner=67 - Philips TD1316 Hybrid Tuner
    tuner=68 - Philips TUV1236D ATSC/NTSC dual in
    tuner=69 - Tena TNF 5335 MF
    tuner=70 - Samsung TCPN 2121P30A
    +tuner=71 - Xceive xc3028
    diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
    diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
    index faf7283..60e9c6e 100644
    --- a/drivers/media/video/Makefile
    +++ b/drivers/media/video/Makefile
    @@ -9,7 +9,7 @@ zoran-objs := zr36120.o zr36120_i2c
    zr36067-objs := zoran_procfs.o zoran_device.o \
    zoran_driver.o zoran_card.o
    tuner-objs := tuner-core.o tuner-types.o tuner-simple.o \
    - mt20xx.o tda8290.o tea5767.o
    + mt20xx.o tda8290.o tea5767.o xc3028.o

    msp3400-objs := msp3400-driver.o msp3400-kthreads.o

    diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
    diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
    index 703927e..e9834c1 100644
    --- a/drivers/media/video/em28xx/em28xx-cards.c
    +++ b/drivers/media/video/em28xx/em28xx-cards.c
    @@ -158,8 +158,8 @@ struct em28xx_board em28xx_boards[] = {
    .name = "Hauppauge WinTV HVR 900",
    .vchannels = 3,
    .norm = VIDEO_MODE_PAL,
    - .has_tuner = 0,
    .tda9887_conf = TDA9887_PRESENT,
    + .tuner_type = TUNER_XCEIVE_XC3028,
    .has_tuner = 1,
    .decoder = EM28XX_TVP5150,
    .input = {{
    @@ -180,8 +180,8 @@ struct em28xx_board em28xx_boards[] = {
    .name = "Terratec Hybrid XS",
    .vchannels = 3,
    .norm = VIDEO_MODE_PAL,
    - .has_tuner = 0,
    .tda9887_conf = TDA9887_PRESENT,
    + .tuner_type = TUNER_XCEIVE_XC3028,
    .has_tuner = 1,
    .decoder = EM28XX_TVP5150,
    .input = {{
    diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
    diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
    index e34f801..520f274 100644
    --- a/drivers/media/video/tuner-core.c
    +++ b/drivers/media/video/tuner-core.c
    @@ -217,6 +217,9 @@ static void set_type(struct i2c_client *
    i2c_master_send(c,buffer,4);
    default_tuner_init(c);
    break;
    + case TUNER_XCEIVE_XC3028:
    + xc3028_init(c);
    + break;
    default:
    default_tuner_init(c);
    break;
    diff --git a/drivers/media/video/tuner-types.c b/drivers/media/video/tuner-types.c
    diff --git a/drivers/media/video/tuner-types.c b/drivers/media/video/tuner-types.c
    index a90bc04..a4384e6 100644
    --- a/drivers/media/video/tuner-types.c
    +++ b/drivers/media/video/tuner-types.c
    @@ -983,6 +983,23 @@ static struct tuner_params tuner_samsung
    },
    };

    +/* ------------ TUNER_XCEIVE_XC3028 - Xceive xc3028 ------------ */
    +
    +static struct tuner_range tuner_xceive_xc3028_ranges[] = {
    + { 16 * 140.25 /*MHz*/, 0x02, },
    + { 16 * 463.25 /*MHz*/, 0x04, },
    + { 16 * 999.99 , 0x01, },
    +};
    +
    +static struct tuner_params tuner_xceive_xc3028_params[] = {
    + {
    + .type = TUNER_XCEIVE_XC3028,
    + .ranges = tuner_xceive_xc3028_ranges,
    + .count = ARRAY_SIZE(tuner_xceive_xc3028_ranges),
    + },
    +};
    +
    +
    /* --------------------------------------------------------------------- */

    struct tunertype tuners[] = {
    @@ -1350,6 +1367,10 @@ struct tunertype tuners[] = {
    .params = tuner_samsung_tcpn_2121p30a_params,
    .count = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_params),
    },
    + [TUNER_XCEIVE_XC3028] = { /* Xceive 3028 */
    + .name = "Xceive xc3028",
    + .params = tuner_xceive_xc3028_params,
    + },
    };

    unsigned const int tuner_count = ARRAY_SIZE(tuners);
    diff --git a/include/media/tuner.h b/include/media/tuner.h
    diff --git a/include/media/tuner.h b/include/media/tuner.h
    index a5beeac..f51759c 100644
    --- a/include/media/tuner.h
    +++ b/include/media/tuner.h
    @@ -117,6 +117,8 @@
    #define TUNER_TNF_5335MF 69 /* Sabrent Bt848 */
    #define TUNER_SAMSUNG_TCPN_2121P30A 70 /* Hauppauge PVR-500MCE NTSC */

    +#define TUNER_XCEIVE_XC3028 71
    +
    /* tv card specific */
    #define TDA9887_PRESENT (1<<0)
    #define TDA9887_PORT1_INACTIVE (1<<1)
    @@ -209,6 +211,7 @@ struct tuner {
    extern unsigned const int tuner_count;

    extern int microtune_init(struct i2c_client *c);
    +extern int xc3028_init(struct i2c_client *c);
    extern int tda8290_init(struct i2c_client *c);
    extern int tda8290_probe(struct i2c_client *c);
    extern int tea5767_tuner_init(struct i2c_client *c);
    -
    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: 2006-03-20 17:01    [W:4.238 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site