Re: [PATCH 1/3] TBS USB drivers (DVB-S/S2) - basic driver

2014-11-05 Thread Mauro Carvalho Chehab
Hi Andreas,

(c/c the others that are listed as the authors of the TBS driver)

Em Wed, 26 Mar 2014 21:32:46 +0100
Andreas Steinmetz a...@domdv.de escreveu:

 [Please CC me on replies, I'm not subscribed]
 
 The patch adds a driver for TBS USB DVB-S/S2 devices for which complete
 GPLv2 code exists. Code was taken from:
 
 http://www.tbsdtv.com/download/
 https://bitbucket.org/CrazyCat/linux-tbs-drivers/
 https://bitbucket.org/updatelee/v4l-updatelee

We have already a driver for the chipsets used on this driver.
So, instead of adding a new driver, you should work on adding support
on the existing ones.
 
 Supported devices:
 --
 
 TBS5980 - complete open source by manufacturer, current device
 TBS5928 - complete open source by manufacturer, old device
 TBS5920 - complete open source by manufacturer, old device
 TBS5910 - complete open source by manufacturer, old device
 TBS5925 - open source by manufacturer except 13V/18V control,
   voltage switching of TBS5980 however works,
   current device
 TBS5921 - open source from CrazyCat's bitbucket repository,
   old device
 
 Unsupported devices:
 
 
 TBS5922 - mostly closed source, current device
 TBS5990 - mostly closed source, current device
 TBS with USB PID 0x2601 - very old device for which the actual
 hardware used couldn't be determined.
 
 General:
 
 
 I do not have any manufacturer relationship. I'm just a user of TBS5980
 and TBS5925 which work quite well as far as the hardware is concerned.
 
 I'm sufficiently annoyed, however, by the manufacturer's driver build
 system which actually is an old v4l tree replacing the kernel's current
 v4l tree. Thus I have reworked all available open source code for the
 TBS USB DVB-S/S2 hardware into a combined driver that is working with
 the current kernel.
 
 Testing:
 
 
 TBS5925 gets used daily and is working fine.
 TBS5980 gets used daily minus an actual CAM and is working fine without
 a CAM.
 
 The old devices can't be tested by me, I don't own them and they are not
 sold anymore.
 
 Maintenance:
 
 
 As a TBS5925/TBS5980 user I'm willing to maintain the driver as far as
 this is possible (see below).
 
 Regarding the older devices I'm willing to fix bugs for owners of these
 devices as long as I did introduce them in my combined driver.
 
 What I cannot do for any device is to fix any problems that would
 require manufacturer support or manufacturer documentation.
 
 As the TBS5980 manufacturer sources on which this driver is based didn't
 change for more than one and a half years (since when I started to
 collect manufacturer source archives) I'm quite confident that not much
 maintenance will be necessary.
 
 Firmware:
 -
 
 All required firmware except for the TBS5921 is available at
 http://www.tbsdtv.com/download/ (manufacturer website). The tda10071
 firmware required additionally for the TBS5921 is already supported by
 the get_dvb_firmware script of the kernel.
 
 Due to the way the manufacturer handles software distribution I can't
 include the TBS firmware in the get_dvb_firmware script (no archive url,
 archive files updated every few months under a different file name).
 
 Notes:
 --
 
 The ifdefs in the driver will go away by a followup patch after a
 necessary patch to some frontends.
 
 Please go on easy with me. I'm usually not writing kernel drivers. And
 I'm neither young nor healthy enough for flame wars.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/3] TBS USB drivers (DVB-S/S2) - basic driver

2014-03-26 Thread Andreas Steinmetz
[Please CC me on replies, I'm not subscribed]

The patch adds a driver for TBS USB DVB-S/S2 devices for which complete
GPLv2 code exists. Code was taken from:

http://www.tbsdtv.com/download/
https://bitbucket.org/CrazyCat/linux-tbs-drivers/
https://bitbucket.org/updatelee/v4l-updatelee

Supported devices:
--

TBS5980 - complete open source by manufacturer, current device
TBS5928 - complete open source by manufacturer, old device
TBS5920 - complete open source by manufacturer, old device
TBS5910 - complete open source by manufacturer, old device
TBS5925 - open source by manufacturer except 13V/18V control,
  voltage switching of TBS5980 however works,
  current device
TBS5921 - open source from CrazyCat's bitbucket repository,
  old device

Unsupported devices:


TBS5922 - mostly closed source, current device
TBS5990 - mostly closed source, current device
TBS with USB PID 0x2601 - very old device for which the actual
hardware used couldn't be determined.

General:


I do not have any manufacturer relationship. I'm just a user of TBS5980
and TBS5925 which work quite well as far as the hardware is concerned.

I'm sufficiently annoyed, however, by the manufacturer's driver build
system which actually is an old v4l tree replacing the kernel's current
v4l tree. Thus I have reworked all available open source code for the
TBS USB DVB-S/S2 hardware into a combined driver that is working with
the current kernel.

Testing:


TBS5925 gets used daily and is working fine.
TBS5980 gets used daily minus an actual CAM and is working fine without
a CAM.

The old devices can't be tested by me, I don't own them and they are not
sold anymore.

Maintenance:


As a TBS5925/TBS5980 user I'm willing to maintain the driver as far as
this is possible (see below).

Regarding the older devices I'm willing to fix bugs for owners of these
devices as long as I did introduce them in my combined driver.

What I cannot do for any device is to fix any problems that would
require manufacturer support or manufacturer documentation.

As the TBS5980 manufacturer sources on which this driver is based didn't
change for more than one and a half years (since when I started to
collect manufacturer source archives) I'm quite confident that not much
maintenance will be necessary.

Firmware:
-

All required firmware except for the TBS5921 is available at
http://www.tbsdtv.com/download/ (manufacturer website). The tda10071
firmware required additionally for the TBS5921 is already supported by
the get_dvb_firmware script of the kernel.

Due to the way the manufacturer handles software distribution I can't
include the TBS firmware in the get_dvb_firmware script (no archive url,
archive files updated every few months under a different file name).

Notes:
--

The ifdefs in the driver will go away by a followup patch after a
necessary patch to some frontends.

Please go on easy with me. I'm usually not writing kernel drivers. And
I'm neither young nor healthy enough for flame wars.
-- 
Andreas Steinmetz   SPAMmers use robot...@domdv.de
Signed-off-by: Andreas Steinmetz a...@domdv.de

diff -rNup v4l-dvb.orig/drivers/media/dvb-core/dvb-usb-ids.h v4l-dvb/drivers/media/dvb-core/dvb-usb-ids.h
--- v4l-dvb.orig/drivers/media/dvb-core/dvb-usb-ids.h	2014-03-26 15:03:13.399501288 +0100
+++ v4l-dvb/drivers/media/dvb-core/dvb-usb-ids.h	2014-03-26 15:19:08.658682532 +0100
@@ -70,6 +70,7 @@
 #define USB_VID_EVOLUTEPC			0x1e59
 #define USB_VID_AZUREWAVE			0x13d3
 #define USB_VID_TECHNISAT			0x14f7
+#define USB_VID_TENOW0x734c
 
 /* Product IDs */
 #define USB_PID_ADSTECH_USB2_COLD			0xa333
@@ -375,4 +376,10 @@
 #define USB_PID_CTVDIGDUAL_V20xe410
 #define USB_PID_PCTV_2002E  0x025c
 #define USB_PID_PCTV_2002E_SE   0x025d
+#define USB_PID_TENOW_TBS59100x5910
+#define USB_PID_TENOW_TBS59200x5920
+#define USB_PID_TENOW_TBS59210x5921
+#define USB_PID_TENOW_TBS59250x5925
+#define USB_PID_TENOW_TBS59280x5928
+#define USB_PID_TENOW_TBS59800x5980
 #endif
diff -rNup v4l-dvb.orig/drivers/media/usb/dvb-usb/Kconfig v4l-dvb/drivers/media/usb/dvb-usb/Kconfig
--- v4l-dvb.orig/drivers/media/usb/dvb-usb/Kconfig	2014-03-26 14:00:26.134339135 +0100
+++ v4l-dvb/drivers/media/usb/dvb-usb/Kconfig	2014-03-26 15:23:38.585581745 +0100
@@ -317,3 +317,23 @@ config DVB_USB_TECHNISAT_USB2
 	select DVB_STV6110x if MEDIA_SUBDRV_AUTOSELECT
 	help
 	  Say Y here to support the Technisat USB2 DVB-S/S2 device
+
+config DVB_USB_TBS
+	tristate TurboSight DVB-S/S2 USB2.0 support
+	depends on DVB_USB
+	select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT
+	select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT
+	select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT
+	select DVB_CX24116 if MEDIA_SUBDRV_AUTOSELECT
+	select DVB_TDA10071 if MEDIA_SUBDRV_AUTOSELECT
+	select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT
+	select DVB_STV0288 if