Re: Preliminary results with an SN9C2028 camera
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
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
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
# 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
# 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
# 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/
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
--- 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
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
# 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
# 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
# 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
# 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
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
# 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
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
# 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
# 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
# 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
# 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...
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
--- 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
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
--- 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
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
--- 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
--- 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
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
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
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
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
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
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
--- 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
--- 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
# 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
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
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
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
--- 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?
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
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
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
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
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
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
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
-- 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