Re: Preliminary results with an SN9C2028 camera

2009-05-19 Thread Hans de Goede



On 05/16/2009 12:31 AM, Theodore Kilgore wrote:


I decided recently to work on support for the SN9C2028 dual-mode
cameras, which are supported as still cameras in
libgphoto2/camlibs/sonix. Today, I succeeded in getting three frames out
of one of them, using svv -gr, and I was able to convert two of the
three frames to nice images using the same decompression algorithm which
is used for the cameras in stillcam mode.

There is a lot of work to do yet: support for all appropriate resolution
settings (which are what? I do not yet know), support for all known
cameras for which I can chase down an owner, and incorporation of the
decompression code in libv4l.

However, I thought you might like to know that some success has been
achieved.



Cool!

I recently got a vivitar mini digital camera, usb id 093a 010e,
CD302N according to gphoto, which also is a dual mode camera. It would
be nice to get the webcam mode on this one supported too. Do you know
if there has already been some base work done on that ?

Regards,

Hans
--
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


Re: [PATCH 0/2] V4L: Add BCM2048 radio driver

2009-05-19 Thread Eero Nurkkala
On Tue, 2009-05-12 at 09:10 +0200, ext Hans Verkuil wrote:
 On Tuesday 12 May 2009 09:03:42 Eero Nurkkala wrote:
  On Tue, 2009-05-12 at 08:51 +0200, ext Hans Verkuil wrote:
   I recommend that you move the RDS decoder code into an rds library in
   the v4l2-apps directory of the v4l-dvb tree. As you say, the rds
   decoder implementation does not belong in the driver, but it would be
   very nice to have it as a library.
 
  Quick question, is there a RDS decoder library already out there?
  Or would it be the case it needs to be done from the scratch?
 
 Yes, here: http://rdsd.berlios.de/
 
 However, it's badly written and overly complicated. We need something much 
 simpler, doing just the basic decoding.
 

Ok. I checked these libraries. Quickly looking they appear somewhat
complicated as you mentioned. That's written in c++ like convention...

If I'd have time, I'd redo all of that =)

   Such region tables do not belong in a driver IMHO. These too should go
   to a userspace library (libv4l2util? It already contains frequency
   tables for TV).
 
  That's correct. Is there a link to this library?
 
 It's in the v4l2-apps directory of the main v4l-dvb repository.
 
   A more general comment: this driver should be split into two parts: the
   radio tuner core should really be implemented using the tuner API
   similar to the tea5767 radio tuner driver. That way this radio tuner
   driver can be reused when it is placed on e.g. a TV tuner card.
   However, the tuner API is missing functionality for e.g. RDS.
   Alternatively, the core driver can be rewritten as an v4l2_subdev
   driver, again allowing reuse in other drivers.
 
  Hmm. This chip is integrated on Bluetooth silicon, so could you please
  elaborate how it could be reused with a TV tuner? (Maybe I didn't just
  get the point, or if the manufacturer decides to integrate (in the
  future) the chip with TV tuner card, or someone wishes to use other
  manufacturers' TV tuner, but this radio chip at the same time?)
 
 Hmm, I need to think about this. BTW, is there a datasheet of some kind 
 available for this chip?
 

I could try arrange you one if you really wish and need to have one?

 Regards,
 
   Hans
 


--
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


Re: [PULL] http://linuxtv.org/hg/~awalls/v4l-dvb

2009-05-19 Thread Andy Walls
On Mon, 2009-05-18 at 21:41 -0700, Matt Beadon wrote:
 Hi there,
 I'm not really following the technical discussion here but I was
 hoping that one of you could let me know if this patch is going into
 the source tree and more specifically when I could pull it from
 mercurial?
 
 thanks
 Matt
 
 On Thu, May 14, 2009 at 6:25 PM, hermann pitton
 hermann-pit...@arcor.de wrote:
 
   
That is this MK4 tuner=54 stuff, IIRC. (no tda9887)
 
 
 The follow up you might have and I'm not subscribed to
 ivtv.devel.
 (it always worked well nevertheless, tuner=57 was meant)
 
   The TCL MNM05-4 appears to have a TDA9887 based on tuner
 chip
   autodetection:
  
 
 
 Eventually what really happened is here.
 
switch (priv-type) {
case TUNER_TENA_9533_DI:
case TUNER_YMEC_TVF_5533MF:
tuner_dbg(This tuner doesn't have FM. 
  Most cards have a TEA5767 for FM
 \n);
return 0;
case TUNER_PHILIPS_FM1216ME_MK3:
 
 
 Mauro hacked a tea5767 without knowing what chip it might be
 even at all
 on that YMEC with MF (F!)
 
 Also, the real name of that TENA 9533 DI is DIF ;)
 and I'm also the pidgin not updating the comment to plural.
 
 I dropped the F on that one to not improve the confusion
 further, they
 did interchange tuner PCBs, but naming convention was not
 valid at all.
 
 For TCL I can say the F is valid for radio support on the
 tuner can, I
 think ;)

Matt,

A change is already in the latest v4l-dvb repo:

http://linuxtv.org/hg/v4l-dvb

that has this entry in tveeprom.c:

{ TUNER_PHILIPS_FM1236_MK3, TCL MNM05-4},

so that should get you operational.

I haven't acted on inhibiting attempts to use FM radio with the tuner
can, simply because I can't find the spec's for it, nor do I have one to
play with.  But too me that's not critical because the omission is
self-limiting: if you somehow coax the cx18 driver to try and use FM
radio, contrary to the data on the EEPROM, and it doesn't work, you
likely wouldn't try again. ;)


I think I get what Hermann is saying: The F on the tuner can doesn't
always mean FM radio.  In the case of the TCL M(F)MN05-4 tuners, the F
probably does have some meaning.  I suspect it means FM baseband audio
is not available from the tuner.  Since the tuner can still has a
TDA988x chip, I'm guessing FM *might* be available via the SIF output of
the tuner.

The cx18 driver currently only decodes SIF for TV audio and uses
baseband for FM audio. The cx18 driver software isn't set up to decode
FM from the SIF output, even if it is there.


Regards,
Andy



--
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] [09051_40] Siano - kconfig update

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242734522 -10800
# Node ID c74502f4c8e97bd9cec9656793bbabc11fb72ab4
# Parent  315bc4b65b4f527c4f9bc4fe3290e10f07975437
[09051_40] Siano - kconfig update

From: Uri Shkolnik u...@siano-ms.com

This patches comes to solve the comments on Siano's patch
0905_10. It updates the kconfig to support multi-modules build.
Note that the dependency on dvb_core is for the (sms)dvb module
alone, since the drivers set may work with another adapter.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 315bc4b65b4f -r c74502f4c8e9 linux/drivers/media/dvb/siano/Kconfig
--- a/linux/drivers/media/dvb/siano/Kconfig Sun May 17 12:28:55 2009 +
+++ b/linux/drivers/media/dvb/siano/Kconfig Tue May 19 15:02:02 2009 +0300
@@ -2,25 +2,40 @@
 # Siano Mobile Silicon Digital TV device configuration
 #
 
-config DVB_SIANO_SMS1XXX
-   tristate Siano SMS1XXX USB dongle support
-   depends on DVB_CORE  USB
+config SMS_SIANO_MDTV
+   tristate Siano SMS1xxx based MDTV receiver
+   default m
---help---
- Choose Y here if you have a USB dongle with a SMS1XXX chipset.
+   Choose Y or M here if you have MDTV receiver with a Siano chipset.
 
- To compile this driver as a module, choose M here: the
- module will be called sms1xxx.
+   To compile this driver as a module, choose M here
+   (The modules will be called smsmdtv).
 
-config DVB_SIANO_SMS1XXX_SMS_IDS
-   bool Enable support for Siano Mobile Silicon default USB IDs
-   depends on DVB_SIANO_SMS1XXX
-   default y
+   Note: All dependents, if selected, will be part of this module.
+
+   Further documentation on this driver can be found on the WWW
+   at http://www.siano-ms.com/
+
+if SMS_SIANO_MDTV
+menu Siano module components
+
+# Kernel sub systems support
+config SMS_DVB3_SUBSYS
+   tristate DVB v.3 Subsystem support
+   depends on DVB_CORE
+   default m if DVB_CORE
---help---
- Choose Y here if you have a USB dongle with a SMS1XXX chipset
- that uses Siano Mobile Silicon's default usb vid:pid.
+   Choose if you would like to have DVB v.3 kernel sub-system support.
 
- Choose N here if you would prefer to use Siano's external driver.
+# Hardware interfaces support
 
- Further documentation on this driver can be found on the WWW at
- http://www.siano-ms.com/.
+config SMS_USB_DRV
+   tristate USB interface support
+   depends on USB
+   default m if USB
+   ---help---
+   Choose if you would like to have Siano's support for USB interface
 
+
+endmenu
+endif # SMS_SIANO_MDTV



  
--
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] [09051_41] Siano - kconfig update

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242734522 -10800
# Node ID c74502f4c8e97bd9cec9656793bbabc11fb72ab4
# Parent  315bc4b65b4f527c4f9bc4fe3290e10f07975437
[09051_41] Siano - kconfig update

From: Uri Shkolnik u...@siano-ms.com

This patches comes to solve the comments on Siano's patch
0905_10. It updates the kconfig and makefile
to support multi-modules build.
Note that the dependency on dvb_core is for the (sms)dvb module
alone, since the drivers set may work with another adapter.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 315bc4b65b4f -r c74502f4c8e9 linux/drivers/media/dvb/siano/Kconfig
--- a/linux/drivers/media/dvb/siano/Kconfig Sun May 17 12:28:55 2009 +
+++ b/linux/drivers/media/dvb/siano/Kconfig Tue May 19 15:02:02 2009 +0300
@@ -2,25 +2,40 @@
 # Siano Mobile Silicon Digital TV device configuration
 #
 
-config DVB_SIANO_SMS1XXX
-   tristate Siano SMS1XXX USB dongle support
-   depends on DVB_CORE  USB
+config SMS_SIANO_MDTV
+   tristate Siano SMS1xxx based MDTV receiver
+   default m
---help---
- Choose Y here if you have a USB dongle with a SMS1XXX chipset.
+   Choose Y or M here if you have MDTV receiver with a Siano chipset.
 
- To compile this driver as a module, choose M here: the
- module will be called sms1xxx.
+   To compile this driver as a module, choose M here
+   (The modules will be called smsmdtv).
 
-config DVB_SIANO_SMS1XXX_SMS_IDS
-   bool Enable support for Siano Mobile Silicon default USB IDs
-   depends on DVB_SIANO_SMS1XXX
-   default y
+   Note: All dependents, if selected, will be part of this module.
+
+   Further documentation on this driver can be found on the WWW
+   at http://www.siano-ms.com/
+
+if SMS_SIANO_MDTV
+menu Siano module components
+
+# Kernel sub systems support
+config SMS_DVB3_SUBSYS
+   tristate DVB v.3 Subsystem support
+   depends on DVB_CORE
+   default m if DVB_CORE
---help---
- Choose Y here if you have a USB dongle with a SMS1XXX chipset
- that uses Siano Mobile Silicon's default usb vid:pid.
+   Choose if you would like to have DVB v.3 kernel sub-system support.
 
- Choose N here if you would prefer to use Siano's external driver.
+# Hardware interfaces support
 
- Further documentation on this driver can be found on the WWW at
- http://www.siano-ms.com/.
+config SMS_USB_DRV
+   tristate USB interface support
+   depends on USB
+   default m if USB
+   ---help---
+   Choose if you would like to have Siano's support for USB interface
 
+
+endmenu
+endif # SMS_SIANO_MDTV

diff -r c74502f4c8e9 -r c405857480ba linux/drivers/media/dvb/siano/Makefile
--- a/linux/drivers/media/dvb/siano/MakefileTue May 19 15:02:02 2009 +0300
+++ b/linux/drivers/media/dvb/siano/MakefileTue May 19 15:48:20 2009 +0300
@@ -1,8 +1,9 @@ sms1xxx-objs := smscoreapi.o sms-cards.o
-sms1xxx-objs := smscoreapi.o sms-cards.o smsendian.o smsir.o
 
-obj-$(CONFIG_DVB_SIANO_SMS1XXX) += sms1xxx.o
-obj-$(CONFIG_DVB_SIANO_SMS1XXX) += smsusb.o
-obj-$(CONFIG_DVB_SIANO_SMS1XXX) += smsdvb.o
+smsmdtv-objs := smscoreapi.o sms-cards.o smsendian.o smsir.o
+
+obj-$(CONFIG_SMS_SIANO_MDTV) += smsmdtv.o
+obj-$(CONFIG_SMS_USB_DRV) += smsusb.o
+obj-$(CONFIG_SMS_DVB3_SUBSYS) += smsdvb.o
 
 EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core
 



  
--
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] [09051_42] Siano: cards - add two additional (USB) devices

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242737787 -10800
# Node ID f8e348f2f312e23c42b263738d555221fba844b2
# Parent  c405857480bae1fa471dedc6fe86c4a897edd696
[09051_42] Siano: cards - add two additional (USB) devices

From: Uri Shkolnik u...@siano-ms.com

Add two additional USB targets, add these to the 'cards' modules
and to the 'smsusb' module.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r c405857480ba -r f8e348f2f312 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 15:48:20 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 15:56:27 2009 +0300
@@ -84,6 +84,16 @@ static struct sms_board sms_boards[] = {
.type   = SMS_NOVA_B0,
.fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
.lna_ctrl  = -1,
+   },
+   [SMS1XXX_BOARD_SIANO_NICE] = {
+   /* 11 */
+   .name = Siano Nice Digital Receiver,
+   .type = SMS_NOVA_B0,
+   },
+   [SMS1XXX_BOARD_SIANO_VENICE] = {
+   /* 12 */
+   .name = Siano Venice Digital Receiver,
+   .type = SMS_VEGA,
},
 };
 
diff -r c405857480ba -r f8e348f2f312 linux/drivers/media/dvb/siano/sms-cards.h
--- a/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 15:48:20 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 15:56:27 2009 +0300
@@ -35,6 +35,8 @@
 #define SMS1XXX_BOARD_HAUPPAUGE_WINDHAM 8
 #define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD 9
 #define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 10
+#define SMS1XXX_BOARD_SIANO_NICE   11
+#define SMS1XXX_BOARD_SIANO_VENICE 12
 
 struct sms_board_gpio_cfg {
int lna_vhf_exist;
diff -r c405857480ba -r f8e348f2f312 linux/drivers/media/dvb/siano/smsusb.c
--- a/linux/drivers/media/dvb/siano/smsusb.cTue May 19 15:48:20 2009 +0300
+++ b/linux/drivers/media/dvb/siano/smsusb.cTue May 19 15:56:27 2009 +0300
@@ -531,8 +531,13 @@ struct usb_device_id smsusb_id_table[] =
.driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
{ USB_DEVICE(0x2040, 0x5590),
.driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
-   { } /* Terminating entry */
-};
+   { USB_DEVICE(0x187f, 0x0202),
+   .driver_info = SMS1XXX_BOARD_SIANO_NICE },
+   { USB_DEVICE(0x187f, 0x0301),
+   .driver_info = SMS1XXX_BOARD_SIANO_VENICE },
+   { } /* Terminating entry */
+   };
+
 MODULE_DEVICE_TABLE(usb, smsusb_id_table);
 
 static struct usb_driver smsusb_driver = {



  
--
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


[PULL] http://linuxtv.org/hg/~pinchartl/uvcvideo/

2009-05-19 Thread Laurent Pinchart
Mauro,

Please pull from http://linuxtv.org/hg/~pinchartl/uvcvideo/

for the following 4 changesets:

uvcvideo: Parse frame descriptors with non-continuous indexes.
uvcvideo: Add missing whitespaces to multi-line format strings.
uvcvideo: Start status polling on device open
uvcvideo: Add Lenovo Thinkpad SL400 to device list comments

 uvc_driver.c |   43 ---
 uvc_status.c |   21 ++---
 uvc_v4l2.c   |   14 ++
 uvc_video.c  |   17 +++--
 uvcvideo.h   |3 +++
 5 files changed, 58 insertions(+), 40 deletions(-)

Thanks,

Laurent Pinchart

--
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


Re: [PATCH] [0905_14] Siano: USB - move the device id table to the cards module

2009-05-19 Thread Uri Shkolnik



--- On Mon, 5/18/09, Mauro Carvalho Chehab mche...@infradead.org wrote:

 From: Mauro Carvalho Chehab mche...@infradead.org
 Subject: Re: [PATCH] [0905_14] Siano: USB - move the device id table to the 
 cards module
 To: Uri Shkolnik uri...@yahoo.com
 Cc: LinuxML linux-media@vger.kernel.org
 Date: Monday, May 18, 2009, 9:41 AM
 Em Thu, 14 May 2009 12:29:35 -0700
 (PDT)
 Uri Shkolnik uri...@yahoo.com
 escreveu:
 
 The idea of moving it to sms-cards.c is interesting,
 however, I don't think
 this will work fine, since having the usb probing code at
 one module and the
 table on another will break for udev.
 
 Also, by applying this patch, module loader would be
 broken:
 
 WARNING: smsusb_id_table [/home/v4l/master/v4l/smsusb.ko]
 undefined!
 
 I can see a few alternatives:
 
 1) keep as-is;
 2) move usb init code to sms-cards;
 3) break sms-cards into smaller files, like sms-cards-usb
 (for usb devices);
 4) having the table declared as static into some header
 file.
 


Mauro,

That patch has been suppressed by me @ the patchwork shortly after I submit it.

The ID tables (for USB and for SDIO) devices will remain in their corresponding 
interfaces drivers.

The cards/targets will keep to be managed by board ID (sms-cards.h), no need to 
further break the sms-cards to mini-modules, there is nothing to gain with that 
architecture. 


10x,

Uri


  
--
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] [09051_43] Siano: smssdio - revert to stand alone module

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242739840 -10800
# Node ID 08e292f80f37496d8d4b43a542f518196eaa4dc0
# Parent  f8e348f2f312e23c42b263738d555221fba844b2
[09051_43] Siano: smssdio - revert to stand alone module

From: Uri Shkolnik u...@siano-ms.com

Make the SDIO interface driver a stand alone module.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r f8e348f2f312 -r 08e292f80f37 linux/drivers/media/dvb/siano/smssdio.c
--- a/linux/drivers/media/dvb/siano/smssdio.c   Tue May 19 15:56:27 2009 +0300
+++ b/linux/drivers/media/dvb/siano/smssdio.c   Tue May 19 16:30:40 2009 +0300
@@ -332,7 +332,7 @@ static struct sdio_driver smssdio_driver
 /* Module functions*/
 /***/
 
-int smssdio_register(void)
+int smssdio_module_init(void)
 {
int ret = 0;
 
@@ -344,11 +344,14 @@ int smssdio_register(void)
return ret;
 }
 
-void smssdio_unregister(void)
+void smssdio_module_exit(void)
 {
sdio_unregister_driver(smssdio_driver);
 }
 
+module_init(smssdio_module_init);
+module_exit(smssdio_module_exit);
+
 MODULE_DESCRIPTION(Siano SMS1xxx SDIO driver);
 MODULE_AUTHOR(Pierre Ossman);
 MODULE_LICENSE(GPL);



  
--
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] [09051_43] Siano: Add new GPIO management interface

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242744570 -10800
# Node ID 749c11a362a9fad1992809007247d5c76c35bfc9
# Parent  08e292f80f37496d8d4b43a542f518196eaa4dc0
[09051_43] Siano: Add new GPIO management interface

From: Uri Shkolnik u...@siano-ms.com

