Skip to contentSkip to conversation

gp8psk: Add support for the Genpix Skywalker-2

PATCH In review D. K. 2 participants 4 messages Oct 14, 2010 – Oct 16, 2010 Media (V4L/DVB)

lore
Share & tools
lore

D. K.

author
#0 lore raw

PATCH 1/1 gp8psk: Add support for the Genpix Skywalker-2

gp8psk: Add support for the Genpix Skywalker-2 per user requests.

Patched against v4l-dvb hg ab433502e041 tip. Should patch fine against git as well.

----------

linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2010-08-17 10:38:48.000000000 -0700 renamed from linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2010-08-17 09:53:27.000000000 -0700 +1 -0
diff -pruN v4l-dvb.orig/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -267,6 +267,7 @@
 #define USB_PID_GENPIX_8PSK_REV_2                      0x0202
 #define USB_PID_GENPIX_SKYWALKER_1                     0x0203
 #define USB_PID_GENPIX_SKYWALKER_CW3K                  0x0204
+#define USB_PID_GENPIX_SKYWALKER_2                     0x0206
 #define USB_PID_SIGMATEK_DVB_110                       0x6610
 #define USB_PID_MSI_DIGI_VOX_MINI_II                   0x1513
 #define USB_PID_MSI_DIGIVOX_DUO                                0x8801
linux/drivers/media/dvb/dvb-usb/gp8psk.c 2010-08-17 10:42:33.000000000 -0700 renamed from linux/drivers/media/dvb/dvb-usb/gp8psk.c 2010-08-17 09:53:27.000000000 -0700 +7 -2
diff -pruN v4l-dvb.orig/linux/drivers/media/dvb/dvb-usb/gp8psk.c v4l-dvb/linux/drivers/media/dvb/dvb-usb/gp8psk.c
@@ -227,6 +227,7 @@ static struct usb_device_id gp8psk_usb_t
            { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_8PSK_REV_1_WARM) },
            { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_8PSK_REV_2) },
            { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_SKYWALKER_1) },
+           { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_SKYWALKER_2) },
 /*         { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_SKYWALKER_CW3K) }, */
            { 0 },
 };
@@ -258,7 +259,7 @@ static struct dvb_usb_device_properties
 
        .generic_bulk_ctrl_endpoint = 0x01,
 
-       .num_device_descs = 3,
+       .num_device_descs = 4,
        .devices = {
                { .name = "Genpix 8PSK-to-USB2 Rev.1 DVB-S receiver",
                  .cold_ids = { &gp8psk_usb_table[0], NULL },
@@ -272,10 +273,14 @@ static struct dvb_usb_device_properties
                  .cold_ids = { NULL },
                  .warm_ids = { &gp8psk_usb_table[3], NULL },
                },
+               { .name = "Genpix SkyWalker-2 DVB-S receiver",
+                 .cold_ids = { NULL },
+                 .warm_ids = { &gp8psk_usb_table[4], NULL },
+               },
 #if 0
                { .name = "Genpix SkyWalker-CW3K DVB-S receiver",
                  .cold_ids = { NULL },
-                 .warm_ids = { &gp8psk_usb_table[4], NULL },
+                 .warm_ids = { &gp8psk_usb_table[5], NULL },
                },
 #endif
                { NULL },
linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h +1 -0
diff -pruN v4l-dvb.orig/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -267,6 +267,7 @@
 #define USB_PID_GENPIX_8PSK_REV_2			0x0202
 #define USB_PID_GENPIX_SKYWALKER_1			0x0203
 #define USB_PID_GENPIX_SKYWALKER_CW3K			0x0204
+#define USB_PID_GENPIX_SKYWALKER_2			0x0206
 #define USB_PID_SIGMATEK_DVB_110			0x6610
 #define USB_PID_MSI_DIGI_VOX_MINI_II			0x1513
 #define USB_PID_MSI_DIGIVOX_DUO				0x8801
linux/drivers/media/dvb/dvb-usb/gp8psk.c +7 -2
diff -pruN v4l-dvb.orig/linux/drivers/media/dvb/dvb-usb/gp8psk.c v4l-dvb/linux/drivers/media/dvb/dvb-usb/gp8psk.c
@@ -227,6 +227,7 @@ static struct usb_device_id gp8psk_usb_t
 	    { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_8PSK_REV_1_WARM) },
 	    { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_8PSK_REV_2) },
 	    { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_SKYWALKER_1) },
