Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f8e0bd5db4cc636fec35264c2396adb1b633ee05
Commit:     f8e0bd5db4cc636fec35264c2396adb1b633ee05
Parent:     ce9c27503491ea342b18b892f973acf5b3afc0f1
Author:     Aapo Tahkola <[EMAIL PROTECTED]>
AuthorDate: Thu Mar 22 17:37:58 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Wed May 9 10:12:58 2007 -0300

    V4L/DVB (5607): M920x: Initial support for devices likely manufactured by 
Dposh
    
    These devices are sold by various companies and chains not involved in
    hardware manufacturing business. This particular device owned by
    winisch (from irc) had a sticker with text "TCM 234292" on it. This device
    was never opened so it is possible that Dposh did not manufacture this
    stick. However, the bundled software and their product line points into
    that direction. Also thanks to Michael Krufky for spotting this hw
    filtering problem and thus avoiding hair loss.
    Hardware pid filters and the bundled remote controller are not currently
    supported on this device.
    
    Signed-off-by: Aapo Tahkola <[EMAIL PROTECTED]>
    Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>
    Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/dvb/dvb-usb/dvb-usb-ids.h |    3 ++
 drivers/media/dvb/dvb-usb/m920x.c       |   49 +++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+), 0 deletions(-)

diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 
b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
index dffce1d..4030816 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -19,6 +19,7 @@
 #define USB_VID_COMPRO_UNK                     0x145f
 #define USB_VID_CYPRESS                                0x04b4
 #define USB_VID_DIBCOM                         0x10b8
+#define USB_VID_DPOSH                          0x1498
 #define USB_VID_DVICO                          0x0fe9
 #define USB_VID_EMPIA                          0xeb1a
 #define USB_VID_GENPIX                         0x09c0
@@ -61,6 +62,8 @@
 #define USB_PID_DIBCOM_STK7700P                                0x1e14
 #define USB_PID_DIBCOM_STK7700P_PC                     0x1e78
 #define USB_PID_DIBCOM_ANCHOR_2135_COLD                        0x2131
+#define USB_PID_DPOSH_M9206_COLD                       0x9206
+#define USB_PID_DPOSH_M9206_WARM                       0xa090
 #define USB_PID_UNIWILL_STK7700P                       0x6003
 #define USB_PID_GRANDTEC_DVBT_USB_COLD                 0x0fa0
 #define USB_PID_GRANDTEC_DVBT_USB_WARM                 0x0fa1
diff --git a/drivers/media/dvb/dvb-usb/m920x.c 
b/drivers/media/dvb/dvb-usb/m920x.c
index 233e04d..44e0d6e 100644
--- a/drivers/media/dvb/dvb-usb/m920x.c
+++ b/drivers/media/dvb/dvb-usb/m920x.c
@@ -587,6 +587,7 @@ static struct m9206_inits tvwalkertwin_rc_init [] = {
 static struct dvb_usb_device_properties megasky_properties;
 static struct dvb_usb_device_properties digivox_mini_ii_properties;
 static struct dvb_usb_device_properties tvwalkertwin_properties;
+static struct dvb_usb_device_properties dposh_properties;
 static struct m9206_inits megasky_rc_init [];
 static struct m9206_inits tvwalkertwin_rc_init [];
 
@@ -625,6 +626,11 @@ static int m920x_probe(struct usb_interface *intf,
                        goto found;
                }
 
+               if ((ret = dvb_usb_device_init(intf, &dposh_properties, 
THIS_MODULE, &d)) == 0) {
+                       /* Remote controller not supported yet. */
+                       goto found;
+               }
+
                return ret;
        } else {
                /* Another interface on a multi-tuner device */
@@ -663,6 +669,8 @@ static struct usb_device_id m920x_table [] = {
                             USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD) },
                { USB_DEVICE(USB_VID_ANUBIS_ELECTRONIC,
                             USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM) },
+               { USB_DEVICE(USB_VID_DPOSH, USB_PID_DPOSH_M9206_COLD) },
+               { USB_DEVICE(USB_VID_DPOSH, USB_PID_DPOSH_M9206_WARM) },
                { }             /* Terminating entry */
 };
 MODULE_DEVICE_TABLE (usb, m920x_table);
@@ -835,6 +843,47 @@ static struct dvb_usb_device_properties 
tvwalkertwin_properties = {
        }
 };
 
+static struct dvb_usb_device_properties dposh_properties = {
+       .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+
+       .usb_ctrl = DEVICE_SPECIFIC,
+       .firmware = "dvb-usb-dposh-01.fw",
+       .download_firmware = m9206_firmware_download,
+
+       /* Remote controller not supported yet. */
+
+       .size_of_priv     = sizeof(struct m9206_state),
+
+       .identify_state   = m920x_identify_state,
+       .num_adapters = 1,
+       .adapter = {{
+                        /* Nardware pid filters don't work with this 
device/firmware. */
+
+                        .frontend_attach  = megasky_mt352_frontend_attach,
+                        .tuner_attach     = megasky_qt1010_tuner_attach,
+
+                        .stream = {
+                                .type = USB_BULK,
+                                .count = 8,
+                                .endpoint = 0x81,
+                                .u = {
+                                         .bulk = {
+                                                 .buffersize = 512,
+                                         }
+                                 }
+                        },
+                }},
+       .i2c_algo         = &m9206_i2c_algo,
+
+       .num_device_descs = 1,
+       .devices = {
+                {   .name = "Dposh DVB-T USB2.0",
+                    .cold_ids = { &m920x_table[4], NULL },
+                    .warm_ids = { &m920x_table[5], NULL },
+                },
+        }
+};
+
 static struct usb_driver m920x_driver = {
        .name           = "dvb_usb_m920x",
        .probe          = m920x_probe,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to