Add new GPIO management interface to replace old (buggy) one.
Keeping old interface intact for now.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 08e292f80f37 -r 749c11a362a9 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 16:30:40 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 17:49:30 2009 +0300
@@ -109,7 +109,7 @@ static int sms_set_gpio(struct smscore_d
 {
int lvl, ret;
u32 gpio;
-   struct smscore_gpio_config gpioconfig = {
+   struct smscore_config_gpio gpioconfig = {
.direction= SMS_GPIO_DIRECTION_OUTPUT,
.pullupdown   = SMS_GPIO_PULLUPDOWN_NONE,
.inputcharacteristics = SMS_GPIO_INPUTCHARACTERISTICS_NORMAL,
diff -r 08e292f80f37 -r 749c11a362a9 linux/drivers/media/dvb/siano/smscoreapi.c
--- a/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 16:30:40 
2009 +0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 17:49:30 
2009 +0300
@@ -1331,8 +1331,9 @@ static int smscore_map_common_buffer(str
 }
 #endif
 
+/* old GPIO managments implementation */
 int smscore_configure_gpio(struct smscore_device_t *coredev, u32 pin,
-  struct smscore_gpio_config *pinconfig)
+  struct smscore_config_gpio *pinconfig)
 {
struct {
struct SmsMsgHdr_ST hdr;
@@ -1399,6 +1400,238 @@ int smscore_set_gpio(struct smscore_devi
 
return coredev-sendrequest_handler(coredev-context,
msg, sizeof(msg));
+}
+
+/* new GPIO managment implementation */
+static int GetGpioPinParams(u32 PinNum, u32 *pTranslatedPinNum,
+   u32 *pGroupNum, u32 *pGroupCfg) {
+
+   *pGroupCfg = 1;
+
+   if (PinNum = 0  PinNum = 1) {
+   *pTranslatedPinNum = 0;
+   *pGroupNum = 9;
+   *pGroupCfg = 2;
+   } else if (PinNum = 2  PinNum = 6) {
+   *pTranslatedPinNum = 2;
+   *pGroupNum = 0;
+   *pGroupCfg = 2;
+   } else if (PinNum = 7  PinNum = 11) {
+   *pTranslatedPinNum = 7;
+   *pGroupNum = 1;
+   } else if (PinNum = 12  PinNum = 15) {
+   *pTranslatedPinNum = 12;
+   *pGroupNum = 2;
+   *pGroupCfg = 3;
+   } else if (PinNum == 16) {
+   *pTranslatedPinNum = 16;
+   *pGroupNum = 23;
+   } else if (PinNum = 17  PinNum = 24) {
+   *pTranslatedPinNum = 17;
+   *pGroupNum = 3;
+   } else if (PinNum == 25) {
+   *pTranslatedPinNum = 25;
+   *pGroupNum = 6;
+   } else if (PinNum = 26  PinNum = 28) {
+   *pTranslatedPinNum = 26;
+   *pGroupNum = 4;
+   } else if (PinNum == 29) {
+   *pTranslatedPinNum = 29;
+   *pGroupNum = 5;
+   *pGroupCfg = 2;
+   } else if (PinNum == 30) {
+   *pTranslatedPinNum = 30;
+   *pGroupNum = 8;
+   } else if (PinNum == 31) {
+   *pTranslatedPinNum = 31;
+   *pGroupNum = 17;
+   } else
+   return -1;
+
+   *pGroupCfg = 24;
+
+   return 0;
+}
+
+int smscore_gpio_configure(struct smscore_device_t *coredev, u8 PinNum,
+   struct smscore_gpio_config *pGpioConfig) {
+
+   u32 totalLen;
+   u32 TranslatedPinNum;
+   u32 GroupNum;
+   u32 ElectricChar;
+   u32 groupCfg;
+   void *buffer;
+   int rc;
+
+   struct SetGpioMsg {
+   struct SmsMsgHdr_ST xMsgHeader;
+   u32 msgData[6];
+   } *pMsg;
+
+
+   if (PinNum  MAX_GPIO_PIN_NUMBER)
+   return -EINVAL;
+
+   if (pGpioConfig == NULL)
+   return -EINVAL;
+
+   totalLen = sizeof(struct SmsMsgHdr_ST) + (sizeof(u32) * 6);
+
+   buffer = kmalloc(totalLen + SMS_DMA_ALIGNMENT,
+   GFP_KERNEL | GFP_DMA);
+   if (!buffer)
+   return -ENOMEM;
+
+   pMsg = (struct SetGpioMsg *) SMS_ALIGN_ADDRESS(buffer);
+
+   pMsg-xMsgHeader.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
+   pMsg-xMsgHeader.msgDstId = HIF_TASK;
+   pMsg-xMsgHeader.msgFlags = 0;
+   pMsg-xMsgHeader.msgLength = (u16) totalLen;
+   pMsg-msgData[0] = PinNum;
+
+   if (!(coredev-device_flags  SMS_DEVICE_FAMILY2)) {
+   pMsg-xMsgHeader.msgType = MSG_SMS_GPIO_CONFIG_REQ;
+   if (GetGpioPinParams(PinNum, TranslatedPinNum, GroupNum,
+   groupCfg) != 0)
+   return -EINVAL;
+
+   pMsg-msgData[1] = 

[PATCH] [09051_44] Siano: smscore - fix some new GPIO definitions names

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242746121 -10800
# Node ID 2b865fa7f195524bc9e8557dac472140755058dd
# Parent  749c11a362a9fad1992809007247d5c76c35bfc9
[09051_44] Siano: smscore - fix some new GPIO definitions names

From: Uri Shkolnik u...@siano-ms.com

Fix some definitions' names, in order to emphasize the names
differences between the old and new GPIO implementations.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 749c11a362a9 -r 2b865fa7f195 linux/drivers/media/dvb/siano/smscoreapi.h
--- a/linux/drivers/media/dvb/siano/smscoreapi.hTue May 19 17:49:30 
2009 +0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.hTue May 19 18:15:21 
2009 +0300
@@ -581,10 +581,10 @@ struct smscore_gpio_config {
 #define SMS_GPIO_DIRECTION_OUTPUT 1
u8 Direction;
 
-#define SMS_GPIO_PULLUPDOWN_NONE 0
-#define SMS_GPIO_PULLUPDOWN_PULLDOWN 1
-#define SMS_GPIO_PULLUPDOWN_PULLUP   2
-#define SMS_GPIO_PULLUPDOWN_KEEPER   3
+#define SMS_GPIO_PULL_UP_DOWN_NONE 0
+#define SMS_GPIO_PULL_UP_DOWN_PULLDOWN 1
+#define SMS_GPIO_PULL_UP_DOWN_PULLUP   2
+#define SMS_GPIO_PULL_UP_DOWN_KEEPER   3
u8 PullUpDown;
 
 #define SMS_GPIO_INPUT_CHARACTERISTICS_NORMAL  0
@@ -608,13 +608,12 @@ struct smscore_gpio_config {
 
 #define SMS_GPIO_OUTPUT_DRIVING_1_5mA  0 /* 11xx */
 #define SMS_GPIO_OUTPUT_DRIVING_2_8mA  1 /* 11xx */
-#define SMS_GPIO_OUTPUT_DRIVING_4mA2 /* 11xx */
-#define SMS_GPIO_OUTPUT_DRIVING_7mA3 /* 11xx */
-#define SMS_GPIO_OUTPUT_DRIVING_10mA   4 /* 11xx */
-#define SMS_GPIO_OUTPUT_DRIVING_11mA   5 /* 11xx */
-#define SMS_GPIO_OUTPUT_DRIVING_14mA   6 /* 11xx */
-#undef SMS_GPIO_OUTPUT_DRIVING_16mA
-#define SMS_GPIO_OUTPUT_DRIVING_16mA   7 /* 11xx */
+#define SMS_GPIO_OUTPUT_DRIVING_4mA2 /* 11xx */
+#define SMS_GPIO_OUTPUT_DRIVING_7mA3 /* 11xx */
+#define SMS_GPIO_OUTPUT_DRIVING_10mA   4 /* 11xx */
+#define SMS_GPIO_OUTPUT_DRIVING_11mA   5 /* 11xx */
+#define SMS_GPIO_OUTPUT_DRIVING_14mA   6 /* 11xx */
+#define SMS_GPIO_OUTPUT_DRIVING_16mA   7 /* 11xx */
u8 OutputDriving;
 };
 



  
--
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] [09051_45] Siano: smscards - add board (target) events

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242746343 -10800
# Node ID 757712d337876acd47621f6a2712026c732da2c4
# Parent  2b865fa7f195524bc9e8557dac472140755058dd
[09051_45] Siano: smscards - add board (target) events

From: Uri Shkolnik u...@siano-ms.com

Add events handling for targets. All board-specific
(target specific) should reside here.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 2b865fa7f195 -r 757712d33787 linux/drivers/media/dvb/siano/sms-cards.h
--- a/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 18:15:21 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 18:19:03 2009 +0300
@@ -85,6 +85,30 @@ struct sms_board *sms_get_board(int id);
 
 extern struct smscore_device_t *coredev;
 
+enum SMS_BOARD_EVENTS {
+   BOARD_EVENT_POWER_INIT,
+   BOARD_EVENT_POWER_SUSPEND,
+   BOARD_EVENT_POWER_RESUME,
+   BOARD_EVENT_BIND,
+   BOARD_EVENT_SCAN_PROG,
+   BOARD_EVENT_SCAN_COMP,
+   BOARD_EVENT_EMERGENCY_WARNING_SIGNAL,
+   BOARD_EVENT_FE_LOCK,
+   BOARD_EVENT_FE_UNLOCK,
+   BOARD_EVENT_DEMOD_LOCK,
+   BOARD_EVENT_DEMOD_UNLOCK,
+   BOARD_EVENT_RECEPTION_MAX_4,
+   BOARD_EVENT_RECEPTION_3,
+   BOARD_EVENT_RECEPTION_2,
+   BOARD_EVENT_RECEPTION_1,
+   BOARD_EVENT_RECEPTION_LOST_0,
+   BOARD_EVENT_MULTIPLEX_OK,
+   BOARD_EVENT_MULTIPLEX_ERRORS
+};
+
+int sms_board_event(struct smscore_device_t *coredev,
+   enum SMS_BOARD_EVENTS gevent);
+
 int sms_board_setup(struct smscore_device_t *coredev);
 
 #define SMS_LED_OFF 0



  
--
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] [09051_45_1] Siano: smscards - add board (target) events

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242746621 -10800
# Node ID 37df2d513a68b920ba4ceed0220cf6915d2d574e
# Parent  2b865fa7f195524bc9e8557dac472140755058dd
[09051_45_1] Siano: smscards - add board (target) events

From: Uri Shkolnik u...@siano-ms.com

Add events handling for targets. All board-specific
(target specific) should reside here.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 2b865fa7f195 -r 37df2d513a68 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 18:15:21 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 18:23:41 2009 +0300
@@ -104,6 +104,173 @@ struct sms_board *sms_get_board(int id)
return sms_boards[id];
 }
 EXPORT_SYMBOL_GPL(sms_get_board);
+static inline void sms_gpio_assign_11xx_default_led_config(
+   struct smscore_gpio_config *pGpioConfig) {
+   pGpioConfig-Direction = SMS_GPIO_DIRECTION_OUTPUT;
+   pGpioConfig-InputCharacteristics =
+   SMS_GPIO_INPUT_CHARACTERISTICS_NORMAL;
+   pGpioConfig-OutputDriving = SMS_GPIO_OUTPUT_DRIVING_4mA;
+   pGpioConfig-OutputSlewRate = SMS_GPIO_OUTPUT_SLEW_RATE_0_45_V_NS;
+   pGpioConfig-PullUpDown = SMS_GPIO_PULL_UP_DOWN_NONE;
+}
+
+int sms_board_event(struct smscore_device_t *coredev,
+   enum SMS_BOARD_EVENTS gevent) {
+   int board_id = smscore_get_board_id(coredev);
+   struct sms_board *board = sms_get_board(board_id);
+   struct smscore_gpio_config MyGpioConfig;
+
+   sms_gpio_assign_11xx_default_led_config(MyGpioConfig);
+
+   switch (gevent) {
+   case BOARD_EVENT_POWER_INIT: /* including hotplug */
+   switch (board_id) {
+   case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
+   /* set I/O and turn off all LEDs */
+   smscore_gpio_configure(coredev,
+   board-board_cfg.leds_power,
+   MyGpioConfig);
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.leds_power, 0);
+   smscore_gpio_configure(coredev, board-board_cfg.led0,
+   MyGpioConfig);
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.led0, 0);
+   smscore_gpio_configure(coredev, board-board_cfg.led1,
+   MyGpioConfig);
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.led1, 0);
+   break;
+   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
+   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
+   /* set I/O and turn off LNA */
+   smscore_gpio_configure(coredev,
+   board-board_cfg.foreign_lna0_ctrl,
+   MyGpioConfig);
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.foreign_lna0_ctrl,
+   0);
+   break;
+   }
+   break; /* BOARD_EVENT_BIND */
+
+   case BOARD_EVENT_POWER_SUSPEND:
+   switch (board_id) {
+   case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.leds_power, 0);
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.led0, 0);
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.led1, 0);
+   break;
+   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
+   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.foreign_lna0_ctrl,
+   0);
+   break;
+   }
+   break; /* BOARD_EVENT_POWER_SUSPEND */
+
+   case BOARD_EVENT_POWER_RESUME:
+   switch (board_id) {
+   case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.leds_power, 1);
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.led0, 1);
+   smscore_gpio_set_level(coredev,
+   board-board_cfg.led1, 0);
+   break;
+   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
+   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
+  

[PATCH] [09051_46] Siano: smsusb - remove redundant ifdef

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242746858 -10800
# Node ID 98895daafb42f8b0757fd608b29c53c80327520e
# Parent  37df2d513a68b920ba4ceed0220cf6915d2d574e
[09051_46] Siano: smsusb - remove redundant ifdef

From: Uri Shkolnik u...@siano-ms.com