+	    { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_SKYWALKER_2) },
 /*	    { USB_DEVICE(USB_VID_GENPIX, USB_PID_GENPIX_SKYWALKER_CW3K) }, */
 	    { 0 },
 };
@@ -258,7 +259,7 @@ static struct dvb_usb_device_properties
 
 	.generic_bulk_ctrl_endpoint = 0x01,
 
-	.num_device_descs = 3,
+	.num_device_descs = 4,
 	.devices = {
 		{ .name = "Genpix 8PSK-to-USB2 Rev.1 DVB-S receiver",
 		  .cold_ids = { &gp8psk_usb_table[0], NULL },
@@ -272,10 +273,14 @@ static struct dvb_usb_device_properties
 		  .cold_ids = { NULL },
 		  .warm_ids = { &gp8psk_usb_table[3], NULL },
 		},
+		{ .name = "Genpix SkyWalker-2 DVB-S receiver",
+		  .cold_ids = { NULL },
+		  .warm_ids = { &gp8psk_usb_table[4], NULL },
+		},
 #if 0
 		{ .name = "Genpix SkyWalker-CW3K DVB-S receiver",
 		  .cold_ids = { NULL },
-		  .warm_ids = { &gp8psk_usb_table[4], NULL },
+		  .warm_ids = { &gp8psk_usb_table[5], NULL },
 		},
 #endif
 		{ NULL },
#1 lore raw

Em 14-10-2010 16:03, D. K. escreveu:

Quoted 4 lines

gp8psk: Add support for the Genpix Skywalker-2 per user requests.

Patched against v4l-dvb hg ab433502e041 tip. Should patch fine against git as well.

No, it didn't apply at -git. It seems that the following patch already added Skywalker-2.

Cheers,
Mauro

commit 458b634cd86968032171a4d6db5c89a772ff0348

Author: Alan Nisota <[email protected]>
Date:   Sat Aug 18 17:52:35 2007 -0300

V4L/DVB (6037): Updated GenPix USB driver

There are now 4 different versions of the GENPIX USB adapter. The newest 'Skywalker' models are fully self-contained, and need no additional hardware to be used. A very reliable DVB-S card even without using any of the alternate modulatations (which this kernel module does not currently support)

The following patch adds support for all 4 versions of the genpix adapter (www.genpix-electronics.com).

drivers/media/dvb/dvb-usb/dvb-usb-ids.h +5 -2
index a16be60..43bfe50 100644
@@ -158,8 +158,11 @@
 #define USB_PID_WINFAST_DTV_DONGLE_COLD			0x6025
 #define USB_PID_WINFAST_DTV_DONGLE_WARM			0x6026
 #define USB_PID_WINFAST_DTV_DONGLE_STK7700P		0x6f00
-#define USB_PID_GENPIX_8PSK_COLD			0x0200
-#define USB_PID_GENPIX_8PSK_WARM			0x0201
+#define USB_PID_GENPIX_8PSK_REV_1_COLD			0x0200
+#define USB_PID_GENPIX_8PSK_REV_1_WARM			0x0201
+#define USB_PID_GENPIX_8PSK_REV_2			0x0202
+#define USB_PID_GENPIX_SKYWALKER_1			0x0203
+#define USB_PID_GENPIX_SKYWALKER_CW3K			0x0204
 #define USB_PID_SIGMATEK_DVB_110			0x6610
 #define USB_PID_MSI_DIGI_VOX_MINI_II			0x1513
 #define USB_PID_OPERA1_COLD				0x2830
drivers/media/dvb/dvb-usb/gp8psk-fe.c +51 -33

145 lines not on this page · raw message

drivers/media/dvb/dvb-usb/gp8psk.c +71 -22

161 lines not on this page · raw message

drivers/media/dvb/dvb-usb/gp8psk.h +25 -7
index 3eba706..e83a575 100644
@@ -1,7 +1,8 @@
 /* DVB USB compliant Linux driver for the
- *  - GENPIX 8pks/qpsk USB2.0 DVB-S module
+ *  - GENPIX 8pks/qpsk/DCII USB2.0 DVB-S module
  *
  * Copyright (C) 2006 Alan Nisota ([email protected])
+ * Copyright (C) 2006,2007 Alan Nisota ([email protected])
  *
  * Thanks to GENPIX for the sample code used to implement this module.
  *
@@ -30,21 +31,37 @@ extern int dvb_usb_gp8psk_debug;
 #define TH_COMMAND_IN                     0xC0
 #define TH_COMMAND_OUT                    0xC1
 
-/* command bytes */
-#define GET_8PSK_CONFIG                 0x80
+/* gp8psk commands */
+
+#define GET_8PSK_CONFIG                 0x80    /* in */
 #define SET_8PSK_CONFIG                 0x81
+#define I2C_WRITE			0x83
+#define I2C_READ			0x84
 #define ARM_TRANSFER                    0x85
 #define TUNE_8PSK                       0x86
-#define GET_SIGNAL_STRENGTH             0x87
+#define GET_SIGNAL_STRENGTH             0x87    /* in */
 #define LOAD_BCM4500                    0x88
-#define BOOT_8PSK                       0x89
-#define START_INTERSIL                  0x8A
+#define BOOT_8PSK                       0x89    /* in */
+#define START_INTERSIL                  0x8A    /* in */
 #define SET_LNB_VOLTAGE                 0x8B
 #define SET_22KHZ_TONE                  0x8C
 #define SEND_DISEQC_COMMAND             0x8D
 #define SET_DVB_MODE                    0x8E
 #define SET_DN_SWITCH                   0x8F
-#define GET_SIGNAL_LOCK                 0x90
+#define GET_SIGNAL_LOCK                 0x90    /* in */
+#define GET_SERIAL_NUMBER               0x93    /* in */
+#define USE_EXTRA_VOLT                  0x94
+#define CW3K_INIT			0x9d
+
+/* PSK_configuration bits */
+#define bm8pskStarted                   0x01
+#define bm8pskFW_Loaded                 0x02
+#define bmIntersilOn                    0x04
+#define bmDVBmode                       0x08
+#define bm22kHz                         0x10
+#define bmSEL18V                        0x20
+#define bmDCtuned                       0x40
+#define bmArmed                         0x80
 
 /* Satellite modulation modes */
 #define ADV_MOD_DVB_QPSK 0     /* DVB-S QPSK */
@@ -75,5 +92,6 @@ extern struct dvb_frontend * gp8psk_fe_attach(struct dvb_usb_device *d);
 extern int gp8psk_usb_in_op(struct dvb_usb_device *d, u8 req, u16 value, u16 index, u8 *b, int blen);
 extern int gp8psk_usb_out_op(struct dvb_usb_device *d, u8 req, u16 value,
 			     u16 index, u8 *b, int blen);
+extern int gp8psk_bcm4500_reload(struct dvb_usb_device *d);
 
 #endif
author
#2 lore raw
Quoted 8 lines · Mauro Carvalho Chehab

Em 14-10-2010 16:03, D. K. escreveu:

Quoted 4 lines

 gp8psk: Add support for the Genpix Skywalker-2 per user requests.

Patched against v4l-dvb hg ab433502e041 tip.  Should patch fine against git as well.

No, it didn't apply at -git. It seems that the following patch already added Skywalker-2.

The Skywalker-2 didn't even exist at the time of that patch and I don't see any reason why it wouldn't have applied. Seems very odd it patches against hg and not git. I guess I'll have to download git and see what problem there is. Will get back to you afterwards.

Thanks,
Derek

author
#3 lore raw

Seems some #if 0 code is gone from git and that's the reason. I made a new patch against git and resubmitted. Is it git behavior to remove #if 0 code, or did someone do it? I couldn't find any log of any patch that removed it in git.

Thanks,
Derek