Remove a redundant ifdef

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 37df2d513a68 -r 98895daafb42 linux/drivers/media/dvb/siano/smsusb.c
--- a/linux/drivers/media/dvb/siano/smsusb.cTue May 19 18:23:41 2009 +0300
+++ b/linux/drivers/media/dvb/siano/smsusb.cTue May 19 18:27:38 2009 +0300
@@ -489,7 +489,6 @@ static int smsusb_resume(struct usb_inte
 }
 
 struct usb_device_id smsusb_id_table[] = {
-#ifdef CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS
{ USB_DEVICE(0x187f, 0x0010),
.driver_info = SMS1XXX_BOARD_SIANO_STELLAR },
{ USB_DEVICE(0x187f, 0x0100),
@@ -500,7 +499,6 @@ struct usb_device_id smsusb_id_table[] =
.driver_info = SMS1XXX_BOARD_SIANO_NOVA_B },
{ USB_DEVICE(0x187f, 0x0300),
.driver_info = SMS1XXX_BOARD_SIANO_VEGA },
-#endif
{ USB_DEVICE(0x2040, 0x1700),
.driver_info = SMS1XXX_BOARD_HAUPPAUGE_CATAMOUNT },
{ USB_DEVICE(0x2040, 0x1800),



  
--
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] [09051_47] Siano: smsdvb - add DVB v3 events

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242747164 -10800
# Node ID 971d4cc0d4009650bd4752c6a9fc09755ef77baf
# Parent  98895daafb42f8b0757fd608b29c53c80327520e
[09051_47] Siano: smsdvb - add DVB v3 events

From: Uri Shkolnik u...@siano-ms.com

Add various DVB-API v3 events, those events will trig
target (card) events.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 98895daafb42 -r 971d4cc0d400 linux/drivers/media/dvb/siano/smsdvb.c
--- a/linux/drivers/media/dvb/siano/smsdvb.cTue May 19 18:27:38 2009 +0300
+++ b/linux/drivers/media/dvb/siano/smsdvb.cTue May 19 18:32:44 2009 +0300
@@ -66,6 +66,54 @@ MODULE_PARM_DESC(debug, set debug level
 /* Events that may come from DVB v3 adapter */
 static void sms_board_dvb3_event(struct smsdvb_client_t *client,
enum SMS_DVB3_EVENTS event) {
+
+   struct smscore_device_t *coredev = client-coredev;
+   switch (event) {
+   case DVB3_EVENT_INIT:
+   sms_debug(DVB3_EVENT_INIT);
+   sms_board_event(coredev, BOARD_EVENT_BIND);
+   break;
+   case DVB3_EVENT_SLEEP:
+   sms_debug(DVB3_EVENT_SLEEP);
+   sms_board_event(coredev, BOARD_EVENT_POWER_SUSPEND);
+   break;
+   case DVB3_EVENT_HOTPLUG:
+   sms_debug(DVB3_EVENT_HOTPLUG);
+   sms_board_event(coredev, BOARD_EVENT_POWER_INIT);
+   break;
+   case DVB3_EVENT_FE_LOCK:
+   if (client-event_fe_state != DVB3_EVENT_FE_LOCK) {
+   client-event_fe_state = DVB3_EVENT_FE_LOCK;
+   sms_debug(DVB3_EVENT_FE_LOCK);
+   sms_board_event(coredev, BOARD_EVENT_FE_LOCK);
+   }
+   break;
+   case DVB3_EVENT_FE_UNLOCK:
+   if (client-event_fe_state != DVB3_EVENT_FE_UNLOCK) {
+   client-event_fe_state = DVB3_EVENT_FE_UNLOCK;
+   sms_debug(DVB3_EVENT_FE_UNLOCK);
+   sms_board_event(coredev, BOARD_EVENT_FE_UNLOCK);
+   }
+   break;
+   case DVB3_EVENT_UNC_OK:
+   if (client-event_unc_state != DVB3_EVENT_UNC_OK) {
+   client-event_unc_state = DVB3_EVENT_UNC_OK;
+   sms_debug(DVB3_EVENT_UNC_OK);
+   sms_board_event(coredev, BOARD_EVENT_MULTIPLEX_OK);
+   }
+   break;
+   case DVB3_EVENT_UNC_ERR:
+   if (client-event_unc_state != DVB3_EVENT_UNC_ERR) {
+   client-event_unc_state = DVB3_EVENT_UNC_ERR;
+   sms_debug(DVB3_EVENT_UNC_ERR);
+   sms_board_event(coredev, BOARD_EVENT_MULTIPLEX_ERRORS);
+   }
+   break;
+
+   default:
+   sms_err(Unknown dvb3 api event);
+   break;
+   }
 }
 
 static int smsdvb_onresponse(void *context, struct smscore_buffer_t *cb)



  
--
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] [09051_48] Siano: smscore - remove redundant code

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242747487 -10800
# Node ID cfb4106f3ceaee9fe8f7e3acc9d4adec1baffe5e
# Parent  971d4cc0d4009650bd4752c6a9fc09755ef77baf
[09051_48] Siano: smscore - remove redundant code

From: Uri Shkolnik u...@siano-ms.com

remove redundant code, which in the past handled the
various components (now independent modules) registrations.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 971d4cc0d400 -r cfb4106f3cea linux/drivers/media/dvb/siano/smscoreapi.c
--- a/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 18:32:44 
2009 +0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 18:38:07 
2009 +0300
@@ -1645,99 +1645,11 @@ static int __init smscore_module_init(vo
INIT_LIST_HEAD(g_smscore_registry);
kmutex_init(g_smscore_registrylock);
 
-#if 0 /* def SMS_CHAR_CLIENT */
-   /* Char interface Register */
-   rc = smschar_register();
-   if (rc) {
-   sms_err(Error registering char device client.\n);
-   goto smschar_error;
-   }
-#endif
-
-#if 0 /* def SMS_DVB_CLIENT */
-   /* DVB Register */
-   rc = smsdvb_register();
-   if (rc) {
-   sms_err(Error registering DVB client.\n);
-   goto smsdvb_error;
-   }
-#endif
-
-#if 0 /* def SMS_NET_CLIENT */
-   /* DVB Register */
-   rc = smsnet_register();
-   if (rc) {
-   sms_err(Error registering Network client.\n);
-   goto smsnet_error;
-   }
-#endif
-
-#if 0 /* def SMS_USB_BUS_DRV */
-   /* USB Register */
-   rc = smsusb_register();
-   if (rc) {
-   sms_err(Error registering USB bus driver.\n);
-   goto sms_bus_drv_error;
-   }
-#endif
-
-#if 0 /* def SMS_SPI_BUS_DRV */
-   /* USB Register */
-   rc = smsspi_register();
-   if (rc) {
-   sms_err(Error registering spi bus driver.\n);
-   goto sms_bus_drv_error;
-   }
-#endif
-
-   return rc;
-#if 0
-sms_bus_drv_error:
-#endif /* 0 */
-#if 0 /* def SMS_NET_CLIENT */
-   smsnet_unregister();
-smsnet_error:
-#endif
-#if 0 /* def SMS_DVB_CLIENT */
-   smsdvb_unregister();
-smsdvb_error:
-#endif
-#if 0 /* def SMS_CHAR_CLIENT */
-   smschar_unregister();
-smschar_error:
-#endif
-   sms_debug(rc %d, rc);
-
return rc;
 }
 
 static void __exit smscore_module_exit(void)
 {
-#if 0 /* def SMS_CHAR_CLIENT */
-   /* Char interface UnRegister */
-   smschar_unregister();
-#endif
-
-#if 0 /* def SMS_DVB_CLIENT */
-   /* DVB UnRegister */
-   smsdvb_unregister();
-#endif
-
-#if 0 /* def SMS_NET_CLIENT */
-   /* NET UnRegister */
-   smsnet_unregister();
-#endif
-
-#if 0 /* def SMS_USB_BUS_DRV */
-   /* Unregister USB */
-   smsusb_unregister();
-#endif
-
-#if 0 /* def SMS_SPI_BUS_DRV */
-   /* Unregister SPI */
-   smsspi_unregister();
-#endif
-
kmutex_lock(g_smscore_deviceslock);
while (!list_empty(g_smscore_notifyees)) {
struct smscore_device_notifyee_t *notifyee =



  
--
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] [09051_49] Siano: smscore - upgrade firmware loading engine

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242748115 -10800
# Node ID 4d75f9d1c4f96d65a8ad312c21e488a212ee58a3
# Parent  cfb4106f3ceaee9fe8f7e3acc9d4adec1baffe5e
[09051_49] Siano: smscore - upgrade firmware loading engine

From: Uri Shkolnik u...@siano-ms.com

Upgrade the firmware loading (download and switching) engine.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r cfb4106f3cea -r 4d75f9d1c4f9 linux/drivers/media/dvb/siano/smscoreapi.c
--- a/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 18:38:07 
2009 +0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 18:48:35 
2009 +0300
@@ -28,7 +28,7 @@
 #include linux/dma-mapping.h
 #include linux/delay.h
 #include linux/io.h
-
+#include linux/uaccess.h
 #include linux/firmware.h
 #include linux/wait.h
 #include asm/byteorder.h
@@ -36,7 +36,13 @@
 #include smscoreapi.h
 #include sms-cards.h
 #include smsir.h
-#include smsendian.h
+#define MAX_GPIO_PIN_NUMBER31
+
+#if LINUX_VERSION_CODE = KERNEL_VERSION(2, 6, 10)
+#define REQUEST_FIRMWARE_SUPPORTED
+#else
+#define DEFAULT_FW_FILE_PATH /lib/firmware
+#endif
 
 static int sms_dbg;
 module_param_named(debug, sms_dbg, int, 0644);
@@ -459,8 +465,6 @@ static int smscore_init_ir(struct smscor
msg-msgData[0] = coredev-ir.controller;
msg-msgData[1] = coredev-ir.timeout;
 
-   smsendian_handle_tx_message(
-   (struct SmsMsgHdr_ST2 *)msg);
rc = smscore_sendrequest_and_wait(coredev, msg,
msg-xMsgHeader. msgLength,
coredev-ir_init_done);
@@ -486,12 +490,16 @@ static int smscore_init_ir(struct smscor
  */
 int smscore_start_device(struct smscore_device_t *coredev)
 {
-   int rc = smscore_set_device_mode(
-   coredev, smscore_registry_getmode(coredev-devpath));
+   int rc;
+
+#ifdef REQUEST_FIRMWARE_SUPPORTED
+   rc = smscore_set_device_mode(coredev, smscore_registry_getmode(
+   coredev-devpath));
if (rc  0) {
-   sms_info(set device mode faile , rc %d, rc);
+   sms_info(set device mode failed , rc %d, rc);
return rc;
}
+#endif
 
kmutex_lock(g_smscore_deviceslock);
 
@@ -632,11 +640,14 @@ static int smscore_load_firmware_from_fi
   loadfirmware_t loadfirmware_handler)
 {
int rc = -ENOENT;
+   u8 *fw_buf;
+   u32 fw_buf_size;
+
+#ifdef REQUEST_FIRMWARE_SUPPORTED
const struct firmware *fw;
-   u8 *fw_buffer;
 
-   if (loadfirmware_handler == NULL  !(coredev-device_flags 
- SMS_DEVICE_FAMILY2))
+   if (loadfirmware_handler == NULL  !(coredev-device_flags
+SMS_DEVICE_FAMILY2))
return -EINVAL;
 
rc = request_firmware(fw, filename, coredev-device);
@@ -645,26 +656,36 @@ static int smscore_load_firmware_from_fi
return rc;
}
sms_info(read FW %s, size=%zd, filename, fw-size);
-   fw_buffer = kmalloc(ALIGN(fw-size, SMS_ALLOC_ALIGNMENT),
-   GFP_KERNEL | GFP_DMA);
-   if (fw_buffer) {
-   memcpy(fw_buffer, fw-data, fw-size);
+   fw_buf = kmalloc(ALIGN(fw-size, SMS_ALLOC_ALIGNMENT),
+   GFP_KERNEL | GFP_DMA);
+   if (!fw_buf) {
+   sms_info(failed to allocate firmware buffer);
+   return -ENOMEM;
+   }
+   memcpy(fw_buf, fw-data, fw-size);
+   fw_buf_size = fw-size;
+#else
+   if (!coredev-fw_buf) {
+   sms_info(missing fw file buffer);
+   return -EINVAL;
+   }
+   fw_buf = coredev-fw_buf;
+   fw_buf_size = coredev-fw_buf_size;
+#endif
 
-   rc = (coredev-device_flags  SMS_DEVICE_FAMILY2) ?
- smscore_load_firmware_family2(coredev,
-   fw_buffer,
-   fw-size) :
- loadfirmware_handler(coredev-context,
-  fw_buffer, fw-size);
+   rc = (coredev-device_flags  SMS_DEVICE_FAMILY2) ?
+   smscore_load_firmware_family2(coredev, fw_buf, fw_buf_size)
+   : loadfirmware_handler(coredev-context, fw_buf,
+   fw_buf_size);
 
-   kfree(fw_buffer);
-   } else {
-   sms_info(failed to allocate firmware buffer);
-   rc = -ENOMEM;
-   }
+   kfree(fw_buf);
 
+#ifdef REQUEST_FIRMWARE_SUPPORTED
release_firmware(fw);
-
+#else
+   coredev-fw_buf = NULL;
+   coredev-fw_buf_size = 0;
+#endif
return rc;
 }
 
@@ -911,6 +932,74 @@ int smscore_set_device_mode(struct smsco
 

Re: [PATCH] [09051_40] Siano - kconfig update

2009-05-19 Thread Michael Krufky
On Tue, May 19, 2009 at 7:58 AM, Uri Shkolnik uri...@yahoo.com wrote:

 # HG changeset patch
 # User Uri Shkolnik u...@siano-ms.com
 # Date 1242734522 -10800
 # Node ID c74502f4c8e97bd9cec9656793bbabc11fb72ab4
 # Parent  315bc4b65b4f527c4f9bc4fe3290e10f07975437
 [09051_40] Siano - kconfig update

 From: Uri Shkolnik u...@siano-ms.com

 This patches comes to solve the comments on Siano's patch
 0905_10. It updates the kconfig to support multi-modules build.
 Note that the dependency on dvb_core is for the (sms)dvb module
 alone, since the drivers set may work with another adapter.

 Priority: normal

 Signed-off-by: Uri Shkolnik u...@siano-ms.com

 diff -r 315bc4b65b4f -r c74502f4c8e9 linux/drivers/media/dvb/siano/Kconfig
 --- a/linux/drivers/media/dvb/siano/Kconfig     Sun May 17 12:28:55 2009 +
 +++ b/linux/drivers/media/dvb/siano/Kconfig     Tue May 19 15:02:02 2009 +0300
 @@ -2,25 +2,40 @@
  # Siano Mobile Silicon Digital TV device configuration
  #

 -config DVB_SIANO_SMS1XXX
 -       tristate Siano SMS1XXX USB dongle support
 -       depends on DVB_CORE  USB
 +config SMS_SIANO_MDTV
 +       tristate Siano SMS1xxx based MDTV receiver
 +       default m
        ---help---
 -         Choose Y here if you have a USB dongle with a SMS1XXX chipset.
 +       Choose Y or M here if you have MDTV receiver with a Siano chipset.

 -         To compile this driver as a module, choose M here: the
 -         module will be called sms1xxx.
 +       To compile this driver as a module, choose M here
 +       (The modules will be called smsmdtv).

 -config DVB_SIANO_SMS1XXX_SMS_IDS
 -       bool Enable support for Siano Mobile Silicon default USB IDs
 -       depends on DVB_SIANO_SMS1XXX
 -       default y
 +       Note: All dependents, if selected, will be part of this module.
 +
 +       Further documentation on this driver can be found on the WWW
 +       at http://www.siano-ms.com/
 +
 +if SMS_SIANO_MDTV
 +menu Siano module components
 +
 +# Kernel sub systems support
 +config SMS_DVB3_SUBSYS
 +       tristate DVB v.3 Subsystem support
 +       depends on DVB_CORE
 +       default m if DVB_CORE
        ---help---
 -         Choose Y here if you have a USB dongle with a SMS1XXX chipset
 -         that uses Siano Mobile Silicon's default usb vid:pid.
 +       Choose if you would like to have DVB v.3 kernel sub-system support.

 -         Choose N here if you would prefer to use Siano's external driver.
 +# Hardware interfaces support

 -         Further documentation on this driver can be found on the WWW at
 -         http://www.siano-ms.com/.
 +config SMS_USB_DRV
 +       tristate USB interface support
 +       depends on USB
 +       default m if USB
 +       ---help---
 +       Choose if you would like to have Siano's support for USB interface

 +
 +endmenu
 +endif # SMS_SIANO_MDTV




 --
 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




I have two concerns with this patch...


Issue #1, I dont see why it's important to rename the Kconfig symbol
from DVB_SIANO_SMS1XXX to SMS_SIANO_MDTV -- This will just cause
breakage of make oldconfig in the kernel with no real benefit.

Issue #2, a much bigger issue.  This patch implies that the Siano
driver can be built *with* DVB v3 support, or without it.  Why would
a linux user ever want to built this driver without support for the
DVB API ?  (that's a loaded question) ...  Does Siano intend to push
their proprietary API into the kernel?

-Mike
--
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] [09051_50] Siano: smscore - Add big endian support

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242748399 -10800
# Node ID a93ebe0069b3d7d8d791ccb620a7797508cf724c
# Parent  4d75f9d1c4f96d65a8ad312c21e488a212ee58a3
[09051_50] Siano: smscore - Add big endian support

From: Uri Shkolnik u...@siano-ms.com

Add support for big endian target, to the smscore module.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 4d75f9d1c4f9 -r a93ebe0069b3 linux/drivers/media/dvb/siano/smscoreapi.c
--- a/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 18:48:35 
2009 +0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 18:53:19 
2009 +0300
@@ -34,8 +34,10 @@
 #include asm/byteorder.h
 
 #include smscoreapi.h
+#include smsendian.h
 #include sms-cards.h
 #include smsir.h
+
 #define MAX_GPIO_PIN_NUMBER31
 
 #if LINUX_VERSION_CODE = KERNEL_VERSION(2, 6, 10)
@@ -465,6 +467,8 @@ static int smscore_init_ir(struct smscor
msg-msgData[0] = coredev-ir.controller;
msg-msgData[1] = coredev-ir.timeout;
 
+   smsendian_handle_tx_message(
+   (struct SmsMsgHdr_ST2 *)msg);
rc = smscore_sendrequest_and_wait(coredev, msg,
msg-xMsgHeader. msgLength,
coredev-ir_init_done);
@@ -545,6 +549,7 @@ static int smscore_load_firmware_family2
sms_debug(sending reload command.);
SMS_INIT_MSG(msg, MSG_SW_RELOAD_START_REQ,
 sizeof(struct SmsMsgHdr_ST));
+   smsendian_handle_tx_message((struct SmsMsgHdr_ST *)msg);
rc = smscore_sendrequest_and_wait(coredev, msg,
  msg-msgLength,
  coredev-reload_start_done);
@@ -563,6 +568,7 @@ static int smscore_load_firmware_family2
DataMsg-MemAddr = mem_address;
memcpy(DataMsg-Payload, payload, payload_size);
 
+   smsendian_handle_tx_message((struct SmsMsgHdr_ST *)msg);
if ((coredev-device_flags  SMS_ROM_NO_RESPONSE) 
(coredev-mode == DEVICE_MODE_NONE))
rc = coredev-sendrequest_handler(
@@ -595,6 +601,7 @@ static int smscore_load_firmware_family2
TriggerMsg-msgData[3] = 0; /* Parameter */
TriggerMsg-msgData[4] = 4; /* Task ID */
 
+   smsendian_handle_tx_message((struct SmsMsgHdr_ST *)msg);
if (coredev-device_flags  SMS_ROM_NO_RESPONSE) {
rc = coredev-sendrequest_handler(
coredev-context, TriggerMsg,
@@ -608,7 +615,7 @@ static int smscore_load_firmware_family2
} else {
SMS_INIT_MSG(msg, MSG_SW_RELOAD_EXEC_REQ,
 sizeof(struct SmsMsgHdr_ST));
-
+   smsendian_handle_tx_message((struct SmsMsgHdr_ST *)msg);
rc = coredev-sendrequest_handler(coredev-context,
  msg, msg-msgLength);
}
@@ -767,6 +774,7 @@ static int smscore_detect_mode(struct sm
SMS_INIT_MSG(msg, MSG_SMS_GET_VERSION_EX_REQ,
 sizeof(struct SmsMsgHdr_ST));
 
+   smsendian_handle_tx_message((struct SmsMsgHdr_ST *)msg);
rc = smscore_sendrequest_and_wait(coredev, msg, msg-msgLength,
  coredev-version_ex_done);
if (rc == -ETIME) {
@@ -895,6 +903,7 @@ int smscore_set_device_mode(struct smsco
 sizeof(struct SmsMsgData_ST));
msg-msgData[0] = mode;
 
+   smsendian_handle_tx_message((struct SmsMsgHdr_ST *)msg);
rc = smscore_sendrequest_and_wait(
coredev, msg, msg-xMsgHeader.msgLength,
coredev-init_device_done);
@@ -1102,6 +,8 @@ void smscore_onresponse(struct smscore_d
rc = client-onresponse_handler(client-context, cb);
 
if (rc  0) {
+   smsendian_handle_rx_message((struct SmsMsgData_ST *)phdr);
+
switch (phdr-msgType) {
case MSG_SMS_GET_VERSION_EX_RES:
{
@@ -1604,6 +1615,7 @@ int smscore_gpio_configure(struct smscor
pMsg-msgData[5] = 0;
}
 
+   smsendian_handle_tx_message((struct SmsMsgHdr_ST *)pMsg);
rc = smscore_sendrequest_and_wait(coredev, pMsg, totalLen,
coredev-gpio_configuration_done);
 
@@ -1653,6 +1665,7 @@ int smscore_gpio_set_level(struct smscor
pMsg-msgData[1] = NewLevel;
 
/* Send message to SMS */
+   

[PATCH] [09051_51] Siano: smscore - bind the GPIO SMS protocol

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242748628 -10800
# Node ID 11b56bb92bc853666fdc1f7dc1fb799e227a2b41
# Parent  a93ebe0069b3d7d8d791ccb620a7797508cf724c
[09051_51] Siano: smscore - bind the GPIO SMS protocol

From: Uri Shkolnik u...@siano-ms.com

Bind SMS protocol commands to the GPIO commands

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r a93ebe0069b3 -r 11b56bb92bc8 linux/drivers/media/dvb/siano/smscoreapi.c
--- a/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 18:53:19 
2009 +0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 18:57:08 
2009 +0300
@@ -360,6 +360,9 @@ int smscore_register_device(struct smsde
init_completion(dev-init_device_done);
init_completion(dev-reload_start_done);
init_completion(dev-resume_done);
+   init_completion(dev-gpio_configuration_done);
+   init_completion(dev-gpio_set_level_done);
+   init_completion(dev-gpio_get_level_done);
init_completion(dev-ir_init_done);
 
/* Buffer management */
@@ -1151,6 +1154,23 @@ void smscore_onresponse(struct smscore_d
case MSG_SMS_SLEEP_RESUME_COMP_IND:
complete(coredev-resume_done);
break;
+   case MSG_SMS_GPIO_CONFIG_EX_RES:
+   sms_debug(MSG_SMS_GPIO_CONFIG_EX_RES);
+   complete(coredev-gpio_configuration_done);
+   break;
+   case MSG_SMS_GPIO_SET_LEVEL_RES:
+   sms_debug(MSG_SMS_GPIO_SET_LEVEL_RES);
+   complete(coredev-gpio_set_level_done);
+   break;
+   case MSG_SMS_GPIO_GET_LEVEL_RES:
+   {
+   u32 *msgdata = (u32 *) phdr;
+   coredev-gpio_get_res = msgdata[1];
+   sms_debug(MSG_SMS_GPIO_GET_LEVEL_RES gpio level %d,
+   coredev-gpio_get_res);
+   complete(coredev-gpio_get_level_done);
+   break;
+   }
case MSG_SMS_START_IR_RES:
complete(coredev-ir_init_done);
break;



  
--
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] [09051_52] Siano: smsendien - declare function as extern

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242748849 -10800
# Node ID b71383c9ab1cd51cc307b488ef4397f6eb345cef
# Parent  11b56bb92bc853666fdc1f7dc1fb799e227a2b41
[09051_52] Siano: smsendien - declare function as extern

From: Uri Shkolnik u...@siano-ms.com

Declare the object function as 'extern'

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 11b56bb92bc8 -r b71383c9ab1c linux/drivers/media/dvb/siano/smsendian.h
--- a/linux/drivers/media/dvb/siano/smsendian.h Tue May 19 18:57:08 2009 +0300
+++ b/linux/drivers/media/dvb/siano/smsendian.h Tue May 19 19:00:49 2009 +0300
@@ -24,9 +24,9 @@ along with this program.  If not, see h
 
 #include asm/byteorder.h
 
-void smsendian_handle_tx_message(void *buffer);
-void smsendian_handle_rx_message(void *buffer);
-void smsendian_handle_message_header(void *msg);
+extern void smsendian_handle_tx_message(void *buffer);
+extern void smsendian_handle_rx_message(void *buffer);
+extern void smsendian_handle_message_header(void *msg);
 
 #endif /* __SMS_ENDIAN_H__ */
 



  
--
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] [09051_53] Siano: smscore - remove redundant define

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242749102 -10800
# Node ID dfcfb90798d3a27cb174019b17fffdee9ce7b2b9
# Parent  b71383c9ab1cd51cc307b488ef4397f6eb345cef
[09051_53] Siano: smscore - remove redundant define

From: Uri Shkolnik u...@siano-ms.com

Remove redundant define.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r b71383c9ab1c -r dfcfb90798d3 linux/drivers/media/dvb/siano/smscoreapi.h
--- a/linux/drivers/media/dvb/siano/smscoreapi.hTue May 19 19:00:49 
2009 +0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.hTue May 19 19:05:02 
2009 +0300
@@ -645,7 +645,6 @@ extern void smscore_onresponse(struct sm
 extern void smscore_onresponse(struct smscore_device_t *coredev,
   struct smscore_buffer_t *cb);
 
-#if 1
 extern int smscore_get_common_buffer_size(struct smscore_device_t *coredev);
 extern int smscore_map_common_buffer(struct smscore_device_t *coredev,
  struct vm_area_struct *vma);
@@ -653,7 +652,6 @@ extern int smscore_get_fw_filename(struc
   int mode, char *filename);
 extern int smscore_send_fw_file(struct smscore_device_t *coredev,
u8 *ufwbuf, int size);
-#endif
 
 extern
 struct smscore_buffer_t *smscore_getbuffer(struct smscore_device_t *coredev);



  
--
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


Re: [PATCH] [09051_43] Siano: Add new GPIO management interface

2009-05-19 Thread Michael Krufky
On Tue, May 19, 2009 at 10:49 AM, Uri Shkolnik uri...@yahoo.com wrote:

 # HG changeset patch
 # User Uri Shkolnik u...@siano-ms.com
 # Date 1242744570 -10800
 # Node ID 749c11a362a9fad1992809007247d5c76c35bfc9
 # Parent  08e292f80f37496d8d4b43a542f518196eaa4dc0
 [09051_43] Siano: Add new GPIO management interface

 From: Uri Shkolnik u...@siano-ms.com

 Add new GPIO management interface to replace old (buggy) one.
 Keeping old interface intact for now.

 Priority: normal

 Signed-off-by: Uri Shkolnik u...@siano-ms.com

 diff -r 08e292f80f37 -r 749c11a362a9 linux/drivers/media/dvb/siano/sms-cards.c
 --- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 16:30:40 2009 +0300
 +++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 17:49:30 2009 +0300
 @@ -109,7 +109,7 @@ static int sms_set_gpio(struct smscore_d
  {
        int lvl, ret;
        u32 gpio;
 -       struct smscore_gpio_config gpioconfig = {
 +       struct smscore_config_gpio gpioconfig = {
                .direction            = SMS_GPIO_DIRECTION_OUTPUT,
                .pullupdown           = SMS_GPIO_PULLUPDOWN_NONE,
                .inputcharacteristics = SMS_GPIO_INPUTCHARACTERISTICS_NORMAL,
 diff -r 08e292f80f37 -r 749c11a362a9 
 linux/drivers/media/dvb/siano/smscoreapi.c
 --- a/linux/drivers/media/dvb/siano/smscoreapi.c        Tue May 19 16:30:40 
 2009 +0300
 +++ b/linux/drivers/media/dvb/siano/smscoreapi.c        Tue May 19 17:49:30 
 2009 +0300
 @@ -1331,8 +1331,9 @@ static int smscore_map_common_buffer(str
  }
  #endif

 +/* old GPIO managments implementation */
  int smscore_configure_gpio(struct smscore_device_t *coredev, u32 pin,
 -                          struct smscore_gpio_config *pinconfig)
 +                          struct smscore_config_gpio *pinconfig)
  {
        struct {
                struct SmsMsgHdr_ST hdr;
 @@ -1399,6 +1400,238 @@ int smscore_set_gpio(struct smscore_devi

        return coredev-sendrequest_handler(coredev-context,
                                            msg, sizeof(msg));
 +}
 +
 +/* new GPIO managment implementation */
 +static int GetGpioPinParams(u32 PinNum, u32 *pTranslatedPinNum,
 +               u32 *pGroupNum, u32 *pGroupCfg) {
 +
 +       *pGroupCfg = 1;
 +
 +       if (PinNum = 0  PinNum = 1) {
 +               *pTranslatedPinNum = 0;
 +               *pGroupNum = 9;
 +               *pGroupCfg = 2;
 +       } else if (PinNum = 2  PinNum = 6) {
 +               *pTranslatedPinNum = 2;
 +               *pGroupNum = 0;
 +               *pGroupCfg = 2;
 +       } else if (PinNum = 7  PinNum = 11) {
 +               *pTranslatedPinNum = 7;
 +               *pGroupNum = 1;
 +       } else if (PinNum = 12  PinNum = 15) {
 +               *pTranslatedPinNum = 12;
 +               *pGroupNum = 2;
 +               *pGroupCfg = 3;
 +       } else if (PinNum == 16) {
 +               *pTranslatedPinNum = 16;
 +               *pGroupNum = 23;
 +       } else if (PinNum = 17  PinNum = 24) {
 +               *pTranslatedPinNum = 17;
 +               *pGroupNum = 3;
 +       } else if (PinNum == 25) {
 +               *pTranslatedPinNum = 25;
 +               *pGroupNum = 6;
 +       } else if (PinNum = 26  PinNum = 28) {
 +               *pTranslatedPinNum = 26;
 +               *pGroupNum = 4;
 +       } else if (PinNum == 29) {
 +               *pTranslatedPinNum = 29;
 +               *pGroupNum = 5;
 +               *pGroupCfg = 2;
 +       } else if (PinNum == 30) {
 +               *pTranslatedPinNum = 30;
 +               *pGroupNum = 8;
 +       } else if (PinNum == 31) {
 +               *pTranslatedPinNum = 31;
 +               *pGroupNum = 17;
 +       } else
 +               return -1;
 +
 +       *pGroupCfg = 24;
 +
 +       return 0;
 +}
 +
 +int smscore_gpio_configure(struct smscore_device_t *coredev, u8 PinNum,
 +               struct smscore_gpio_config *pGpioConfig) {
 +
 +       u32 totalLen;
 +       u32 TranslatedPinNum;
 +       u32 GroupNum;
 +       u32 ElectricChar;
 +       u32 groupCfg;
 +       void *buffer;
 +       int rc;
 +
 +       struct SetGpioMsg {
 +               struct SmsMsgHdr_ST xMsgHeader;
 +               u32 msgData[6];
 +       } *pMsg;
 +
 +
 +       if (PinNum  MAX_GPIO_PIN_NUMBER)
 +               return -EINVAL;
 +
 +       if (pGpioConfig == NULL)
 +               return -EINVAL;
 +
 +       totalLen = sizeof(struct SmsMsgHdr_ST) + (sizeof(u32) * 6);
 +
 +       buffer = kmalloc(totalLen + SMS_DMA_ALIGNMENT,
 +                       GFP_KERNEL | GFP_DMA);
 +       if (!buffer)
 +               return -ENOMEM;
 +
 +       pMsg = (struct SetGpioMsg *) SMS_ALIGN_ADDRESS(buffer);
 +
 +       pMsg-xMsgHeader.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
 +       pMsg-xMsgHeader.msgDstId = HIF_TASK;
 +       pMsg-xMsgHeader.msgFlags = 0;
 +       pMsg-xMsgHeader.msgLength = (u16) totalLen;
 +       pMsg-msgData[0] = PinNum;
 +
 +       if (!(coredev-device_flags  SMS_DEVICE_FAMILY2)) {
 +               pMsg-xMsgHeader.msgType = MSG_SMS_GPIO_CONFIG_REQ;
 +  

[PATCH] [09051_54] Siano: remove obsolete sms_board_setup

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242749967 -10800
# Node ID 0296b0c436d6deba48c710cfb510988267cea057
# Parent  dfcfb90798d3a27cb174019b17fffdee9ce7b2b9
[09051_54] Siano: remove obsolete sms_board_setup

From: Uri Shkolnik u...@siano-ms.com

Remove the target specific sms_board_setup from smsdvb. This
is handled now via smsdvb and sms-cards events.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r dfcfb90798d3 -r 0296b0c436d6 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:05:02 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:19:27 2009 +0300
@@ -303,28 +303,6 @@ static int sms_set_gpio(struct smscore_d
return smscore_set_gpio(coredev, gpio, lvl);
 }
 
-int sms_board_setup(struct smscore_device_t *coredev)
-{
-   int board_id = smscore_get_board_id(coredev);
-   struct sms_board *board = sms_get_board(board_id);
-
-   switch (board_id) {
-   case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
-   /* turn off all LEDs */
-   sms_set_gpio(coredev, board-led_power, 0);
-   sms_set_gpio(coredev, board-led_hi, 0);
-   sms_set_gpio(coredev, board-led_lo, 0);
-   break;
-   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
-   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
-   /* turn off LNA */
-   sms_set_gpio(coredev, board-lna_ctrl, 0);
-   break;
-   }
-   return 0;
-}
-EXPORT_SYMBOL_GPL(sms_board_setup);
-
 int sms_board_power(struct smscore_device_t *coredev, int onoff)
 {
int board_id = smscore_get_board_id(coredev);
diff -r dfcfb90798d3 -r 0296b0c436d6 linux/drivers/media/dvb/siano/sms-cards.h
--- a/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:05:02 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:19:27 2009 +0300
@@ -109,8 +109,6 @@ int sms_board_event(struct smscore_devic
 int sms_board_event(struct smscore_device_t *coredev,
enum SMS_BOARD_EVENTS gevent);
 
-int sms_board_setup(struct smscore_device_t *coredev);
-
 #define SMS_LED_OFF 0
 #define SMS_LED_LO  1
 #define SMS_LED_HI  2
diff -r dfcfb90798d3 -r 0296b0c436d6 linux/drivers/media/dvb/siano/smsdvb.c
--- a/linux/drivers/media/dvb/siano/smsdvb.cTue May 19 19:05:02 2009 +0300
+++ b/linux/drivers/media/dvb/siano/smsdvb.cTue May 19 19:19:27 2009 +0300
@@ -600,7 +600,6 @@ static int smsdvb_hotplug(struct smscore
sms_board_dvb3_event(client, DVB3_EVENT_HOTPLUG);
 
sms_info(success);
-   sms_board_setup(coredev);
 
return 0;
 



  
--
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


Re: [PATCH] [09051_47] Siano: smsdvb - add DVB v3 events

2009-05-19 Thread Michael Krufky
On Tue, May 19, 2009 at 11:28 AM, Uri Shkolnik uri...@yahoo.com wrote:

 # HG changeset patch
 # User Uri Shkolnik u...@siano-ms.com
 # Date 1242747164 -10800
 # Node ID 971d4cc0d4009650bd4752c6a9fc09755ef77baf
 # Parent  98895daafb42f8b0757fd608b29c53c80327520e
 [09051_47] Siano: smsdvb - add DVB v3 events

 From: Uri Shkolnik u...@siano-ms.com

 Add various DVB-API v3 events, those events will trig
 target (card) events.

 Priority: normal

 Signed-off-by: Uri Shkolnik u...@siano-ms.com

 diff -r 98895daafb42 -r 971d4cc0d400 linux/drivers/media/dvb/siano/smsdvb.c
 --- a/linux/drivers/media/dvb/siano/smsdvb.c    Tue May 19 18:27:38 2009 +0300
 +++ b/linux/drivers/media/dvb/siano/smsdvb.c    Tue May 19 18:32:44 2009 +0300
 @@ -66,6 +66,54 @@ MODULE_PARM_DESC(debug, set debug level
  /* Events that may come from DVB v3 adapter */
  static void sms_board_dvb3_event(struct smsdvb_client_t *client,
                enum SMS_DVB3_EVENTS event) {
 +
 +       struct smscore_device_t *coredev = client-coredev;
 +       switch (event) {
 +       case DVB3_EVENT_INIT:
 +               sms_debug(DVB3_EVENT_INIT);
 +               sms_board_event(coredev, BOARD_EVENT_BIND);
 +               break;
 +       case DVB3_EVENT_SLEEP:
 +               sms_debug(DVB3_EVENT_SLEEP);
 +               sms_board_event(coredev, BOARD_EVENT_POWER_SUSPEND);
 +               break;
 +       case DVB3_EVENT_HOTPLUG:
 +               sms_debug(DVB3_EVENT_HOTPLUG);
 +               sms_board_event(coredev, BOARD_EVENT_POWER_INIT);
 +               break;
 +       case DVB3_EVENT_FE_LOCK:
 +               if (client-event_fe_state != DVB3_EVENT_FE_LOCK) {
 +                       client-event_fe_state = DVB3_EVENT_FE_LOCK;
 +                       sms_debug(DVB3_EVENT_FE_LOCK);
 +                       sms_board_event(coredev, BOARD_EVENT_FE_LOCK);
 +               }
 +               break;
 +       case DVB3_EVENT_FE_UNLOCK:
 +               if (client-event_fe_state != DVB3_EVENT_FE_UNLOCK) {
 +                       client-event_fe_state = DVB3_EVENT_FE_UNLOCK;
 +                       sms_debug(DVB3_EVENT_FE_UNLOCK);
 +                       sms_board_event(coredev, BOARD_EVENT_FE_UNLOCK);
 +               }
 +               break;
 +       case DVB3_EVENT_UNC_OK:
 +               if (client-event_unc_state != DVB3_EVENT_UNC_OK) {
 +                       client-event_unc_state = DVB3_EVENT_UNC_OK;
 +                       sms_debug(DVB3_EVENT_UNC_OK);
 +                       sms_board_event(coredev, BOARD_EVENT_MULTIPLEX_OK);
 +               }
 +               break;
 +       case DVB3_EVENT_UNC_ERR:
 +               if (client-event_unc_state != DVB3_EVENT_UNC_ERR) {
 +                       client-event_unc_state = DVB3_EVENT_UNC_ERR;
 +                       sms_debug(DVB3_EVENT_UNC_ERR);
 +                       sms_board_event(coredev, 
 BOARD_EVENT_MULTIPLEX_ERRORS);
 +               }
 +               break;
 +
 +       default:
 +               sms_err(Unknown dvb3 api event);
 +               break;
 +       }
  }

  static int smsdvb_onresponse(void *context, struct smscore_buffer_t *cb)




 --
 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




Uri,

I don't understand what prompts you to call these DVB v3 events ...
what does this have to do with DVB API v3 at all?  Your idea seems to
be in the right direction, but this DVBV3 nomenclature is a total
misnomer.

I think something along the lines of SMSBOARD_EVENT_FOO is more appropriate.

Regards,

Mike
--
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] [09051_55] Siano: smscards - merge the binding handling

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242750556 -10800
# Node ID d92f2dfcb226c5f8b8c3216f7cf96126f7571702
# Parent  0296b0c436d6deba48c710cfb510988267cea057
[09051_55] Siano: smscards - merge the binding handling.

From: Uri Shkolnik u...@siano-ms.com

Merge the bind handling into the events switch.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r 0296b0c436d6 -r d92f2dfcb226 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:19:27 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:29:16 2009 +0300
@@ -194,7 +194,13 @@ int sms_board_event(struct smscore_devic
 
case BOARD_EVENT_BIND:
switch (board_id) {
+   case SMS1XXX_BOARD_HAUPPAUGE_CATAMOUNT:
+   case SMS1XXX_BOARD_HAUPPAUGE_OKEMO_A:
+   case SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B:
+   request_module(smsdvb);
+   break;
case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
+   request_module(smsdvb);
smscore_gpio_set_level(coredev,
board-board_cfg.leds_power, 1);
smscore_gpio_set_level(coredev,
@@ -366,20 +372,3 @@ int sms_board_lna_control(struct smscore
return -EINVAL;
 }
 EXPORT_SYMBOL_GPL(sms_board_lna_control);
-
-int sms_board_load_modules(int id)
-{
-   switch (id) {
-   case SMS1XXX_BOARD_HAUPPAUGE_CATAMOUNT:
-   case SMS1XXX_BOARD_HAUPPAUGE_OKEMO_A:
-   case SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B:
-   case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
-   request_module(smsdvb);
-   break;
-   default:
-   /* do nothing */
-   break;
-   }
-   return 0;
-}
-EXPORT_SYMBOL_GPL(sms_board_load_modules);



  
--
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] [09051_56] Siano: cards - merge load_module to event switch

2009-05-19 Thread Uri Shkolnik

# HG changeset patch

# User Uri Shkolnik u...@siano-ms.com
# Date 1242751505 -10800
# Node ID f78cbc153c82ebe58a1bbe82271b91f5a4a90642
# Parent  d92f2dfcb226c5f8b8c3216f7cf96126f7571702
[09051_56] Siano: cards - merge load_module to event switch

From: Uri Shkolnik u...@siano-ms.com

Merge the load_module into the board_event, remove redundant
function.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r d92f2dfcb226 -r f78cbc153c82 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:29:16 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:45:05 2009 +0300
@@ -194,13 +194,7 @@ int sms_board_event(struct smscore_devic
 
case BOARD_EVENT_BIND:



  
--
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] [09051_57] Siano: smscards - remove redundant code

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242751824 -10800
# Node ID fd16bcd8b9f1fffe0b605ca5b3b2138fc920e927
# Parent  f78cbc153c82ebe58a1bbe82271b91f5a4a90642
[09051_57] Siano: smscards - remove redundant code

From: Uri Shkolnik u...@siano-ms.com

Remove code that has been duplicate with the new boards events manager

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r f78cbc153c82 -r fd16bcd8b9f1 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:45:05 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:50:24 2009 +0300
@@ -281,98 +281,3 @@ int sms_board_event(struct smscore_devic
return 0;
 }
 EXPORT_SYMBOL_GPL(sms_board_event);
-
-static int sms_set_gpio(struct smscore_device_t *coredev, int pin, int enable)
-{
-   int lvl, ret;
-   u32 gpio;
-   struct smscore_config_gpio gpioconfig = {
-   .direction= SMS_GPIO_DIRECTION_OUTPUT,
-   .pullupdown   = SMS_GPIO_PULLUPDOWN_NONE,
-   .inputcharacteristics = SMS_GPIO_INPUTCHARACTERISTICS_NORMAL,
-   .outputslewrate   = SMS_GPIO_OUTPUTSLEWRATE_FAST,
-   .outputdriving= SMS_GPIO_OUTPUTDRIVING_4mA,
-   };
-
-   if (pin == 0)
-   return -EINVAL;
-
-   if (pin  0) {
-   /* inverted gpio */
-   gpio = pin * -1;
-   lvl = enable ? 0 : 1;
-   } else {
-   gpio = pin;
-   lvl = enable ? 1 : 0;
-   }
-
-   ret = smscore_configure_gpio(coredev, gpio, gpioconfig);
-   if (ret  0)
-   return ret;
-
-   return smscore_set_gpio(coredev, gpio, lvl);
-}
-
-int sms_board_power(struct smscore_device_t *coredev, int onoff)
-{
-   int board_id = smscore_get_board_id(coredev);
-   struct sms_board *board = sms_get_board(board_id);
-
-   switch (board_id) {
-   case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
-   /* power LED */
-   sms_set_gpio(coredev,
-board-led_power, onoff ? 1 : 0);
-   break;
-   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
-   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
-   /* LNA */
-   if (!onoff)
-   sms_set_gpio(coredev, board-lna_ctrl, 0);
-   break;
-   }
-   return 0;
-}
-EXPORT_SYMBOL_GPL(sms_board_power);
-
-int sms_board_led_feedback(struct smscore_device_t *coredev, int led)
-{
-   int board_id = smscore_get_board_id(coredev);
-   struct sms_board *board = sms_get_board(board_id);
-
-   /* dont touch GPIO if LEDs are already set */
-   if (smscore_led_state(coredev, -1) == led)
-   return 0;
-
-   switch (board_id) {
-   case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
-   sms_set_gpio(coredev,
-board-led_lo, (led  SMS_LED_LO) ? 1 : 0);
-   sms_set_gpio(coredev,
-board-led_hi, (led  SMS_LED_HI) ? 1 : 0);
-
-   smscore_led_state(coredev, led);
-   break;
-   }
-   return 0;
-}
-EXPORT_SYMBOL_GPL(sms_board_led_feedback);
-
-int sms_board_lna_control(struct smscore_device_t *coredev, int onoff)
-{
-   int board_id = smscore_get_board_id(coredev);
-   struct sms_board *board = sms_get_board(board_id);
-
-   sms_debug(%s: LNA %s, __func__, onoff ? enabled : disabled);
-
-   switch (board_id) {
-   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
-   case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
-   sms_set_gpio(coredev,
-board-rf_switch, onoff ? 1 : 0);
-   return sms_set_gpio(coredev,
-   board-lna_ctrl, onoff ? 1 : 0);
-   }
-   return -EINVAL;
-}
-EXPORT_SYMBOL_GPL(sms_board_lna_control);
diff -r f78cbc153c82 -r fd16bcd8b9f1 linux/drivers/media/dvb/siano/sms-cards.h
--- a/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:45:05 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:50:24 2009 +0300
@@ -110,11 +110,4 @@ int sms_board_event(struct smscore_devic
 int sms_board_event(struct smscore_device_t *coredev,
enum SMS_BOARD_EVENTS gevent);
 
-#define SMS_LED_OFF 0
-#define SMS_LED_LO  1
-#define SMS_LED_HI  2
-int sms_board_led_feedback(struct smscore_device_t *coredev, int led);
-int sms_board_power(struct smscore_device_t *coredev, int onoff);
-int sms_board_lna_control(struct smscore_device_t *coredev, int onoff);
-
 #endif /* __SMS_CARDS_H__ */



  
--
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] [09051_58] Siano: remove obsolete code

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242752280 -10800
# Node ID 0c33837206742f128aa033b2c9fb80c725e48dd7
# Parent  fd16bcd8b9f1fffe0b605ca5b3b2138fc920e927
[09051_58] Siano: remove obsolete code

From: Uri Shkolnik u...@siano-ms.com

Remove obsolete code - old gpio managment (totaly bogus),
and its dependent code from cards.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:50:24 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:58:00 2009 +0300
@@ -66,24 +66,17 @@ static struct sms_board sms_boards[] = {
.board_cfg.leds_power = 26,
.board_cfg.led0 = 27,
.board_cfg.led1 = 28,
-   .led_power = 26,
-   .led_lo= 27,
-   .led_hi= 28,
},
[SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD] = {
.name   = Hauppauge WinTV MiniCard,
.type   = SMS_NOVA_B0,
.fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
-   .lna_ctrl  = 29,
.board_cfg.foreign_lna0_ctrl = 29,
-   .rf_switch = 17,
-   .board_cfg.rf_switch_uhf = 17,
},
[SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2] = {
.name   = Hauppauge WinTV MiniCard,
.type   = SMS_NOVA_B0,
.fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
-   .lna_ctrl  = -1,
},
[SMS1XXX_BOARD_SIANO_NICE] = {
/* 11 */
diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.h
--- a/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:50:24 2009 +0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:58:00 2009 +0300
@@ -76,9 +76,6 @@ struct sms_board {
char *name, *fw[DEVICE_MODE_MAX];
struct sms_board_gpio_cfg board_cfg;
enum ir_kb_type ir_kb_type;
-
-   /* gpios */
-   int led_power, led_hi, led_lo, lna_ctrl, rf_switch;
 };
 
 struct sms_board *sms_get_board(int id);
diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/smscoreapi.c
--- a/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 19:50:24 
2009 +0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 19:58:00 
2009 +0300
@@ -74,14 +74,6 @@ void smscore_set_board_id(struct smscore
 {
core-board_id = id;
 }
-
-int smscore_led_state(struct smscore_device_t *core, int led)
-{
-   if (led = 0)
-   core-led_state = led;
-   return core-led_state;
-}
-EXPORT_SYMBOL_GPL(smscore_set_board_id);
 
 int smscore_get_board_id(struct smscore_device_t *core)
 {
@@ -1451,78 +1443,6 @@ static int smscore_map_common_buffer(str
 }
 #endif /* SMS_HOSTLIB_SUBSYS */
 
-/* old GPIO managments implementation */
-int smscore_configure_gpio(struct smscore_device_t *coredev, u32 pin,
-  struct smscore_config_gpio *pinconfig)
-{
-   struct {
-   struct SmsMsgHdr_ST hdr;
-   u32 data[6];
-   } msg;
-
-   if (coredev-device_flags  SMS_DEVICE_FAMILY2) {
-   msg.hdr.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
-   msg.hdr.msgDstId = HIF_TASK;
-   msg.hdr.msgFlags = 0;
-   msg.hdr.msgType  = MSG_SMS_GPIO_CONFIG_EX_REQ;
-   msg.hdr.msgLength = sizeof(msg);
-
-   msg.data[0] = pin;
-   msg.data[1] = pinconfig-pullupdown;
-
-   /* Convert slew rate for Nova: Fast(0) = 3 / Slow(1) = 0; */
-   msg.data[2] = pinconfig-outputslewrate == 0 ? 3 : 0;
-
-   switch (pinconfig-outputdriving) {
-   case SMS_GPIO_OUTPUTDRIVING_16mA:
-   msg.data[3] = 7; /* Nova - 16mA */
-   break;
-   case SMS_GPIO_OUTPUTDRIVING_12mA:
-   msg.data[3] = 5; /* Nova - 11mA */
-   break;
-   case SMS_GPIO_OUTPUTDRIVING_8mA:
-   msg.data[3] = 3; /* Nova - 7mA */
-   break;
-   case SMS_GPIO_OUTPUTDRIVING_4mA:
-   default:
-   msg.data[3] = 2; /* Nova - 4mA */
-   break;
-   }
-
-   msg.data[4] = pinconfig-direction;
-   msg.data[5] = 0;
-   } else /* TODO: SMS_DEVICE_FAMILY1 */
-   return -EINVAL;
-
-   return coredev-sendrequest_handler(coredev-context,
-   msg, sizeof(msg));
-}
-
-int smscore_set_gpio(struct smscore_device_t *coredev, u32 pin, int level)
-{
-   struct {
-   struct SmsMsgHdr_ST hdr;
-   u32 data[3];
-   } msg;
-
-   if (pin  MAX_GPIO_PIN_NUMBER)
-   return -EINVAL;
-
-   msg.hdr.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
- 

MT9T031 and other similar sub devices...

2009-05-19 Thread Karicheri, Muralidharan
Hi, Guennadi Liakhovetski,

Thanks for your effort to migrate the sensor drivers to sub device framework.

We have interest in mt9t031 and other sensor drivers from Micron since this 
peripheral is used in our DM355/DM6446 EVMs as well. I have submitted a set of 
patches for our vpfe_capture driver to the media mailing list for review. This 
driver runs on DM355/DM6446 EVMs and is developed to use the sub device model 
to integrate with capture peripheral like TVP5146, MT9T001, MT9T031 etc. If you 
have a version of mt9t031 driver migrated to sub device, I would like to 
integrate that with our vpfe_capture driver.

I want to check following with you so as to be on the same page.

1) I see that the mt9t001.c still uses struct soc_camera_device and calls 
soc_camera_video_start() to start the master. This introduces a reverse 
dependency from the sub device to bridge driver (correct me if I my 
understanding is wrong). I guess you plan to remove this dependency in your 
future patch. With this in the driver, it can't work with our driver since we 
don't have soc_camera_device. 

2) vpfe_capture driver support raw bayer interface as well as raw yuv 
interface. Raw bayer interface can be 8-16 bits wide along with HD/VD/field 
lines. So in order for the bridge driver to configure the interface, it needs 
to know parameters like interface type (BT.656, BT.1120, Raw image data (8-16) 
etc), polarity of HD, VD, PCLK, field signals etc. Is there a infrastructure 
for handling this ? I mean, we should have a way of defining this per platform, 
which some how can be read by bridge driver to configure the interface to work 
with a specific sub device.

Regards,

Murali Karicheri
   


--
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


Re: [PATCH] [09051_54] Siano: remove obsolete sms_board_setup

2009-05-19 Thread Uri Shkolnik



--- On Tue, 5/19/09, Uri Shkolnik uri...@yahoo.com wrote:

 From: Uri Shkolnik uri...@yahoo.com
 Subject: Re: [PATCH] [09051_54] Siano: remove obsolete sms_board_setup
 To: Michael Krufky mkru...@linuxtv.org
 Date: Tuesday, May 19, 2009, 7:57 PM
 
 
 --- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org
 wrote:
 
  From: Michael Krufky mkru...@linuxtv.org
  Subject: Re: [PATCH] [09051_54] Siano: remove obsolete
 sms_board_setup
  To: Uri Shkolnik uri...@yahoo.com
  Cc: LinuxML linux-media@vger.kernel.org,
 Mauro Carvalho Chehab mche...@infradead.org
  Date: Tuesday, May 19, 2009, 7:31 PM
  On Tue, May 19, 2009 at 12:15 PM, Uri
  Shkolnik uri...@yahoo.com
  wrote:
  
   # HG changeset patch
   # User Uri Shkolnik u...@siano-ms.com
   # Date 1242749967 -10800
   # Node ID
 0296b0c436d6deba48c710cfb510988267cea057
   # Parent
  dfcfb90798d3a27cb174019b17fffdee9ce7b2b9
   [09051_54] Siano: remove obsolete
 sms_board_setup
  
   From: Uri Shkolnik u...@siano-ms.com
  
   Remove the target specific sms_board_setup from
  smsdvb. This
   is handled now via smsdvb and sms-cards events.
  
   Priority: normal
  
   Signed-off-by: Uri Shkolnik u...@siano-ms.com
  
   diff -r dfcfb90798d3 -r 0296b0c436d6
  linux/drivers/media/dvb/siano/sms-cards.c
   --- a/linux/drivers/media/dvb/siano/sms-cards.c
 Tue
  May 19 19:05:02 2009 +0300
   +++ b/linux/drivers/media/dvb/siano/sms-cards.c
 Tue
  May 19 19:19:27 2009 +0300
   @@ -303,28 +303,6 @@ static int
 sms_set_gpio(struct
  smscore_d
          return smscore_set_gpio(coredev,
 gpio,
  lvl);
    }
  
   -int sms_board_setup(struct smscore_device_t
  *coredev)
   -{
   -       int board_id =
  smscore_get_board_id(coredev);
   -       struct sms_board *board =
  sms_get_board(board_id);
   -
   -       switch (board_id) {
   -       case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
   -               /* turn off all LEDs */
   -               sms_set_gpio(coredev,
  board-led_power, 0);
   -               sms_set_gpio(coredev,
  board-led_hi, 0);
   -               sms_set_gpio(coredev,
  board-led_lo, 0);
   -               break;
   -       case
  SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
   -       case
  SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
   -               /* turn off LNA */
   -               sms_set_gpio(coredev,
  board-lna_ctrl, 0);
   -               break;
   -       }
   -       return 0;
   -}
   -EXPORT_SYMBOL_GPL(sms_board_setup);
   -
    int sms_board_power(struct smscore_device_t
  *coredev, int onoff)
    {
          int board_id =
  smscore_get_board_id(coredev);
   diff -r dfcfb90798d3 -r 0296b0c436d6
  linux/drivers/media/dvb/siano/sms-cards.h
   --- a/linux/drivers/media/dvb/siano/sms-cards.h
 Tue
  May 19 19:05:02 2009 +0300
   +++ b/linux/drivers/media/dvb/siano/sms-cards.h
 Tue
  May 19 19:19:27 2009 +0300
   @@ -109,8 +109,6 @@ int sms_board_event(struct
  smscore_devic
    int sms_board_event(struct smscore_device_t
  *coredev,
                  enum SMS_BOARD_EVENTS
 gevent);
  
   -int sms_board_setup(struct smscore_device_t
  *coredev);
   -
    #define SMS_LED_OFF 0
    #define SMS_LED_LO  1
    #define SMS_LED_HI  2
   diff -r dfcfb90798d3 -r 0296b0c436d6
  linux/drivers/media/dvb/siano/smsdvb.c
   --- a/linux/drivers/media/dvb/siano/smsdvb.c  
  Tue
  May 19 19:05:02 2009 +0300
   +++ b/linux/drivers/media/dvb/siano/smsdvb.c  
  Tue
  May 19 19:19:27 2009 +0300
   @@ -600,7 +600,6 @@ static int
 smsdvb_hotplug(struct
  smscore
          sms_board_dvb3_event(client,
  DVB3_EVENT_HOTPLUG);
  
          sms_info(success);
   -       sms_board_setup(coredev);
  
          return 0;
  
  
  
  
  
   --
   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
  
  
  
  
  NACK.
  
  
  This changes the behavior of the Hauppauge devices. 
  Let Uri get all
  his other stuff in place first, and THEN we can look
 at
  this
  separately.
  
  In addition, this changeset was merged WITHOUT my
 ack:
  
  http://linuxtv.org/hg/v4l-dvb/rev/37969546eee8 -
 Siano:
  smscards -
  assign gpio to HPG targets
  
  That changeset 37969546eee8 alone does not cause any
 change
  in
  behavior, but with Uri's patches from today it will
 change
  the
  Hauppauge device behavior.
  
  That patch should be reverted and dealt with
 separately,
  after Uri is
  finished with his other changes.
  
  -Mike
  
 
 Mike,
 
 Please note that the Hauppauge device behavior has been
 merged to the board_event()  **prior** to this patch.
 
 I did my best to follow the logic, I might be wrong (please
 check).
 
 This patch is remove *duplicate* led setting, etc...
 
 
 Uri
 
 
 



  
--
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


Re: [PATCH] [09051_57] Siano: smscards - remove redundant code

2009-05-19 Thread Michael Krufky
On Tue, May 19, 2009 at 12:46 PM, Uri Shkolnik uri...@yahoo.com wrote:

 # HG changeset patch
 # User Uri Shkolnik u...@siano-ms.com
 # Date 1242751824 -10800
 # Node ID fd16bcd8b9f1fffe0b605ca5b3b2138fc920e927
 # Parent  f78cbc153c82ebe58a1bbe82271b91f5a4a90642
 [09051_57] Siano: smscards - remove redundant code

 From: Uri Shkolnik u...@siano-ms.com

 Remove code that has been duplicate with the new boards events manager

 Priority: normal

 Signed-off-by: Uri Shkolnik u...@siano-ms.com

 diff -r f78cbc153c82 -r fd16bcd8b9f1 linux/drivers/media/dvb/siano/sms-cards.c
 --- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:45:05 2009 +0300
 +++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:50:24 2009 +0300
 @@ -281,98 +281,3 @@ int sms_board_event(struct smscore_devic
        return 0;
  }
  EXPORT_SYMBOL_GPL(sms_board_event);
 -
 -static int sms_set_gpio(struct smscore_device_t *coredev, int pin, int 
 enable)
 -{
 -       int lvl, ret;
 -       u32 gpio;
 -       struct smscore_config_gpio gpioconfig = {
 -               .direction            = SMS_GPIO_DIRECTION_OUTPUT,
 -               .pullupdown           = SMS_GPIO_PULLUPDOWN_NONE,
 -               .inputcharacteristics = SMS_GPIO_INPUTCHARACTERISTICS_NORMAL,
 -               .outputslewrate       = SMS_GPIO_OUTPUTSLEWRATE_FAST,
 -               .outputdriving        = SMS_GPIO_OUTPUTDRIVING_4mA,
 -       };
 -
 -       if (pin == 0)
 -               return -EINVAL;
 -
 -       if (pin  0) {
 -               /* inverted gpio */
 -               gpio = pin * -1;
 -               lvl = enable ? 0 : 1;
 -       } else {
 -               gpio = pin;
 -               lvl = enable ? 1 : 0;
 -       }
 -
 -       ret = smscore_configure_gpio(coredev, gpio, gpioconfig);
 -       if (ret  0)
 -               return ret;
 -
 -       return smscore_set_gpio(coredev, gpio, lvl);
 -}
 -
 -int sms_board_power(struct smscore_device_t *coredev, int onoff)
 -{
 -       int board_id = smscore_get_board_id(coredev);
 -       struct sms_board *board = sms_get_board(board_id);
 -
 -       switch (board_id) {
 -       case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
 -               /* power LED */
 -               sms_set_gpio(coredev,
 -                            board-led_power, onoff ? 1 : 0);
 -               break;
 -       case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
 -       case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
 -               /* LNA */
 -               if (!onoff)
 -                       sms_set_gpio(coredev, board-lna_ctrl, 0);
 -               break;
 -       }
 -       return 0;
 -}
 -EXPORT_SYMBOL_GPL(sms_board_power);
 -
 -int sms_board_led_feedback(struct smscore_device_t *coredev, int led)
 -{
 -       int board_id = smscore_get_board_id(coredev);
 -       struct sms_board *board = sms_get_board(board_id);
 -
 -       /* dont touch GPIO if LEDs are already set */
 -       if (smscore_led_state(coredev, -1) == led)
 -               return 0;
 -
 -       switch (board_id) {
 -       case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
 -               sms_set_gpio(coredev,
 -                            board-led_lo, (led  SMS_LED_LO) ? 1 : 0);
 -               sms_set_gpio(coredev,
 -                            board-led_hi, (led  SMS_LED_HI) ? 1 : 0);
 -
 -               smscore_led_state(coredev, led);
 -               break;
 -       }
 -       return 0;
 -}
 -EXPORT_SYMBOL_GPL(sms_board_led_feedback);
 -
 -int sms_board_lna_control(struct smscore_device_t *coredev, int onoff)
 -{
 -       int board_id = smscore_get_board_id(coredev);
 -       struct sms_board *board = sms_get_board(board_id);
 -
 -       sms_debug(%s: LNA %s, __func__, onoff ? enabled : disabled);
 -
 -       switch (board_id) {
 -       case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
 -       case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
 -               sms_set_gpio(coredev,
 -                            board-rf_switch, onoff ? 1 : 0);
 -               return sms_set_gpio(coredev,
 -                                   board-lna_ctrl, onoff ? 1 : 0);
 -       }
 -       return -EINVAL;
 -}
 -EXPORT_SYMBOL_GPL(sms_board_lna_control);
 diff -r f78cbc153c82 -r fd16bcd8b9f1 linux/drivers/media/dvb/siano/sms-cards.h
 --- a/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:45:05 2009 +0300
 +++ b/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:50:24 2009 +0300
 @@ -110,11 +110,4 @@ int sms_board_event(struct smscore_devic
  int sms_board_event(struct smscore_device_t *coredev,
                enum SMS_BOARD_EVENTS gevent);

 -#define SMS_LED_OFF 0
 -#define SMS_LED_LO  1
 -#define SMS_LED_HI  2
 -int sms_board_led_feedback(struct smscore_device_t *coredev, int led);
 -int sms_board_power(struct smscore_device_t *coredev, int onoff);
 -int sms_board_lna_control(struct smscore_device_t *coredev, int onoff);
 -
  #endif /* __SMS_CARDS_H__ */




 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 

Re: [PATCH] [09051_47] Siano: smsdvb - add DVB v3 events

2009-05-19 Thread Uri Shkolnik



--- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org wrote:

 From: Michael Krufky mkru...@linuxtv.org
 Subject: Re: [PATCH] [09051_47] Siano: smsdvb - add DVB v3 events
 To: Uri Shkolnik uri...@yahoo.com
 Cc: LinuxML linux-media@vger.kernel.org, Mauro Carvalho Chehab 
 mche...@infradead.org
 Date: Tuesday, May 19, 2009, 7:18 PM
 On Tue, May 19, 2009 at 11:28 AM, Uri
 Shkolnik uri...@yahoo.com
 wrote:
 
  # HG changeset patch
  # User Uri Shkolnik u...@siano-ms.com
  # Date 1242747164 -10800
  # Node ID 971d4cc0d4009650bd4752c6a9fc09755ef77baf
  # Parent  98895daafb42f8b0757fd608b29c53c80327520e
  [09051_47] Siano: smsdvb - add DVB v3 events
 
  From: Uri Shkolnik u...@siano-ms.com
 
  Add various DVB-API v3 events, those events will trig
  target (card) events.
 
  Priority: normal
 
  Signed-off-by: Uri Shkolnik u...@siano-ms.com
 
  diff -r 98895daafb42 -r 971d4cc0d400
 linux/drivers/media/dvb/siano/smsdvb.c
  --- a/linux/drivers/media/dvb/siano/smsdvb.c    Tue
 May 19 18:27:38 2009 +0300
  +++ b/linux/drivers/media/dvb/siano/smsdvb.c    Tue
 May 19 18:32:44 2009 +0300
  @@ -66,6 +66,54 @@ MODULE_PARM_DESC(debug, set debug
 level
   /* Events that may come from DVB v3 adapter */
   static void sms_board_dvb3_event(struct
 smsdvb_client_t *client,
                 enum SMS_DVB3_EVENTS event) {
  +
  +       struct smscore_device_t *coredev =
 client-coredev;
  +       switch (event) {
  +       case DVB3_EVENT_INIT:
  +               sms_debug(DVB3_EVENT_INIT);
  +               sms_board_event(coredev,
 BOARD_EVENT_BIND);
  +               break;
  +       case DVB3_EVENT_SLEEP:
  +               sms_debug(DVB3_EVENT_SLEEP);
  +               sms_board_event(coredev,
 BOARD_EVENT_POWER_SUSPEND);
  +               break;
  +       case DVB3_EVENT_HOTPLUG:
  +              
 sms_debug(DVB3_EVENT_HOTPLUG);
  +               sms_board_event(coredev,
 BOARD_EVENT_POWER_INIT);
  +               break;
  +       case DVB3_EVENT_FE_LOCK:
  +               if (client-event_fe_state
 != DVB3_EVENT_FE_LOCK) {
  +                      
 client-event_fe_state = DVB3_EVENT_FE_LOCK;
  +                      
 sms_debug(DVB3_EVENT_FE_LOCK);
  +                      
 sms_board_event(coredev, BOARD_EVENT_FE_LOCK);
  +               }
  +               break;
  +       case DVB3_EVENT_FE_UNLOCK:
  +               if (client-event_fe_state
 != DVB3_EVENT_FE_UNLOCK) {
  +                      
 client-event_fe_state = DVB3_EVENT_FE_UNLOCK;
  +                      
 sms_debug(DVB3_EVENT_FE_UNLOCK);
  +                      
 sms_board_event(coredev, BOARD_EVENT_FE_UNLOCK);
  +               }
  +               break;
  +       case DVB3_EVENT_UNC_OK:
  +               if (client-event_unc_state
 != DVB3_EVENT_UNC_OK) {
  +                      
 client-event_unc_state = DVB3_EVENT_UNC_OK;
  +                      
 sms_debug(DVB3_EVENT_UNC_OK);
  +                      
 sms_board_event(coredev, BOARD_EVENT_MULTIPLEX_OK);
  +               }
  +               break;
  +       case DVB3_EVENT_UNC_ERR:
  +               if (client-event_unc_state
 != DVB3_EVENT_UNC_ERR) {
  +                      
 client-event_unc_state = DVB3_EVENT_UNC_ERR;
  +                      
 sms_debug(DVB3_EVENT_UNC_ERR);
  +                      
 sms_board_event(coredev, BOARD_EVENT_MULTIPLEX_ERRORS);
  +               }
  +               break;
  +
  +       default:
  +               sms_err(Unknown dvb3 api
 event);
  +               break;
  +       }
   }
 
   static int smsdvb_onresponse(void *context, struct
 smscore_buffer_t *cb)
 
 
 
 
  --
  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
 
 
 
 
 Uri,
 
 I don't understand what prompts you to call these DVB v3
 events ...
 what does this have to do with DVB API v3 at all? 
 Your idea seems to
 be in the right direction, but this DVBV3 nomenclature is
 a total
 misnomer.
 
 I think something along the lines of SMSBOARD_EVENT_FOO is
 more appropriate.
 
 Regards,
 
 Mike
 

Mike,

Within the DVB version 3 adapter, there is events manager, and the name we put 
on it is  dvb3_event, I think its OK

Uri


  
--
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


Re: [PATCH] [09051_58] Siano: remove obsolete code

2009-05-19 Thread Michael Krufky
On Tue, May 19, 2009 at 12:54 PM, Uri Shkolnik uri...@yahoo.com wrote:

 # HG changeset patch
 # User Uri Shkolnik u...@siano-ms.com
 # Date 1242752280 -10800
 # Node ID 0c33837206742f128aa033b2c9fb80c725e48dd7
 # Parent  fd16bcd8b9f1fffe0b605ca5b3b2138fc920e927
 [09051_58] Siano: remove obsolete code

 From: Uri Shkolnik u...@siano-ms.com

 Remove obsolete code - old gpio managment (totaly bogus),
 and its dependent code from cards.

 Priority: normal

 Signed-off-by: Uri Shkolnik u...@siano-ms.com

 diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.c
 --- a/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:50:24 2009 +0300
 +++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue May 19 19:58:00 2009 +0300
 @@ -66,24 +66,17 @@ static struct sms_board sms_boards[] = {
                .board_cfg.leds_power = 26,
                .board_cfg.led0 = 27,
                .board_cfg.led1 = 28,
 -               .led_power = 26,
 -               .led_lo    = 27,
 -               .led_hi    = 28,
        },
        [SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD] = {
                .name   = Hauppauge WinTV MiniCard,
                .type   = SMS_NOVA_B0,
                .fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
 -               .lna_ctrl  = 29,
                .board_cfg.foreign_lna0_ctrl = 29,
 -               .rf_switch = 17,
 -               .board_cfg.rf_switch_uhf = 17,
        },
        [SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2] = {
                .name   = Hauppauge WinTV MiniCard,
                .type   = SMS_NOVA_B0,
                .fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
 -               .lna_ctrl  = -1,
        },
        [SMS1XXX_BOARD_SIANO_NICE] = {
        /* 11 */
 diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.h
 --- a/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:50:24 2009 +0300
 +++ b/linux/drivers/media/dvb/siano/sms-cards.h Tue May 19 19:58:00 2009 +0300
 @@ -76,9 +76,6 @@ struct sms_board {
        char *name, *fw[DEVICE_MODE_MAX];
        struct sms_board_gpio_cfg board_cfg;
        enum ir_kb_type ir_kb_type;
 -
 -       /* gpios */
 -       int led_power, led_hi, led_lo, lna_ctrl, rf_switch;
  };

  struct sms_board *sms_get_board(int id);
 diff -r fd16bcd8b9f1 -r 0c3383720674 
 linux/drivers/media/dvb/siano/smscoreapi.c
 --- a/linux/drivers/media/dvb/siano/smscoreapi.c        Tue May 19 19:50:24 
 2009 +0300
 +++ b/linux/drivers/media/dvb/siano/smscoreapi.c        Tue May 19 19:58:00 
 2009 +0300
 @@ -74,14 +74,6 @@ void smscore_set_board_id(struct smscore
  {
        core-board_id = id;
  }
 -
 -int smscore_led_state(struct smscore_device_t *core, int led)
 -{
 -       if (led = 0)
 -               core-led_state = led;
 -       return core-led_state;
 -}
 -EXPORT_SYMBOL_GPL(smscore_set_board_id);

  int smscore_get_board_id(struct smscore_device_t *core)
  {
 @@ -1451,78 +1443,6 @@ static int smscore_map_common_buffer(str
  }
  #endif /* SMS_HOSTLIB_SUBSYS */

 -/* old GPIO managments implementation */
 -int smscore_configure_gpio(struct smscore_device_t *coredev, u32 pin,
 -                          struct smscore_config_gpio *pinconfig)
 -{
 -       struct {
 -               struct SmsMsgHdr_ST hdr;
 -               u32 data[6];
 -       } msg;
 -
 -       if (coredev-device_flags  SMS_DEVICE_FAMILY2) {
 -               msg.hdr.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
 -               msg.hdr.msgDstId = HIF_TASK;
 -               msg.hdr.msgFlags = 0;
 -               msg.hdr.msgType  = MSG_SMS_GPIO_CONFIG_EX_REQ;
 -               msg.hdr.msgLength = sizeof(msg);
 -
 -               msg.data[0] = pin;
 -               msg.data[1] = pinconfig-pullupdown;
 -
 -               /* Convert slew rate for Nova: Fast(0) = 3 / Slow(1) = 0; */
 -               msg.data[2] = pinconfig-outputslewrate == 0 ? 3 : 0;
 -
 -               switch (pinconfig-outputdriving) {
 -               case SMS_GPIO_OUTPUTDRIVING_16mA:
 -                       msg.data[3] = 7; /* Nova - 16mA */
 -                       break;
 -               case SMS_GPIO_OUTPUTDRIVING_12mA:
 -                       msg.data[3] = 5; /* Nova - 11mA */
 -                       break;
 -               case SMS_GPIO_OUTPUTDRIVING_8mA:
 -                       msg.data[3] = 3; /* Nova - 7mA */
 -                       break;
 -               case SMS_GPIO_OUTPUTDRIVING_4mA:
 -               default:
 -                       msg.data[3] = 2; /* Nova - 4mA */
 -                       break;
 -               }
 -
 -               msg.data[4] = pinconfig-direction;
 -               msg.data[5] = 0;
 -       } else /* TODO: SMS_DEVICE_FAMILY1 */
 -               return -EINVAL;
 -
 -       return coredev-sendrequest_handler(coredev-context,
 -                                           msg, sizeof(msg));
 -}
 -
 -int smscore_set_gpio(struct smscore_device_t *coredev, u32 pin, int level)
 -{
 -       struct {
 -               struct SmsMsgHdr_ST 

Re: [PATCH] [09051_54] Siano: remove obsolete sms_board_setup

2009-05-19 Thread Uri Shkolnik



--- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org wrote:

 From: Michael Krufky mkru...@linuxtv.org
 Subject: Re: [PATCH] [09051_54] Siano: remove obsolete sms_board_setup
 To: Uri Shkolnik uri...@yahoo.com
 Cc: linux-media linux-media@vger.kernel.org, Mauro Carvalho Chehab 
 mche...@infradead.org
 Date: Tuesday, May 19, 2009, 8:02 PM
 On Tue, May 19, 2009 at 12:57 PM, Uri
 Shkolnik uri...@yahoo.com
 wrote:
 
 
 
  --- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org
 wrote:
 
  From: Michael Krufky mkru...@linuxtv.org
  Subject: Re: [PATCH] [09051_54] Siano: remove
 obsolete sms_board_setup
  To: Uri Shkolnik uri...@yahoo.com
  Cc: LinuxML linux-media@vger.kernel.org,
 Mauro Carvalho Chehab mche...@infradead.org
  Date: Tuesday, May 19, 2009, 7:31 PM
  On Tue, May 19, 2009 at 12:15 PM, Uri
  Shkolnik uri...@yahoo.com
  wrote:
  
   # HG changeset patch
   # User Uri Shkolnik u...@siano-ms.com
   # Date 1242749967 -10800
   # Node ID
 0296b0c436d6deba48c710cfb510988267cea057
   # Parent
  dfcfb90798d3a27cb174019b17fffdee9ce7b2b9
   [09051_54] Siano: remove obsolete
 sms_board_setup
  
   From: Uri Shkolnik u...@siano-ms.com
  
   Remove the target specific sms_board_setup
 from
  smsdvb. This
   is handled now via smsdvb and sms-cards
 events.
  
   Priority: normal
  
   Signed-off-by: Uri Shkolnik u...@siano-ms.com
  
   diff -r dfcfb90798d3 -r 0296b0c436d6
  linux/drivers/media/dvb/siano/sms-cards.c
   ---
 a/linux/drivers/media/dvb/siano/sms-cards.c Tue
  May 19 19:05:02 2009 +0300
   +++
 b/linux/drivers/media/dvb/siano/sms-cards.c Tue
  May 19 19:19:27 2009 +0300
   @@ -303,28 +303,6 @@ static int
 sms_set_gpio(struct
  smscore_d
          return smscore_set_gpio(coredev,
 gpio,
  lvl);
    }
  
   -int sms_board_setup(struct smscore_device_t
  *coredev)
   -{
   -       int board_id =
  smscore_get_board_id(coredev);
   -       struct sms_board *board =
  sms_get_board(board_id);
   -
   -       switch (board_id) {
   -       case
 SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
   -               /* turn off all LEDs
 */
   -               sms_set_gpio(coredev,
  board-led_power, 0);
   -               sms_set_gpio(coredev,
  board-led_hi, 0);
   -               sms_set_gpio(coredev,
  board-led_lo, 0);
   -               break;
   -       case
  SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
   -       case
  SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
   -               /* turn off LNA */
   -               sms_set_gpio(coredev,
  board-lna_ctrl, 0);
   -               break;
   -       }
   -       return 0;
   -}
   -EXPORT_SYMBOL_GPL(sms_board_setup);
   -
    int sms_board_power(struct
 smscore_device_t
  *coredev, int onoff)
    {
          int board_id =
  smscore_get_board_id(coredev);
   diff -r dfcfb90798d3 -r 0296b0c436d6
  linux/drivers/media/dvb/siano/sms-cards.h
   ---
 a/linux/drivers/media/dvb/siano/sms-cards.h Tue
  May 19 19:05:02 2009 +0300
   +++
 b/linux/drivers/media/dvb/siano/sms-cards.h Tue
  May 19 19:19:27 2009 +0300
   @@ -109,8 +109,6 @@ int
 sms_board_event(struct
  smscore_devic
    int sms_board_event(struct
 smscore_device_t
  *coredev,
                  enum SMS_BOARD_EVENTS
 gevent);
  
   -int sms_board_setup(struct smscore_device_t
  *coredev);
   -
    #define SMS_LED_OFF 0
    #define SMS_LED_LO  1
    #define SMS_LED_HI  2
   diff -r dfcfb90798d3 -r 0296b0c436d6
  linux/drivers/media/dvb/siano/smsdvb.c
   --- a/linux/drivers/media/dvb/siano/smsdvb.c
    Tue
  May 19 19:05:02 2009 +0300
   +++ b/linux/drivers/media/dvb/siano/smsdvb.c
    Tue
  May 19 19:19:27 2009 +0300
   @@ -600,7 +600,6 @@ static int
 smsdvb_hotplug(struct
  smscore
          sms_board_dvb3_event(client,
  DVB3_EVENT_HOTPLUG);
  
          sms_info(success);
   -       sms_board_setup(coredev);
  
          return 0;
  
  
  
  
  
   --
   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
  
 
 
 
  NACK.
 
 
  This changes the behavior of the Hauppauge
 devices.
  Let Uri get all
  his other stuff in place first, and THEN we can
 look at
  this
  separately.
 
  In addition, this changeset was merged WITHOUT my
 ack:
 
  http://linuxtv.org/hg/v4l-dvb/rev/37969546eee8 -
 Siano:
  smscards -
  assign gpio to HPG targets
 
  That changeset 37969546eee8 alone does not cause
 any change
  in
  behavior, but with Uri's patches from today it
 will change
  the
  Hauppauge device behavior.
 
  That patch should be reverted and dealt with
 separately,
  after Uri is
  finished with his other changes.
 
  -Mike
 
 
  Mike,
 
  Please note that the Hauppauge device behavior has
 been merged to the board_event()  **prior** to this patch.
 
  I did my best to follow the logic, I might be wrong
 (please check).
 
  This patch is remove *duplicate* led setting, etc...
 
 Uri,
 
 I nack'd that patch as well.  Please don't change the
 Hauppauge device
 behavior -- those 

Re: [PATCH] [09051_57] Siano: smscards - remove redundant code

2009-05-19 Thread Uri Shkolnik



--- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org wrote:

 From: Michael Krufky mkru...@linuxtv.org
 Subject: Re: [PATCH] [09051_57] Siano: smscards - remove redundant code
 To: Uri Shkolnik uri...@yahoo.com
 Cc: LinuxML linux-media@vger.kernel.org, Mauro Carvalho Chehab 
 mche...@infradead.org
 Date: Tuesday, May 19, 2009, 8:04 PM
 On Tue, May 19, 2009 at 12:46 PM, Uri
 Shkolnik uri...@yahoo.com
 wrote:
 
  # HG changeset patch
  # User Uri Shkolnik u...@siano-ms.com
  # Date 1242751824 -10800
  # Node ID fd16bcd8b9f1fffe0b605ca5b3b2138fc920e927
  # Parent  f78cbc153c82ebe58a1bbe82271b91f5a4a90642
  [09051_57] Siano: smscards - remove redundant code
 
  From: Uri Shkolnik u...@siano-ms.com
 
  Remove code that has been duplicate with the new
 boards events manager
 
  Priority: normal
 
  Signed-off-by: Uri Shkolnik u...@siano-ms.com
 
  diff -r f78cbc153c82 -r fd16bcd8b9f1
 linux/drivers/media/dvb/siano/sms-cards.c
  --- a/linux/drivers/media/dvb/siano/sms-cards.c Tue
 May 19 19:45:05 2009 +0300
  +++ b/linux/drivers/media/dvb/siano/sms-cards.c Tue
 May 19 19:50:24 2009 +0300
  @@ -281,98 +281,3 @@ int sms_board_event(struct
 smscore_devic
         return 0;
   }
   EXPORT_SYMBOL_GPL(sms_board_event);
  -
  -static int sms_set_gpio(struct smscore_device_t
 *coredev, int pin, int enable)
  -{
  -       int lvl, ret;
  -       u32 gpio;
  -       struct smscore_config_gpio gpioconfig = {
  -               .direction            =
 SMS_GPIO_DIRECTION_OUTPUT,
  -               .pullupdown           =
 SMS_GPIO_PULLUPDOWN_NONE,
  -               .inputcharacteristics =
 SMS_GPIO_INPUTCHARACTERISTICS_NORMAL,
  -               .outputslewrate       =
 SMS_GPIO_OUTPUTSLEWRATE_FAST,
  -               .outputdriving        =
 SMS_GPIO_OUTPUTDRIVING_4mA,
  -       };
  -
  -       if (pin == 0)
  -               return -EINVAL;
  -
  -       if (pin  0) {
  -               /* inverted gpio */
  -               gpio = pin * -1;
  -               lvl = enable ? 0 : 1;
  -       } else {
  -               gpio = pin;
  -               lvl = enable ? 1 : 0;
  -       }
  -
  -       ret = smscore_configure_gpio(coredev, gpio,
 gpioconfig);
  -       if (ret  0)
  -               return ret;
  -
  -       return smscore_set_gpio(coredev, gpio,
 lvl);
  -}
  -
  -int sms_board_power(struct smscore_device_t *coredev,
 int onoff)
  -{
  -       int board_id =
 smscore_get_board_id(coredev);
  -       struct sms_board *board =
 sms_get_board(board_id);
  -
  -       switch (board_id) {
  -       case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
  -               /* power LED */
  -               sms_set_gpio(coredev,
  -                          
  board-led_power, onoff ? 1 : 0);
  -               break;
  -       case
 SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
  -       case
 SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
  -               /* LNA */
  -               if (!onoff)
  -                      
 sms_set_gpio(coredev, board-lna_ctrl, 0);
  -               break;
  -       }
  -       return 0;
  -}
  -EXPORT_SYMBOL_GPL(sms_board_power);
  -
  -int sms_board_led_feedback(struct smscore_device_t
 *coredev, int led)
  -{
  -       int board_id =
 smscore_get_board_id(coredev);
  -       struct sms_board *board =
 sms_get_board(board_id);
  -
  -       /* dont touch GPIO if LEDs are already set
 */
  -       if (smscore_led_state(coredev, -1) == led)
  -               return 0;
  -
  -       switch (board_id) {
  -       case SMS1XXX_BOARD_HAUPPAUGE_WINDHAM:
  -               sms_set_gpio(coredev,
  -                          
  board-led_lo, (led  SMS_LED_LO) ? 1 : 0);
  -               sms_set_gpio(coredev,
  -                          
  board-led_hi, (led  SMS_LED_HI) ? 1 : 0);
  -
  -               smscore_led_state(coredev,
 led);
  -               break;
  -       }
  -       return 0;
  -}
  -EXPORT_SYMBOL_GPL(sms_board_led_feedback);
  -
  -int sms_board_lna_control(struct smscore_device_t
 *coredev, int onoff)
  -{
  -       int board_id =
 smscore_get_board_id(coredev);
  -       struct sms_board *board =
 sms_get_board(board_id);
  -
  -       sms_debug(%s: LNA %s, __func__, onoff ?
 enabled : disabled);
  -
  -       switch (board_id) {
  -       case
 SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
  -       case
 SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
  -               sms_set_gpio(coredev,
  -                          
  board-rf_switch, onoff ? 1 : 0);
  -               return sms_set_gpio(coredev,
  -                                  
 board-lna_ctrl, onoff ? 1 : 0);
  -       }
  -       return -EINVAL;
  -}
  -EXPORT_SYMBOL_GPL(sms_board_lna_control);
  diff -r f78cbc153c82 -r fd16bcd8b9f1
 linux/drivers/media/dvb/siano/sms-cards.h
  --- a/linux/drivers/media/dvb/siano/sms-cards.h Tue
 May 19 19:45:05 2009 +0300
  +++ b/linux/drivers/media/dvb/siano/sms-cards.h Tue
 May 19 19:50:24 2009 +0300
  @@ -110,11 +110,4 @@ int sms_board_event(struct
 smscore_devic
   int sms_board_event(struct smscore_device_t
 

Re: [PATCH][RESEND] Use correct sampling rate for TV/FM radio

2009-05-19 Thread Oldrich Jedlicka
On Tuesday 14 of April 2009 at 20:48:14, Oldrich Jedlicka wrote:
 Here is the fix for using the 32kHz sampling rate for TV and FM radio
 (ALSA). The TV uses 32kHz anyway (mode 0; 32kHz demdec on), radio works
 only with 32kHz (mode 1; 32kHz baseband). The ALSA wrongly reported 32kHz
 and 48kHz for everything (TV, radio, LINE1/2).

 Now it should be possible to just use the card without the need to change
 the capture rate from 48kHz to 32kHz. Enjoy :-)


Hi Mauro,

are there some comments for/against this patch? It is rather long time when I 
sent it, so I would like to know some opinions.

The reason behind this patch is that the code uses 32kHz for TV and for radio 
(the radio cannot use other frequency as far as I know). ALSA then reports 
both 32kHz and 48kHz for TV/radio, but 48kHz cannot be used.

Thanks!

Cheers,
Oldrich.

 Now without word-wrapping.

 Signed-off-by: Oldřich Jedlička oldium@seznam.cz
 ---
 diff -r dba0b6fae413 linux/drivers/media/video/saa7134/saa7134-alsa.c
 --- a/linux/drivers/media/video/saa7134/saa7134-alsa.cThu Apr 09 
 08:21:42
 2009 -0300 +++ b/linux/drivers/media/video/saa7134/saa7134-alsa.c Mon Apr
 13 23:07:22 2009 +0200 @@ -465,6 +465,29 @@
   .periods_max =  1024,
  };

 +static struct snd_pcm_hardware snd_card_saa7134_capture_32kHz_only =
 +{
 + .info = (SNDRV_PCM_INFO_MMAP | 
 SNDRV_PCM_INFO_INTERLEAVED
 | +SNDRV_PCM_INFO_BLOCK_TRANSFER |
 +  SNDRV_PCM_INFO_MMAP_VALID),
 + .formats =  SNDRV_PCM_FMTBIT_S16_LE | \
 + SNDRV_PCM_FMTBIT_S16_BE | \
 + SNDRV_PCM_FMTBIT_S8 | \
 + SNDRV_PCM_FMTBIT_U8 | \
 + SNDRV_PCM_FMTBIT_U16_LE | \
 + SNDRV_PCM_FMTBIT_U16_BE,
 + .rates =SNDRV_PCM_RATE_32000,
 + .rate_min = 32000,
 + .rate_max = 32000,
 + .channels_min = 1,
 + .channels_max = 2,
 + .buffer_bytes_max = (256*1024),
 + .period_bytes_min = 64,
 + .period_bytes_max = (256*1024),
 + .periods_min =  4,
 + .periods_max =  1024,
 +};
 +
  static void snd_card_saa7134_runtime_free(struct snd_pcm_runtime *runtime)
  {
   snd_card_saa7134_pcm_t *pcm = runtime-private_data;
 @@ -651,7 +674,13 @@
   pcm-substream = substream;
   runtime-private_data = pcm;
   runtime-private_free = snd_card_saa7134_runtime_free;
 - runtime-hw = snd_card_saa7134_capture;
 +
 + if (amux == TV || card(dev).radio == dev-input) {
 + /* TV uses 32kHz sampling, AM/FM radio is locked to 32kHz */
 + runtime-hw = snd_card_saa7134_capture_32kHz_only;
 + } else {
 + runtime-hw = snd_card_saa7134_capture;
 + }

   if (dev-ctl_mute != 0) {
   saa7134-mute_was_on = 1;
 --
 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


--
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


Problems with tuning (only after a while) and Nexus-S

2009-05-19 Thread Michael Stapelberg
Hi,

since some days I have problems with my Nexus-S v2.3 and tuning. dmesg says
this about the adapter:

DVB: registering new adapter (Technotrend/Hauppauge WinTV Nexus-S rev2.3)
adapter has MAC addr = 00:d0:5c:04:f4:2f
dvb-ttpci: info @ card 0: firm f0240009, rtsl b0250018, vid 0f12623
dvb-ttpci: firmware @ card 0 supports CI link layer interface
dvb-ttpci: Crystal audio DAC @ card 0 detected
saa7146_vv: saa7146 (0): registered device video0 [v4l2]
saa7146_vv: saa7146 (0): registered device vbi0 [v4l2]
DVB: registering adapter 0 frontend 0 (ST STV0299 DVB-S)...
input: DVB on-card IR receiver as /class/input/input12
dvb-ttpci: found av7110-0.

Kernel version is 2.6.29, though this happened in my old machine with 2.6.22
aswell. Firmware is dvb-ttpci-01.fw-2622

After some hours of tuning (delay 5 seconds to stress-test the machine), it
will not get further than FE_HAS_SIGNAL and FE_HAS_CARRIER. Only on the
ProSiebenSat.1-transponder i still get a lock, which i find quite odd.

Could it be the cable being badly shielded? Or may it be the LNB failing?
We had some issues with an analog receiver (on the same LNB) displaying
interferences.

I already tried disconnecting the analog receiver to make sure it doesn’t
interfere with the DVB card, but that wasn’t the problem.

Any other ideas what I could try?

Enabling the debug options of the driver led to the following output:
DVB: initialising adapter 0 frontend 0 (ST STV0299 DVB-S)...
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_get_event
dvb_frontend_ioctl
dvb_frontend_add_event
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_swzigzag_autotune: drift:0 inversion:0 auto_step:0 auto_sub_step:0 
started_auto_step:0
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_add_event
dvb_frontend_swzigzag_autotune: drift:0 inversion:1 auto_step:0 auto_sub_step:1 
started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:1718 inversion:1 auto_step:1 
auto_sub_step:0 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:1718 inversion:0 auto_step:1 
auto_sub_step:1 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-1718 inversion:0 auto_step:1 
auto_sub_step:2 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-1718 inversion:1 auto_step:1 
auto_sub_step:3 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:3436 inversion:1 auto_step:2 
auto_sub_step:0 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:3436 inversion:0 auto_step:2 
auto_sub_step:1 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-3436 inversion:0 auto_step:2 
auto_sub_step:2 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-3436 inversion:1 auto_step:2 
auto_sub_step:3 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:5154 inversion:1 auto_step:3 
auto_sub_step:0 started_auto_step:0
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_swzigzag_autotune: drift:5154 inversion:0 auto_step:3 
auto_sub_step:1 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-5154 inversion:0 auto_step:3 
auto_sub_step:2 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-5154 inversion:1 auto_step:3 
auto_sub_step:3 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:6872 inversion:1 auto_step:4 
auto_sub_step:0 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:6872 inversion:0 auto_step:4 
auto_sub_step:1 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-6872 inversion:0 auto_step:4 
auto_sub_step:2 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-6872 inversion:1 auto_step:4 
auto_sub_step:3 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:8590 inversion:1 auto_step:5 
auto_sub_step:0 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:8590 inversion:0 auto_step:5 
auto_sub_step:1 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-8590 inversion:0 auto_step:5 
auto_sub_step:2 started_auto_step:0
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_ioctl
dvb_frontend_swzigzag_autotune: drift:-8590 inversion:1 auto_step:5 
auto_sub_step:3 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:10308 inversion:1 auto_step:6 
auto_sub_step:0 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:10308 inversion:0 auto_step:6 
auto_sub_step:1 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-10308 inversion:0 auto_step:6 
auto_sub_step:2 started_auto_step:0
dvb_frontend_swzigzag_autotune: drift:-10308 inversion:1 auto_step:6 
auto_sub_step:3 started_auto_step:0
dvb_frontend_add_event
dvb_frontend_swzigzag_autotune: drift:12026 inversion:1 auto_step:7 
auto_sub_step:0 started_auto_step:0
dvb_frontend_add_event
dvb_frontend_swzigzag_autotune: drift:12026 inversion:0 auto_step:7 
auto_sub_step:1 started_auto_step:0
dvb_frontend_add_event
dvb_frontend_swzigzag_autotune: drift:-12026 inversion:0 

Re: [PATCH] [09051_49] Siano: smscore - upgrade firmware loading engine

2009-05-19 Thread Uri Shkolnik

  More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
 
 
 
 This patch should not be merged in its current form.
 
 Linux kernel driver development shall be against the
 current -rc
 kernel, and there is no need to reinvent the
 REQUEST_FIRMWARE
 mechanism.
 
 Furthermore, the changeset introduces more bits of this
 SMS_HOSTLIB_SUBSYS -- this requires a binary library
 present on the
 host system.  This completely violates the no
 multiple APIs in
 kernel and no proprietary APIs in kernel guidelines.
 
 Uri, what are your plans for this?
 
 Regards,
 
 Mike
 

Mike,

Per discussion with other members of the community, backport are welcome at 
LinuxTV mercurial (true they are not pass through when up-streaming to the 
kernel git, but that is per current kernel version anyway ...). 

Regarding the REQUEST_FIRMWARE - with most older kernels, and with some new (I 
even have such 2.6.27 case), that is the only option available, Please check 
Motorola (opensource.motorola.com) and Google Android for external examples. 
Second issue is that when you are using interface like SPI, the hotplug 
mechanism is degenerated or simply voided. So we can either decide we support 
only x86 based machines, but if I'm not wrong, I can see lots of TI OMAP (and 
other ARM) activity lately, so, we may decide to support REQUEST_FIRMWARE...  

Regarding SMS_HOSTLIB_SUBSYS, since it's not defined its... undefined...
The patch replace '#if 0' with '#ifdef SMS_HOSTLIB_SUBSYS' (which is... 
undefined), so actually no harm done, but it make the life of Siano's 
engineers, and various other who use patches and merges, easier when looking at 
the code (IMHO strings are better than magic numbers). I simply don't see 
what's wrong with that.




  
--
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


[cron job] v4l-dvb daily build 2.6.22 and up: ERRORS, 2.6.16-2.6.21: ERRORS

2009-05-19 Thread Hans Verkuil
This message is generated daily by a cron job that builds v4l-dvb for
the kernels and architectures in the list below.

Results of the daily build of v4l-dvb:

date:Tue May 19 19:00:03 CEST 2009
path:http://www.linuxtv.org/hg/v4l-dvb
changeset:   11824:315bc4b65b4f
gcc version: gcc (GCC) 4.3.1
hardware:x86_64
host os: 2.6.26

linux-2.6.22.19-armv5: OK
linux-2.6.23.12-armv5: OK
linux-2.6.24.7-armv5: OK
linux-2.6.25.11-armv5: OK
linux-2.6.26-armv5: OK
linux-2.6.27-armv5: OK
linux-2.6.28-armv5: OK
linux-2.6.29.1-armv5: OK
linux-2.6.30-rc4-armv5: OK
linux-2.6.27-armv5-ixp: WARNINGS
linux-2.6.28-armv5-ixp: WARNINGS
linux-2.6.29.1-armv5-ixp: WARNINGS
linux-2.6.30-rc4-armv5-ixp: WARNINGS
linux-2.6.28-armv5-omap2: WARNINGS
linux-2.6.29.1-armv5-omap2: WARNINGS
linux-2.6.30-rc4-armv5-omap2: WARNINGS
linux-2.6.22.19-i686: ERRORS
linux-2.6.23.12-i686: ERRORS
linux-2.6.24.7-i686: ERRORS
linux-2.6.25.11-i686: ERRORS
linux-2.6.26-i686: WARNINGS
linux-2.6.27-i686: WARNINGS
linux-2.6.28-i686: WARNINGS
linux-2.6.29.1-i686: WARNINGS
linux-2.6.30-rc4-i686: WARNINGS
linux-2.6.23.12-m32r: OK
linux-2.6.24.7-m32r: OK
linux-2.6.25.11-m32r: OK
linux-2.6.26-m32r: OK
linux-2.6.27-m32r: OK
linux-2.6.28-m32r: OK
linux-2.6.29.1-m32r: OK
linux-2.6.30-rc4-m32r: OK
linux-2.6.22.19-mips: ERRORS
linux-2.6.26-mips: ERRORS
linux-2.6.27-mips: ERRORS
linux-2.6.28-mips: ERRORS
linux-2.6.29.1-mips: ERRORS
linux-2.6.30-rc4-mips: ERRORS
linux-2.6.27-powerpc64: WARNINGS
linux-2.6.28-powerpc64: WARNINGS
linux-2.6.29.1-powerpc64: WARNINGS
linux-2.6.30-rc4-powerpc64: WARNINGS
linux-2.6.22.19-x86_64: ERRORS
linux-2.6.23.12-x86_64: ERRORS
linux-2.6.24.7-x86_64: ERRORS
linux-2.6.25.11-x86_64: ERRORS
linux-2.6.26-x86_64: WARNINGS
linux-2.6.27-x86_64: WARNINGS
linux-2.6.28-x86_64: WARNINGS
linux-2.6.29.1-x86_64: WARNINGS
linux-2.6.30-rc4-x86_64: WARNINGS
sparse (linux-2.6.29.1): OK
sparse (linux-2.6.30-rc4): OK
linux-2.6.16.61-i686: ERRORS
linux-2.6.17.14-i686: ERRORS
linux-2.6.18.8-i686: ERRORS
linux-2.6.19.5-i686: ERRORS
linux-2.6.20.21-i686: ERRORS
linux-2.6.21.7-i686: ERRORS
linux-2.6.16.61-x86_64: ERRORS
linux-2.6.17.14-x86_64: ERRORS
linux-2.6.18.8-x86_64: ERRORS
linux-2.6.19.5-x86_64: ERRORS
linux-2.6.20.21-x86_64: ERRORS
linux-2.6.21.7-x86_64: ERRORS

Detailed results are available here:

http://www.xs4all.nl/~hverkuil/logs/Tuesday.log

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Tuesday.tar.bz2

The V4L2 specification from this daily build is here:

http://www.xs4all.nl/~hverkuil/spec/v4l2.html

The DVB API specification from this daily build is here:

http://www.xs4all.nl/~hverkuil/spec/dvbapi.pdf

--
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


Re: Preliminary results with an SN9C2028 camera

2009-05-19 Thread Theodore Kilgore



On Tue, 19 May 2009, Hans de Goede wrote:




On 05/16/2009 12:31 AM, Theodore Kilgore wrote:


I decided recently to work on support for the SN9C2028 dual-mode
cameras, which are supported as still cameras in
libgphoto2/camlibs/sonix. Today, I succeeded in getting three frames out
of one of them, using svv -gr, and I was able to convert two of the
three frames to nice images using the same decompression algorithm which
is used for the cameras in stillcam mode.

There is a lot of work to do yet: support for all appropriate resolution
settings (which are what? I do not yet know), support for all known
cameras for which I can chase down an owner, and incorporation of the
decompression code in libv4l.

However, I thought you might like to know that some success has been
achieved.



Cool!

I recently got a vivitar mini digital camera, usb id 093a 010e,
CD302N according to gphoto, which also is a dual mode camera. It would
be nice to get the webcam mode on this one supported too. Do you know
if there has already been some base work done on that ?



Hans,

Yes, I have been working on that, with some success. Here is an account:

These cameras are MR97310a cameras, specifically the CIF variety. They 
will stream at max resolution 352x288, and then at 320x240, 176x144, and 
160x120. I thought at first they are using a different compression 
algorithm from those which are supported currently in gspca/mr97310.c but 
I was mistaken about that. In fact, the compression algorithm is the same 
(so that no code changes in libv4lconvert are required in order to support 
them) but the initialization sequence is quite a bit different.



I succeeded in getting what seemed like a sufficient number of log files 
to be able to put together init sequences which work. I have a preliminary 
version of the code, which works for me with several of the 0x010e cameras 
that I own. Right now, Thomas Kaiser got one of these cameras recently 
(there was some discussion about this a couple of weeks ago, here on the 
list). Someone wrote in to the list and offered one of the cameras for 
testing. I responded and said it should be sent to one of the three people 
who are interested: Kyle Guinn, who wrote the mr97310a.c code, Thomas 
Kaiser, who had some interest in the decompression algorithms, or myself. 
The camera ended up going to Thomas.


About the same time, I sent my code to Thomas. Basically, what I have done 
is to write a replacement for mr97310a.c which supports these cameras in 
addition to the current ones. I hope that we have a report of his testing 
soon. Since you now have one of these cameras, would you like for me to 
send a copy to you, too?


I should mention there are several reasons why I did not feel ready to 
post a formal code patch:


1. The initialization sequences (register writes) seem to be variable from 
one session to another, and they can be influenced on the Windows 
streaming program that I am using, by such things as changing brightness, 
color balance, gamma setting, and so forth, from controls in the Windows 
program. In other words, it is feasible for various controls to talk to 
these cameras (presumably all mr97310a cameras). I was hoping that Thomas 
may know more about such things. Perhaps you do, too?


2. I have one of these CIF cameras which will neither stream on Linux 
nor on Windows. It goes throught all of the motions, and a stream 
starts. But inspection of the contents of the stream shows it consists 
of nothing but sucessive repetitions of the image header. I have tried to 
chase down comments about this camera (Vivitar Mini Digital Camera) 
through Google. It seems that many have had this problem; perhaps some of 
these particular cameras contained buggy hardware.


3. I have another camera (one of the 0x010f VGA cameras) which is 
supposed to stream but refuses to supply data across the isoc endpoint. 
Probably this is also a hardware problem. It does not work in Windows, 
either, even though it is supposed to. Perhaps it has merely suffered from 
old age or ill treatment years ago by its owner (me).



So, as I said, I am perfectly willing to send along my code privately, and 
you can have some fun, too, and perhaps you can help me figure out some of 
the remaining issues. This offer, incidentally, is also valid for anyone 
else on this list who has one of these cameras. Just ask.



Theodore Kilgore
--
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


Re: [PATCH] [09051_47] Siano: smsdvb - add DVB v3 events

2009-05-19 Thread Michael Krufky
On Tue, May 19, 2009 at 1:05 PM, Uri Shkolnik uri...@yahoo.com wrote:



 --- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org wrote:

 From: Michael Krufky mkru...@linuxtv.org
 Subject: Re: [PATCH] [09051_47] Siano: smsdvb - add DVB v3 events
 To: Uri Shkolnik uri...@yahoo.com
 Cc: LinuxML linux-media@vger.kernel.org, Mauro Carvalho Chehab 
 mche...@infradead.org
 Date: Tuesday, May 19, 2009, 7:18 PM
 On Tue, May 19, 2009 at 11:28 AM, Uri
 Shkolnik uri...@yahoo.com
 wrote:
 
  # HG changeset patch
  # User Uri Shkolnik u...@siano-ms.com
  # Date 1242747164 -10800
  # Node ID 971d4cc0d4009650bd4752c6a9fc09755ef77baf
  # Parent  98895daafb42f8b0757fd608b29c53c80327520e
  [09051_47] Siano: smsdvb - add DVB v3 events
 
  From: Uri Shkolnik u...@siano-ms.com
 
  Add various DVB-API v3 events, those events will trig
  target (card) events.
 
  Priority: normal
 
  Signed-off-by: Uri Shkolnik u...@siano-ms.com
 
  diff -r 98895daafb42 -r 971d4cc0d400
 linux/drivers/media/dvb/siano/smsdvb.c
  --- a/linux/drivers/media/dvb/siano/smsdvb.c    Tue
 May 19 18:27:38 2009 +0300
  +++ b/linux/drivers/media/dvb/siano/smsdvb.c    Tue
 May 19 18:32:44 2009 +0300
  @@ -66,6 +66,54 @@ MODULE_PARM_DESC(debug, set debug
 level
   /* Events that may come from DVB v3 adapter */
   static void sms_board_dvb3_event(struct
 smsdvb_client_t *client,
                 enum SMS_DVB3_EVENTS event) {
  +
  +       struct smscore_device_t *coredev =
 client-coredev;
  +       switch (event) {
  +       case DVB3_EVENT_INIT:
  +               sms_debug(DVB3_EVENT_INIT);
  +               sms_board_event(coredev,
 BOARD_EVENT_BIND);
  +               break;
  +       case DVB3_EVENT_SLEEP:
  +               sms_debug(DVB3_EVENT_SLEEP);
  +               sms_board_event(coredev,
 BOARD_EVENT_POWER_SUSPEND);
  +               break;
  +       case DVB3_EVENT_HOTPLUG:
  +
 sms_debug(DVB3_EVENT_HOTPLUG);
  +               sms_board_event(coredev,
 BOARD_EVENT_POWER_INIT);
  +               break;
  +       case DVB3_EVENT_FE_LOCK:
  +               if (client-event_fe_state
 != DVB3_EVENT_FE_LOCK) {
  +
 client-event_fe_state = DVB3_EVENT_FE_LOCK;
  +
 sms_debug(DVB3_EVENT_FE_LOCK);
  +
 sms_board_event(coredev, BOARD_EVENT_FE_LOCK);
  +               }
  +               break;
  +       case DVB3_EVENT_FE_UNLOCK:
  +               if (client-event_fe_state
 != DVB3_EVENT_FE_UNLOCK) {
  +
 client-event_fe_state = DVB3_EVENT_FE_UNLOCK;
  +
 sms_debug(DVB3_EVENT_FE_UNLOCK);
  +
 sms_board_event(coredev, BOARD_EVENT_FE_UNLOCK);
  +               }
  +               break;
  +       case DVB3_EVENT_UNC_OK:
  +               if (client-event_unc_state
 != DVB3_EVENT_UNC_OK) {
  +
 client-event_unc_state = DVB3_EVENT_UNC_OK;
  +
 sms_debug(DVB3_EVENT_UNC_OK);
  +
 sms_board_event(coredev, BOARD_EVENT_MULTIPLEX_OK);
  +               }
  +               break;
  +       case DVB3_EVENT_UNC_ERR:
  +               if (client-event_unc_state
 != DVB3_EVENT_UNC_ERR) {
  +
 client-event_unc_state = DVB3_EVENT_UNC_ERR;
  +
 sms_debug(DVB3_EVENT_UNC_ERR);
  +
 sms_board_event(coredev, BOARD_EVENT_MULTIPLEX_ERRORS);
  +               }
  +               break;
  +
  +       default:
  +               sms_err(Unknown dvb3 api
 event);
  +               break;
  +       }
   }
 
   static int smsdvb_onresponse(void *context, struct
 smscore_buffer_t *cb)
 
 
 
 
  --
  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
 



 Uri,

 I don't understand what prompts you to call these DVB v3
 events ...
 what does this have to do with DVB API v3 at all?
 Your idea seems to
 be in the right direction, but this DVBV3 nomenclature is
 a total
 misnomer.

 I think something along the lines of SMSBOARD_EVENT_FOO is
 more appropriate.

 Regards,

 Mike


 Mike,

 Within the DVB version 3 adapter, there is events manager, and the name we 
 put on it is  dvb3_event, I think its OK

 Uri



 --
 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


I disagree.  Your naming implies that these structures are on the
subsystem level, and they have nothing to do with DVB3 anyway -- these
are board related events.  dvb3_event is a total misnomer.

-Mike
--
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


Re: [PATCH] [09051_40] Siano - kconfig update

2009-05-19 Thread Uri Shkolnik



--- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org wrote:

 From: Michael Krufky mkru...@linuxtv.org
 Subject: Re: [PATCH] [09051_40] Siano - kconfig update
 To: Uri Shkolnik uri...@yahoo.com
 Cc: LinuxML linux-media@vger.kernel.org, Mauro Carvalho Chehab 
 mche...@infradead.org
 Date: Tuesday, May 19, 2009, 6:47 PM
 On Tue, May 19, 2009 at 7:58 AM, Uri
 Shkolnik uri...@yahoo.com
 wrote:
 
  # HG changeset patch
  # User Uri Shkolnik u...@siano-ms.com
  # Date 1242734522 -10800
  # Node ID c74502f4c8e97bd9cec9656793bbabc11fb72ab4
  # Parent  315bc4b65b4f527c4f9bc4fe3290e10f07975437
  [09051_40] Siano - kconfig update
 
  From: Uri Shkolnik u...@siano-ms.com
 
  This patches comes to solve the comments on Siano's
 patch
  0905_10. It updates the kconfig to support
 multi-modules build.
  Note that the dependency on dvb_core is for the
 (sms)dvb module
  alone, since the drivers set may work with another
 adapter.
 
  Priority: normal
 
  Signed-off-by: Uri Shkolnik u...@siano-ms.com
 
  diff -r 315bc4b65b4f -r c74502f4c8e9
 linux/drivers/media/dvb/siano/Kconfig
  --- a/linux/drivers/media/dvb/siano/Kconfig     Sun
 May 17 12:28:55 2009 +
  +++ b/linux/drivers/media/dvb/siano/Kconfig     Tue
 May 19 15:02:02 2009 +0300
  @@ -2,25 +2,40 @@
   # Siano Mobile Silicon Digital TV device
 configuration
   #
 
  -config DVB_SIANO_SMS1XXX
  -       tristate Siano SMS1XXX USB dongle
 support
  -       depends on DVB_CORE  USB
  +config SMS_SIANO_MDTV
  +       tristate Siano SMS1xxx based MDTV
 receiver
  +       default m
         ---help---
  -         Choose Y here if you have a USB dongle
 with a SMS1XXX chipset.
  +       Choose Y or M here if you have MDTV
 receiver with a Siano chipset.
 
  -         To compile this driver as a module,
 choose M here: the
  -         module will be called sms1xxx.
  +       To compile this driver as a module, choose
 M here
  +       (The modules will be called smsmdtv).
 
  -config DVB_SIANO_SMS1XXX_SMS_IDS
  -       bool Enable support for Siano Mobile
 Silicon default USB IDs
  -       depends on DVB_SIANO_SMS1XXX
  -       default y
  +       Note: All dependents, if selected, will be
 part of this module.
  +
  +       Further documentation on this driver can be
 found on the WWW
  +       at http://www.siano-ms.com/
  +
  +if SMS_SIANO_MDTV
  +menu Siano module components
  +
  +# Kernel sub systems support
  +config SMS_DVB3_SUBSYS
  +       tristate DVB v.3 Subsystem support
  +       depends on DVB_CORE
  +       default m if DVB_CORE
         ---help---
  -         Choose Y here if you have a USB dongle
 with a SMS1XXX chipset
  -         that uses Siano Mobile Silicon's default
 usb vid:pid.
  +       Choose if you would like to have DVB v.3
 kernel sub-system support.
 
  -         Choose N here if you would prefer to use
 Siano's external driver.
  +# Hardware interfaces support
 
  -         Further documentation on this driver can
 be found on the WWW at
  -         http://www.siano-ms.com/.
  +config SMS_USB_DRV
  +       tristate USB interface support
  +       depends on USB
  +       default m if USB
  +       ---help---
  +       Choose if you would like to have Siano's
 support for USB interface
 
  +
  +endmenu
  +endif # SMS_SIANO_MDTV
 
 
 
 
  --
  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
 
 
 
 
 I have two concerns with this patch...
 
 
 Issue #1, I dont see why it's important to rename the
 Kconfig symbol
 from DVB_SIANO_SMS1XXX to SMS_SIANO_MDTV -- This will just
 cause
 breakage of make oldconfig in the kernel with no real
 benefit.
 
 Issue #2, a much bigger issue.  This patch implies
 that the Siano
 driver can be built *with* DVB v3 support, or without
 it.  Why would
 a linux user ever want to built this driver without support
 for the
 DVB API ?  (that's a loaded question) ...  Does
 Siano intend to push
 their proprietary API into the kernel?
 
 -Mike
 

Regarding #1 - sms1xxx implies that is support only Siano devices from 1xxx 
families, but actually it support all Siano's chip-sets and various MCPs (Which 
have different numeration than 1xxx, I can't give details here, sorry). So 1xxx 
is a misleading name.
MDTV - much better (you can read it as Mobile Digital TV, or something else)

Regarding #2 - DVB-API version 3 (dvb-core module) is one of the sub-systems 
which are supported. The drivers set is also supports DVB-API version 5 
(pre-alpha at this stage) and Siano's proprietary sub-system. So, actually you 
don't have to have dvb-core in order to use Siano's USB interface driver... 
Please note that there are DAB radio builds, using Siano chip-sets and 
drivers... which means you don't need the dvb-core as well, you just need the 
dab and the Siano's core and interface drivers...

Long time ago I asked you, why you chose to put the Siano sub-tree under 
media/dvb, 

Re: [PATCH] [09051_47] Siano: smsdvb - add DVB v3 events

2009-05-19 Thread Uri Shkolnik



--- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org wrote:

 From: Michael Krufky mkru...@linuxtv.org
 Subject: Re: [PATCH] [09051_47] Siano: smsdvb - add DVB v3 events
 To: Uri Shkolnik uri...@yahoo.com
 Cc: LinuxML linux-media@vger.kernel.org, Mauro Carvalho Chehab 
 mche...@infradead.org
 Date: Tuesday, May 19, 2009, 9:16 PM
 On Tue, May 19, 2009 at 1:05 PM, Uri
 Shkolnik uri...@yahoo.com
 wrote:
 
 
 
  --- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org
 wrote:
 
  From: Michael Krufky mkru...@linuxtv.org
  Subject: Re: [PATCH] [09051_47] Siano: smsdvb -
 add DVB v3 events
  To: Uri Shkolnik uri...@yahoo.com
  Cc: LinuxML linux-media@vger.kernel.org,
 Mauro Carvalho Chehab mche...@infradead.org
  Date: Tuesday, May 19, 2009, 7:18 PM
  On Tue, May 19, 2009 at 11:28 AM, Uri
  Shkolnik uri...@yahoo.com
  wrote:
  
   # HG changeset patch
   # User Uri Shkolnik u...@siano-ms.com
   # Date 1242747164 -10800
   # Node ID
 971d4cc0d4009650bd4752c6a9fc09755ef77baf
   # Parent
  98895daafb42f8b0757fd608b29c53c80327520e
   [09051_47] Siano: smsdvb - add DVB v3 events
  
   From: Uri Shkolnik u...@siano-ms.com
  
   Add various DVB-API v3 events, those events
 will trig
   target (card) events.
  
   Priority: normal
  
   Signed-off-by: Uri Shkolnik u...@siano-ms.com
  
   diff -r 98895daafb42 -r 971d4cc0d400
  linux/drivers/media/dvb/siano/smsdvb.c
   --- a/linux/drivers/media/dvb/siano/smsdvb.c
    Tue
  May 19 18:27:38 2009 +0300
   +++ b/linux/drivers/media/dvb/siano/smsdvb.c
    Tue
  May 19 18:32:44 2009 +0300
   @@ -66,6 +66,54 @@ MODULE_PARM_DESC(debug,
 set debug
  level
    /* Events that may come from DVB v3 adapter
 */
    static void sms_board_dvb3_event(struct
  smsdvb_client_t *client,
                  enum SMS_DVB3_EVENTS
 event) {
   +
   +       struct smscore_device_t *coredev
 =
  client-coredev;
   +       switch (event) {
   +       case DVB3_EVENT_INIT:
   +              
 sms_debug(DVB3_EVENT_INIT);
   +              
 sms_board_event(coredev,
  BOARD_EVENT_BIND);
   +               break;
   +       case DVB3_EVENT_SLEEP:
   +              
 sms_debug(DVB3_EVENT_SLEEP);
   +              
 sms_board_event(coredev,
  BOARD_EVENT_POWER_SUSPEND);
   +               break;
   +       case DVB3_EVENT_HOTPLUG:
   +
  sms_debug(DVB3_EVENT_HOTPLUG);
   +              
 sms_board_event(coredev,
  BOARD_EVENT_POWER_INIT);
   +               break;
   +       case DVB3_EVENT_FE_LOCK:
   +               if
 (client-event_fe_state
  != DVB3_EVENT_FE_LOCK) {
   +
  client-event_fe_state = DVB3_EVENT_FE_LOCK;
   +
  sms_debug(DVB3_EVENT_FE_LOCK);
   +
  sms_board_event(coredev, BOARD_EVENT_FE_LOCK);
   +               }
   +               break;
   +       case DVB3_EVENT_FE_UNLOCK:
   +               if
 (client-event_fe_state
  != DVB3_EVENT_FE_UNLOCK) {
   +
  client-event_fe_state = DVB3_EVENT_FE_UNLOCK;
   +
  sms_debug(DVB3_EVENT_FE_UNLOCK);
   +
  sms_board_event(coredev, BOARD_EVENT_FE_UNLOCK);
   +               }
   +               break;
   +       case DVB3_EVENT_UNC_OK:
   +               if
 (client-event_unc_state
  != DVB3_EVENT_UNC_OK) {
   +
  client-event_unc_state = DVB3_EVENT_UNC_OK;
   +
  sms_debug(DVB3_EVENT_UNC_OK);
   +
  sms_board_event(coredev,
 BOARD_EVENT_MULTIPLEX_OK);
   +               }
   +               break;
   +       case DVB3_EVENT_UNC_ERR:
   +               if
 (client-event_unc_state
  != DVB3_EVENT_UNC_ERR) {
   +
  client-event_unc_state = DVB3_EVENT_UNC_ERR;
   +
  sms_debug(DVB3_EVENT_UNC_ERR);
   +
  sms_board_event(coredev,
 BOARD_EVENT_MULTIPLEX_ERRORS);
   +               }
   +               break;
   +
   +       default:
   +               sms_err(Unknown dvb3
 api
  event);
   +               break;
   +       }
    }
  
    static int smsdvb_onresponse(void *context,
 struct
  smscore_buffer_t *cb)
  
  
  
  
   --
   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
  
 
 
 
  Uri,
 
  I don't understand what prompts you to call these
 DVB v3
  events ...
  what does this have to do with DVB API v3 at all?
  Your idea seems to
  be in the right direction, but this DVBV3
 nomenclature is
  a total
  misnomer.
 
  I think something along the lines of
 SMSBOARD_EVENT_FOO is
  more appropriate.
 
  Regards,
 
  Mike
 
 
  Mike,
 
  Within the DVB version 3 adapter, there is events
 manager, and the name we put on it is  dvb3_event, I
 think its OK
 
  Uri
 
 
 
  --
  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
 
 
 I disagree.  Your naming implies that these structures
 are on the
 subsystem level, and they have nothing to do with DVB3
 anyway -- these
 are board related events.  dvb3_event is a total
 misnomer.
 
 -Mike
 

If its 

[PATCH] [RE-SUBMIT] [09051_58] Siano: remove obsolete code

2009-05-19 Thread Uri Shkolnik

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242752280 -10800
# Node ID 0c33837206742f128aa033b2c9fb80c725e48dd7
# Parent  fd16bcd8b9f1fffe0b605ca5b3b2138fc920e927
[09051_58] Siano: remove obsolete code

From: Uri Shkolnik u...@siano-ms.com

Remove obsolete code - old gpio managment (totaly bogus),
and its dependent code from cards.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.cTue May 19 19:50:24 2009 
+0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.cTue May 19 19:58:00 2009 
+0300
@@ -66,24 +66,17 @@ static struct sms_board sms_boards[] = {
.board_cfg.leds_power = 26,
.board_cfg.led0 = 27,
.board_cfg.led1 = 28,
-.led_power = 26,
-.led_lo= 27,
-.led_hi= 28,
},
[SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD] = {
.name= Hauppauge WinTV MiniCard,
.type= SMS_NOVA_B0,
.fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
-.lna_ctrl  = 29,
.board_cfg.foreign_lna0_ctrl = 29,
-.rf_switch = 17,
},
[SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2] = {
.name= Hauppauge WinTV MiniCard,
.type= SMS_NOVA_B0,
.fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
-.lna_ctrl  = -1,
},
[SMS1XXX_BOARD_SIANO_NICE] = {
/* 11 */
diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.h
--- a/linux/drivers/media/dvb/siano/sms-cards.hTue May 19 19:50:24 2009 
+0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.hTue May 19 19:58:00 2009 
+0300
@@ -76,9 +76,6 @@ struct sms_board {
char *name, *fw[DEVICE_MODE_MAX];
struct sms_board_gpio_cfg board_cfg;
enum ir_kb_type ir_kb_type;
-
-/* gpios */
-int led_power, led_hi, led_lo, lna_ctrl, rf_switch;
};

struct sms_board *sms_get_board(int id);
diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/smscoreapi.c
--- a/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 19:50:24 2009 
+0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 19:58:00 2009 
+0300
@@ -74,14 +74,6 @@ void smscore_set_board_id(struct smscore
{
core-board_id = id;
}
-
-int smscore_led_state(struct smscore_device_t *core, int led)
-{
-if (led = 0)
-core-led_state = led;
-return core-led_state;
-}
-EXPORT_SYMBOL_GPL(smscore_set_board_id);

int smscore_get_board_id(struct smscore_device_t *core)
{
@@ -1451,78 +1443,6 @@ static int smscore_map_common_buffer(str
}
#endif /* SMS_HOSTLIB_SUBSYS */

-/* old GPIO managments implementation */
-int smscore_configure_gpio(struct smscore_device_t *coredev, u32 pin,
-   struct smscore_config_gpio *pinconfig)
-{
-struct {
-struct SmsMsgHdr_ST hdr;
-u32 data[6];
-} msg;
-
-if (coredev-device_flags  SMS_DEVICE_FAMILY2) {
-msg.hdr.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
-msg.hdr.msgDstId = HIF_TASK;
-msg.hdr.msgFlags = 0;
-msg.hdr.msgType  = MSG_SMS_GPIO_CONFIG_EX_REQ;
-msg.hdr.msgLength = sizeof(msg);
-
-msg.data[0] = pin;
-msg.data[1] = pinconfig-pullupdown;
-
-/* Convert slew rate for Nova: Fast(0) = 3 / Slow(1) = 0; */
-msg.data[2] = pinconfig-outputslewrate == 0 ? 3 : 0;
-
-switch (pinconfig-outputdriving) {
-case SMS_GPIO_OUTPUTDRIVING_16mA:
-msg.data[3] = 7; /* Nova - 16mA */
-break;
-case SMS_GPIO_OUTPUTDRIVING_12mA:
-msg.data[3] = 5; /* Nova - 11mA */
-break;
-case SMS_GPIO_OUTPUTDRIVING_8mA:
-msg.data[3] = 3; /* Nova - 7mA */
-break;
-case SMS_GPIO_OUTPUTDRIVING_4mA:
-default:
-msg.data[3] = 2; /* Nova - 4mA */
-break;
-}
-
-msg.data[4] = pinconfig-direction;
-msg.data[5] = 0;
-} else /* TODO: SMS_DEVICE_FAMILY1 */
-return -EINVAL;
-
-return coredev-sendrequest_handler(coredev-context,
-msg, sizeof(msg));
-}
-
-int smscore_set_gpio(struct smscore_device_t *coredev, u32 pin, int level)
-{
-struct {
-struct SmsMsgHdr_ST hdr;
-u32 data[3];
-} msg;
-
-if (pin  MAX_GPIO_PIN_NUMBER)
-return -EINVAL;
-
-msg.hdr.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
-msg.hdr.msgDstId = HIF_TASK;
-msg.hdr.msgFlags = 0;
-msg.hdr.msgType  = MSG_SMS_GPIO_SET_LEVEL_REQ;
-msg.hdr.msgLength = sizeof(msg);
-
-msg.data[0] = pin;
-msg.data[1] = level ? 1 : 0;
-msg.data[2] = 0;
-
-return coredev-sendrequest_handler(coredev-context,
-msg, sizeof(msg));
-}
-
-/* new GPIO managment implementation */
static int GetGpioPinParams(u32 PinNum, u32 *pTranslatedPinNum,
u32 *pGroupNum, u32 *pGroupCfg) {

diff -r fd16bcd8b9f1 -r 0c3383720674 

Re: [PATCH] [RE-SUBMIT] [09051_58] Siano: remove obsolete code

2009-05-19 Thread Michael Krufky
On Tue, May 19, 2009 at 3:00 PM, Uri Shkolnik uri...@yahoo.com wrote:

 # HG changeset patch
 # User Uri Shkolnik u...@siano-ms.com
 # Date 1242752280 -10800
 # Node ID 0c33837206742f128aa033b2c9fb80c725e48dd7
 # Parent  fd16bcd8b9f1fffe0b605ca5b3b2138fc920e927
 [09051_58] Siano: remove obsolete code

 From: Uri Shkolnik u...@siano-ms.com

 Remove obsolete code - old gpio managment (totaly bogus),
 and its dependent code from cards.

 Priority: normal

 Signed-off-by: Uri Shkolnik u...@siano-ms.com

 diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.c
 --- a/linux/drivers/media/dvb/siano/sms-cards.c    Tue May 19 19:50:24 2009 
 +0300
 +++ b/linux/drivers/media/dvb/siano/sms-cards.c    Tue May 19 19:58:00 2009 
 +0300
 @@ -66,24 +66,17 @@ static struct sms_board sms_boards[] = {
        .board_cfg.leds_power = 26,
        .board_cfg.led0 = 27,
        .board_cfg.led1 = 28,
 -        .led_power = 26,
 -        .led_lo    = 27,
 -        .led_hi    = 28,
    },
    [SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD] = {
        .name    = Hauppauge WinTV MiniCard,
        .type    = SMS_NOVA_B0,
        .fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
 -        .lna_ctrl  = 29,
        .board_cfg.foreign_lna0_ctrl = 29,
 -        .rf_switch = 17,
    },
    [SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2] = {
        .name    = Hauppauge WinTV MiniCard,
        .type    = SMS_NOVA_B0,
        .fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
 -        .lna_ctrl  = -1,
    },
    [SMS1XXX_BOARD_SIANO_NICE] = {
    /* 11 */
 diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.h
 --- a/linux/drivers/media/dvb/siano/sms-cards.h    Tue May 19 19:50:24 2009 
 +0300
 +++ b/linux/drivers/media/dvb/siano/sms-cards.h    Tue May 19 19:58:00 2009 
 +0300
 @@ -76,9 +76,6 @@ struct sms_board {
    char *name, *fw[DEVICE_MODE_MAX];
    struct sms_board_gpio_cfg board_cfg;
    enum ir_kb_type ir_kb_type;
 -
 -    /* gpios */
 -    int led_power, led_hi, led_lo, lna_ctrl, rf_switch;
 };

 struct sms_board *sms_get_board(int id);
 diff -r fd16bcd8b9f1 -r 0c3383720674 
 linux/drivers/media/dvb/siano/smscoreapi.c
 --- a/linux/drivers/media/dvb/siano/smscoreapi.c    Tue May 19 19:50:24 2009 
 +0300
 +++ b/linux/drivers/media/dvb/siano/smscoreapi.c    Tue May 19 19:58:00 2009 
 +0300
 @@ -74,14 +74,6 @@ void smscore_set_board_id(struct smscore
 {
    core-board_id = id;
 }
 -
 -int smscore_led_state(struct smscore_device_t *core, int led)
 -{
 -    if (led = 0)
 -        core-led_state = led;
 -    return core-led_state;
 -}
 -EXPORT_SYMBOL_GPL(smscore_set_board_id);

 int smscore_get_board_id(struct smscore_device_t *core)
 {
 @@ -1451,78 +1443,6 @@ static int smscore_map_common_buffer(str
 }
 #endif /* SMS_HOSTLIB_SUBSYS */

 -/* old GPIO managments implementation */
 -int smscore_configure_gpio(struct smscore_device_t *coredev, u32 pin,
 -               struct smscore_config_gpio *pinconfig)
 -{
 -    struct {
 -        struct SmsMsgHdr_ST hdr;
 -        u32 data[6];
 -    } msg;
 -
 -    if (coredev-device_flags  SMS_DEVICE_FAMILY2) {
 -        msg.hdr.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
 -        msg.hdr.msgDstId = HIF_TASK;
 -        msg.hdr.msgFlags = 0;
 -        msg.hdr.msgType  = MSG_SMS_GPIO_CONFIG_EX_REQ;
 -        msg.hdr.msgLength = sizeof(msg);
 -
 -        msg.data[0] = pin;
 -        msg.data[1] = pinconfig-pullupdown;
 -
 -        /* Convert slew rate for Nova: Fast(0) = 3 / Slow(1) = 0; */
 -        msg.data[2] = pinconfig-outputslewrate == 0 ? 3 : 0;
 -
 -        switch (pinconfig-outputdriving) {
 -        case SMS_GPIO_OUTPUTDRIVING_16mA:
 -            msg.data[3] = 7; /* Nova - 16mA */
 -            break;
 -        case SMS_GPIO_OUTPUTDRIVING_12mA:
 -            msg.data[3] = 5; /* Nova - 11mA */
 -            break;
 -        case SMS_GPIO_OUTPUTDRIVING_8mA:
 -            msg.data[3] = 3; /* Nova - 7mA */
 -            break;
 -        case SMS_GPIO_OUTPUTDRIVING_4mA:
 -        default:
 -            msg.data[3] = 2; /* Nova - 4mA */
 -            break;
 -        }
 -
 -        msg.data[4] = pinconfig-direction;
 -        msg.data[5] = 0;
 -    } else /* TODO: SMS_DEVICE_FAMILY1 */
 -        return -EINVAL;
 -
 -    return coredev-sendrequest_handler(coredev-context,
 -                        msg, sizeof(msg));
 -}
 -
 -int smscore_set_gpio(struct smscore_device_t *coredev, u32 pin, int level)
 -{
 -    struct {
 -        struct SmsMsgHdr_ST hdr;
 -        u32 data[3];
 -    } msg;
 -
 -    if (pin  MAX_GPIO_PIN_NUMBER)
 -        return -EINVAL;
 -
 -    msg.hdr.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
 -    msg.hdr.msgDstId = HIF_TASK;
 -    msg.hdr.msgFlags = 0;
 -    msg.hdr.msgType  = MSG_SMS_GPIO_SET_LEVEL_REQ;
 -    msg.hdr.msgLength = sizeof(msg);
 -
 -    msg.data[0] = pin;
 -    msg.data[1] = level ? 1 : 0;
 -    msg.data[2] = 0;
 -
 -    return coredev-sendrequest_handler(coredev-context,
 -                        msg, sizeof(msg));
 -}
 -
 -/* 

Recent Siano patches - testing required

2009-05-19 Thread Steven Toth

Mauro please review.

Uri,

Firstly I'd like to thank you and Siano for patching and helping to maintain the 
driver. :)


Second, this is a heck of a lot of change for the list to review! It's 
impossible to digest the level of rework and potential regressions.


I'd suggest you either host your own mercurial server and have testers pull your 
trees, helping to regression test your changes or ... someone gives you access 
to create trees at LinuxTV.org, then you can solicit testers feedback on the 
mailing list.


Either way, it's unusual for this amount of change to be merged without having 
some positive feedback from the Linux community of testers. If you have 
confirmation that all of the current devices are still working correct, without 
regression, then please indicate this in your patches / email.


If not, the patches should be hosted somewhere for test and review.

--
Steven Toth - Kernel Labs
http://www.kernellabs.com
--
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


Re: [PATCH] [RE-SUBMIT] [09051_58] Siano: remove obsolete code

2009-05-19 Thread Steven Toth

Michael Krufky wrote:

On Tue, May 19, 2009 at 3:00 PM, Uri Shkolnik uri...@yahoo.com wrote:

# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242752280 -10800
# Node ID 0c33837206742f128aa033b2c9fb80c725e48dd7
# Parent  fd16bcd8b9f1fffe0b605ca5b3b2138fc920e927
[09051_58] Siano: remove obsolete code

From: Uri Shkolnik u...@siano-ms.com

Remove obsolete code - old gpio managment (totaly bogus),
and its dependent code from cards.

Priority: normal

Signed-off-by: Uri Shkolnik u...@siano-ms.com

diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.c
--- a/linux/drivers/media/dvb/siano/sms-cards.cTue May 19 19:50:24 2009 
+0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.cTue May 19 19:58:00 2009 
+0300
@@ -66,24 +66,17 @@ static struct sms_board sms_boards[] = {
   .board_cfg.leds_power = 26,
   .board_cfg.led0 = 27,
   .board_cfg.led1 = 28,
-.led_power = 26,
-.led_lo= 27,
-.led_hi= 28,
   },
   [SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD] = {
   .name= Hauppauge WinTV MiniCard,
   .type= SMS_NOVA_B0,
   .fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
-.lna_ctrl  = 29,
   .board_cfg.foreign_lna0_ctrl = 29,
-.rf_switch = 17,
   },
   [SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2] = {
   .name= Hauppauge WinTV MiniCard,
   .type= SMS_NOVA_B0,
   .fw[DEVICE_MODE_DVBT_BDA] = sms1xxx-hcw-55xxx-dvbt-02.fw,
-.lna_ctrl  = -1,
   },
   [SMS1XXX_BOARD_SIANO_NICE] = {
   /* 11 */
diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/sms-cards.h
--- a/linux/drivers/media/dvb/siano/sms-cards.hTue May 19 19:50:24 2009 
+0300
+++ b/linux/drivers/media/dvb/siano/sms-cards.hTue May 19 19:58:00 2009 
+0300
@@ -76,9 +76,6 @@ struct sms_board {
   char *name, *fw[DEVICE_MODE_MAX];
   struct sms_board_gpio_cfg board_cfg;
   enum ir_kb_type ir_kb_type;
-
-/* gpios */
-int led_power, led_hi, led_lo, lna_ctrl, rf_switch;
};

struct sms_board *sms_get_board(int id);
diff -r fd16bcd8b9f1 -r 0c3383720674 linux/drivers/media/dvb/siano/smscoreapi.c
--- a/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 19:50:24 2009 
+0300
+++ b/linux/drivers/media/dvb/siano/smscoreapi.cTue May 19 19:58:00 2009 
+0300
@@ -74,14 +74,6 @@ void smscore_set_board_id(struct smscore
{
   core-board_id = id;
}
-
-int smscore_led_state(struct smscore_device_t *core, int led)
-{
-if (led = 0)
-core-led_state = led;
-return core-led_state;
-}
-EXPORT_SYMBOL_GPL(smscore_set_board_id);

int smscore_get_board_id(struct smscore_device_t *core)
{
@@ -1451,78 +1443,6 @@ static int smscore_map_common_buffer(str
}
#endif /* SMS_HOSTLIB_SUBSYS */

-/* old GPIO managments implementation */
-int smscore_configure_gpio(struct smscore_device_t *coredev, u32 pin,
-   struct smscore_config_gpio *pinconfig)
-{
-struct {
-struct SmsMsgHdr_ST hdr;
-u32 data[6];
-} msg;
-
-if (coredev-device_flags  SMS_DEVICE_FAMILY2) {
-msg.hdr.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
-msg.hdr.msgDstId = HIF_TASK;
-msg.hdr.msgFlags = 0;
-msg.hdr.msgType  = MSG_SMS_GPIO_CONFIG_EX_REQ;
-msg.hdr.msgLength = sizeof(msg);
-
-msg.data[0] = pin;
-msg.data[1] = pinconfig-pullupdown;
-
-/* Convert slew rate for Nova: Fast(0) = 3 / Slow(1) = 0; */
-msg.data[2] = pinconfig-outputslewrate == 0 ? 3 : 0;
-
-switch (pinconfig-outputdriving) {
-case SMS_GPIO_OUTPUTDRIVING_16mA:
-msg.data[3] = 7; /* Nova - 16mA */
-break;
-case SMS_GPIO_OUTPUTDRIVING_12mA:
-msg.data[3] = 5; /* Nova - 11mA */
-break;
-case SMS_GPIO_OUTPUTDRIVING_8mA:
-msg.data[3] = 3; /* Nova - 7mA */
-break;
-case SMS_GPIO_OUTPUTDRIVING_4mA:
-default:
-msg.data[3] = 2; /* Nova - 4mA */
-break;
-}
-
-msg.data[4] = pinconfig-direction;
-msg.data[5] = 0;
-} else /* TODO: SMS_DEVICE_FAMILY1 */
-return -EINVAL;
-
-return coredev-sendrequest_handler(coredev-context,
-msg, sizeof(msg));
-}
-
-int smscore_set_gpio(struct smscore_device_t *coredev, u32 pin, int level)
-{
-struct {
-struct SmsMsgHdr_ST hdr;
-u32 data[3];
-} msg;
-
-if (pin  MAX_GPIO_PIN_NUMBER)
-return -EINVAL;
-
-msg.hdr.msgSrcId = DVBT_BDA_CONTROL_MSG_ID;
-msg.hdr.msgDstId = HIF_TASK;
-msg.hdr.msgFlags = 0;
-msg.hdr.msgType  = MSG_SMS_GPIO_SET_LEVEL_REQ;
-msg.hdr.msgLength = sizeof(msg);
-
-msg.data[0] = pin;
-msg.data[1] = level ? 1 : 0;
-msg.data[2] = 0;
-
-return coredev-sendrequest_handler(coredev-context,
-msg, sizeof(msg));
-}
-
-/* new GPIO managment implementation */
static int GetGpioPinParams(u32 PinNum, u32 *pTranslatedPinNum,
   u32 *pGroupNum, u32 

Re: Recent Siano patches - testing required

2009-05-19 Thread Uri Shkolnik



--- On Tue, 5/19/09, Steven Toth st...@kernellabs.com wrote:

 From: Steven Toth st...@kernellabs.com
 Subject: Recent Siano patches - testing required
 To: uri...@yahoo.com, Mauro Carvalho Chehab mche...@infradead.org
 Cc: linux-media@vger.kernel.org linux-media@vger.kernel.org
 Date: Tuesday, May 19, 2009, 10:15 PM
 Mauro please review.
 
 Uri,
 
 Firstly I'd like to thank you and Siano for patching and
 helping to maintain the driver. :)
 
 Second, this is a heck of a lot of change for the list to
 review! It's impossible to digest the level of rework and
 potential regressions.
 
 I'd suggest you either host your own mercurial server and
 have testers pull your trees, helping to regression test
 your changes or ... someone gives you access to create trees
 at LinuxTV.org, then you can solicit testers feedback on the
 mailing list.
 
 Either way, it's unusual for this amount of change to be
 merged without having some positive feedback from the Linux
 community of testers. If you have confirmation that all of
 the current devices are still working correct, without
 regression, then please indicate this in your patches /
 email.
 
 If not, the patches should be hosted somewhere for test and
 review.
 
 -- Steven Toth - Kernel Labs
 http://www.kernellabs.com
 


Steven,

Thanks for your comments.

Brief history about Siano's Linux kernel drivers...

First set of Siano's based receivers drivers has been introduced at the first 
half of 2008.

Since mid-2008 till about little more than a month ago, from various reasons, 
(most of these reasons were unrelated to Siano's intentions), there were no 
submissions to the LinuxTV mercurial.

However, lots of progress with Linux drivers has been achieved. Some of it 
within the Linux various communities (for example with the MMC maintainer, and 
members of this mailing list based on direct contacts) but primarily with 
Siano's commercial customers which based their products on Linux OS or it 
derivatives (such as Google's Android). 

Note that the recent month' patches came to bring the LinuxTV mercurial (and 
kernel's git as a result) up to the state of Siano's internal Subversion 
repository. Meaning, the patches are not new code / new bugs fixes etc. but 
rather up-stream from Siano's repository to LinuxTV's (same as it done from 
each sub-kernel system (including LinuxTV) to the kernel git).

The Siano's drivers have been tested thoroughly, both in Siano's QA departments 
(where a full time QA engineer is tasked to test various Linux/SMS based 
setups) and in customers sites as well.

Note that the current Siano's Linux drivers set is been used by many dozens of 
commercial products (including tear-1 companies' products), which of course 
have been tested thoroughly that offering, and it is a production level code 
(literally).

The risks as I see them with all those patches, are that some work (minor) has 
been done in order to make these patches appropriate to be submitted (per all 
rules of patches submission to LinuxTV / Linux kernel). 

Another problem is that I find it hard to believe that there will be many 
testers available from this mailing list. True that there are some dongle and 
mini-cards based on Siano's chip-set which these devices' manufacturers 
representatives are on this list, orsome people may own these, but the vast 
majority of Siano's based products are embedded based devices (including 
multiple tablet/UMPC PCs, cellular phones, PDAs, navigation devices, DVD/BR 
players, gaming devices and many others), so unless someone will hack those 
devices and will replace the installed drivers (kernel image actually, since 
most of these fixed-targets developers build the Siano's modules to be included 
within the kernel image) there is no much hope for comprehensive oopen 
testers test.

However any test that will be performed, will benefit all (including Siano 
:-)

It's true that is the recent past, Siano equipped some volunteers from this 
community with devices (free of charge), but it had been done base on Siano's 
selfish objectives, which at the time suited various individuals.
I find it hard to believe that Siano will equip anyone just for random 
testing, since we have enough brimful testing environments.


Best Regards,

Uri

 


  
--
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


What is libv4lconvert/sn9c202x.c for?

2009-05-19 Thread Theodore Kilgore


I can not seem to be able to find any such devices which use this. So 
perhaps I am not looking in the right place and someone could point me 
there.


In any event, it appears to me to have absolutely nothing at all to do 
with the decompression algorithm required by the SN9C2028 cameras. Those 
require a differential Huffman encoding scheme similar to what is in use 
for the MR97310a cameras, but with a few crucial differencew which make it 
pretty much impossible to write one routine for both. But the code in the 
file libv4lconvert/sn9c202x.c appears to me to be no differential Huffman 
scheme at all but something entirely different.


Hence my question.

Theodore Kilgore

--
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


Re: Recent Siano patches - testing required

2009-05-19 Thread Steven Toth

However any test that will be performed, will benefit all (including Siano 
:-)



Agreed. Yes, I happen to know Hauppauge very well.

I'm very happy to see that the driver is being improved but I'll be even happier 
to see actual testers report success before any of this stuff is merged. My 
concern is the vast amount of change coming through this list and expected to be 
merged blindly into the kernel.


If we have no testers then, at least for Hauppauge products, we'll find some. 
Let me know if I can help with this.


Until then nothing should be blindly merged that could regress existing product 
support.


Mauro?

--
Steven Toth - Kernel Labs
http://www.kernellabs.com
--
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


Re: Hauppauge HVR 1110 and DVB

2009-05-19 Thread hermann pitton
Hi Antonio,

Am Dienstag, den 19.05.2009, 12:29 +0200 schrieb Antonio Beamud Montero:
 I have a new hauppauge hvr 1110. Trying to load the lastest modules, all 
 seems to load fine, but no dvb-t frontend is created. As I can see this 
 card isn't exactly the same hvr 1110 (hvr 1110r3) supported by v4l-dvb.
 The system reports the next info:

we moved to linux-media@vger.kernel.org

Michael Krufky has added support for these new tuners and cards and
Steven Toth for the tda10048.

But it is correct, DVB is not yet enabled on them.

Maybe Michael can give you some hints on what he is still working to do
so and if he might call for testers once.

Cheers,
Hermann


 # lspci -v
 
 0b:03.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 
 Video Broadcast Decoder (rev d1)
 Subsystem: Hauppauge computer works Inc. Unknown device 6707
 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ 
 Stepping- SERR+ FastB2B-
 Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
 TAbort- MAbort- SERR- PERR-
 Latency: 32 (21000ns min, 8000ns max)
 Interrupt: pin A routed to IRQ 114
 Region 0: Memory at fc4ff800 (32-bit, non-prefetchable) [size=2K]
 Capabilities: [40] Power Management version 2
 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
 Status: D0 PME-Enable- DSel=0 DScale=1 PME-
 
 # dmesg
 
 ACPI: PCI Interrupt :0f:03.0[A] - GSI 160 (level, low) - IRQ 65
 saa7133[0]: found at :0f:03.0, rev: 209, irq: 65, latency: 32, mmio: 
 0xfc4ff800
 saa7133[0]: subsystem: 0070:6707, board: Hauppauge WinTV-HVR1110r3 
 [card=156,autodetected]
 saa7133[0]: board init: gpio is 4
 saa7133[0]: i2c eeprom 00: 70 00 07 67 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
 saa7133[0]: i2c eeprom 10: ff ff ff 0e ff 20 ff ff ff ff ff ff ff ff ff ff
 saa7133[0]: i2c eeprom 20: 01 40 01 32 32 01 01 33 88 ff 00 b0 ff ff ff ff
 saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 saa7133[0]: i2c eeprom 40: ff 35 00 c0 96 10 06 32 97 04 00 20 00 ff ff ff
 saa7133[0]: i2c eeprom 50: ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 saa7133[0]: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 saa7133[0]: i2c eeprom 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 saa7133[0]: i2c eeprom 80: 84 09 00 04 20 77 00 40 08 79 5e f0 73 05 29 00
 saa7133[0]: i2c eeprom 90: 84 08 00 06 89 06 01 00 95 19 8d 72 07 70 73 09
 saa7133[0]: i2c eeprom a0: 23 5f 73 0a f4 9b 72 0b 2f 72 0e 01 72 0f 01 72
 saa7133[0]: i2c eeprom b0: 10 01 72 11 ff 73 13 a2 69 79 1a 00 00 00 00 00
 saa7133[0]: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 saa7133[0]: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 saa7133[0]: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 saa7133[0]: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 tveeprom 0-0050: Hauppauge model 67209, rev C1F5, serial# 6191368
 tveeprom 0-0050: MAC address is 00-0D-FE-5E-79-08
 tveeprom 0-0050: tuner model is NXP 18271C2 (idx 155, type 54)
 tveeprom 0-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) 
 ATSC/DVB Digital (eeprom 0xf4)
 tveeprom 0-0050: audio processor is SAA7131 (idx 41)
 tveeprom 0-0050: decoder processor is SAA7131 (idx 35)
 tveeprom 0-0050: has radio, has IR receiver, has no IR transmitter
 saa7133[0]: hauppauge eeprom: model=67209
 tuner 0-004b: chip found @ 0x96 (saa7133[0])
 tda829x 0-004b: setting tuner address to 60
 tda18271 0-0060: creating new instance
 TDA18271HD/C2 detected @ 0-0060
 tda18271: performing RF tracking filter calibration
 tda18271: RF tracking filter calibration complete
 tda829x 0-004b: type set to tda8290+18271
 saa7133[0]: registered device video0 [v4l2]
 saa7133[0]: registered device vbi0
 saa7133[0]: registered device radio0
 saa7134 ALSA driver for DMA sound loaded
 saa7133[0]/alsa: saa7133[0] at 0xfc4ff800 irq 65 registered as card -1
 
 Trying to load manually the saa7134-dvb module reports nothing.
 
 The module seems to recognize the 67209LF rev C1F5 ok.
 
 Hauppauge hvr 1110 Hardware Info:
 
 Decoder: saa7131E/03/G
 Module: TDA10048HN 
 (http://www.ecnasiamag.com/article-10192-philipstda10048hnenablesdigitaltvviewingthroughentertainmentdevices-Asia.html)
 
 Greetings
 


--
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


Re: Recent Siano patches - testing required

2009-05-19 Thread Mauro Carvalho Chehab
Em Tue, 19 May 2009 17:30:42 -0400
Steven Toth st...@kernellabs.com escreveu:

  However any test that will be performed, will benefit all (including 
  Siano :-)
  
 
 Agreed. Yes, I happen to know Hauppauge very well.
 
 I'm very happy to see that the driver is being improved but I'll be even 
 happier 
 to see actual testers report success before any of this stuff is merged. My 
 concern is the vast amount of change coming through this list and expected to 
 be 
 merged blindly into the kernel.
 
 If we have no testers then, at least for Hauppauge products, we'll find some. 
 Let me know if I can help with this.
 
 Until then nothing should be blindly merged that could regress existing 
 product 
 support.
 
 Mauro?

Steven,

Your concerns about testing make sense, but this were already tried in the
past, when Uri started sending their patches at the ML. So, instead of
repeating the same novel, let's merge the patches at the development tree and
ask people to test.

Yet, I'm keeping the Siano patches at the 'pending' -git tree, where I hold
very experimental work. I intend to hold it there until we have more tests and
have all the pending patches merged.

About creating an -hg tree for Siano (and for other developers), I had to nack
it in the past, since the LinuxTV server were overloaded. Now that the machine
got replaced, I think we may actually create a tree for them. 

Uri, please discuss about this in priv with me, in order to exchange the needed
information for the login account.



Cheers,
Mauro
--
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


Re: [PATCH] [09051_47] Siano: smsdvb - add DVB v3 events

2009-05-19 Thread Mauro Carvalho Chehab
Em Tue, 19 May 2009 11:20:44 -0700 (PDT)
Uri Shkolnik uri...@yahoo.com escreveu:

 
 
 
 --- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org wrote:
 
  From: Michael Krufky mkru...@linuxtv.org
  Subject: Re: [PATCH] [09051_47] Siano: smsdvb - add DVB v3 events
  To: Uri Shkolnik uri...@yahoo.com
  Cc: LinuxML linux-media@vger.kernel.org, Mauro Carvalho Chehab 
  mche...@infradead.org
  Date: Tuesday, May 19, 2009, 9:16 PM
  On Tue, May 19, 2009 at 1:05 PM, Uri
  Shkolnik uri...@yahoo.com
  wrote:
  
  
  
   --- On Tue, 5/19/09, Michael Krufky mkru...@linuxtv.org
  wrote:
  
   From: Michael Krufky mkru...@linuxtv.org
   Subject: Re: [PATCH] [09051_47] Siano: smsdvb -
  add DVB v3 events
   To: Uri Shkolnik uri...@yahoo.com
   Cc: LinuxML linux-media@vger.kernel.org,
  Mauro Carvalho Chehab mche...@infradead.org
   Date: Tuesday, May 19, 2009, 7:18 PM
   On Tue, May 19, 2009 at 11:28 AM, Uri
   Shkolnik uri...@yahoo.com
   wrote:
   
# HG changeset patch
# User Uri Shkolnik u...@siano-ms.com
# Date 1242747164 -10800
# Node ID
  971d4cc0d4009650bd4752c6a9fc09755ef77baf
# Parent
   98895daafb42f8b0757fd608b29c53c80327520e
[09051_47] Siano: smsdvb - add DVB v3 events
   
From: Uri Shkolnik u...@siano-ms.com
   
Add various DVB-API v3 events, those events
  will trig
target (card) events.
   
Priority: normal
   
Signed-off-by: Uri Shkolnik u...@siano-ms.com
   
diff -r 98895daafb42 -r 971d4cc0d400
   linux/drivers/media/dvb/siano/smsdvb.c
--- a/linux/drivers/media/dvb/siano/smsdvb.c
     Tue
   May 19 18:27:38 2009 +0300
+++ b/linux/drivers/media/dvb/siano/smsdvb.c
     Tue
   May 19 18:32:44 2009 +0300
@@ -66,6 +66,54 @@ MODULE_PARM_DESC(debug,
  set debug
   level
 /* Events that may come from DVB v3 adapter
  */
 static void sms_board_dvb3_event(struct
   smsdvb_client_t *client,
               enum SMS_DVB3_EVENTS
  event) {
+
+       struct smscore_device_t *coredev
  =
   client-coredev;
+       switch (event) {
+       case DVB3_EVENT_INIT:
+              
  sms_debug(DVB3_EVENT_INIT);
+              
  sms_board_event(coredev,
   BOARD_EVENT_BIND);
+               break;
+       case DVB3_EVENT_SLEEP:
+              
  sms_debug(DVB3_EVENT_SLEEP);
+              
  sms_board_event(coredev,
   BOARD_EVENT_POWER_SUSPEND);
+               break;
+       case DVB3_EVENT_HOTPLUG:
+
   sms_debug(DVB3_EVENT_HOTPLUG);
+              
  sms_board_event(coredev,
   BOARD_EVENT_POWER_INIT);
+               break;
+       case DVB3_EVENT_FE_LOCK:
+               if
  (client-event_fe_state
   != DVB3_EVENT_FE_LOCK) {
+
   client-event_fe_state = DVB3_EVENT_FE_LOCK;
+
   sms_debug(DVB3_EVENT_FE_LOCK);
+
   sms_board_event(coredev, BOARD_EVENT_FE_LOCK);
+               }
+               break;
+       case DVB3_EVENT_FE_UNLOCK:
+               if
  (client-event_fe_state
   != DVB3_EVENT_FE_UNLOCK) {
+
   client-event_fe_state = DVB3_EVENT_FE_UNLOCK;
+
   sms_debug(DVB3_EVENT_FE_UNLOCK);
+
   sms_board_event(coredev, BOARD_EVENT_FE_UNLOCK);
+               }
+               break;
+       case DVB3_EVENT_UNC_OK:
+               if
  (client-event_unc_state
   != DVB3_EVENT_UNC_OK) {
+
   client-event_unc_state = DVB3_EVENT_UNC_OK;
+
   sms_debug(DVB3_EVENT_UNC_OK);
+
   sms_board_event(coredev,
  BOARD_EVENT_MULTIPLEX_OK);
+               }
+               break;
+       case DVB3_EVENT_UNC_ERR:
+               if
  (client-event_unc_state
   != DVB3_EVENT_UNC_ERR) {
+
   client-event_unc_state = DVB3_EVENT_UNC_ERR;
+
   sms_debug(DVB3_EVENT_UNC_ERR);
+
   sms_board_event(coredev,
  BOARD_EVENT_MULTIPLEX_ERRORS);
+               }
+               break;
+
+       default:
+               sms_err(Unknown dvb3
  api
   event);
+               break;
+       }
 }
   
 static int smsdvb_onresponse(void *context,
  struct
   smscore_buffer_t *cb)
   
   
   
   
--
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
   
  
  
  
   Uri,
  
   I don't understand what prompts you to call these
  DVB v3
   events ...
   what does this have to do with DVB API v3 at all?
   Your idea seems to
   be in the right direction, but this DVBV3
  nomenclature is
   a total
   misnomer.
  
   I think something along the lines of
  SMSBOARD_EVENT_FOO is
   more appropriate.
  
   Regards,
  
   Mike
  
  
   Mike,
  
   Within the DVB version 3 adapter, there is events
  manager, and the name we put on it is  dvb3_event, I
  think its OK
  
   Uri
  
  
  
   --
   To unsubscribe from this list: send the line
  unsubscribe linux-media in
   the body of a message to majord...@vger.kernel.org
   More 

Re: Recent Siano patches - testing required

2009-05-19 Thread Steven Toth

Uri, please discuss about this in priv with me, in order to exchange the needed
information for the login account.


Thank you Mauro.

--
Steven Toth - Kernel Labs
http://www.kernellabs.com
--
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


Re: Recent Siano patches - testing required

2009-05-19 Thread Mauro Carvalho Chehab
Em Tue, 19 May 2009 22:05:19 -0400
Devin Heitmueller dheitmuel...@kernellabs.com escreveu:

 It's not clear to me why you are putting this code that is untested by
 the community into the v4l-dvb tree.  In all other cases where linuxtv
 developers want to submit large sets of changes, you expect them to
 create a private tree so testers can be solicited *before* it goes
 into v4l-dvb.  Why would this case be any different?

Because it was the way we've indicated to Uri for submitting his patches:

http://www.mail-archive.com/linux-media@vger.kernel.org/msg00473.html

We may change it for the next patch series, but I'll pick the good patches from
this series via patchwork.

Cheers,
Mauro

--
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


test

2009-05-19 Thread brian
--
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