[PATCH] it913x multiple devices on system. Copy ite_config to priv area.
If there are two or more different it913x devices on the system they share the same ite_config and over write its settings. To over come this, the ite_config is copied to the priv area. Signed-off-by: Malcolm Priestley tvbox...@gmail.com --- drivers/media/dvb/dvb-usb/it913x.c |8 +++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/drivers/media/dvb/dvb-usb/it913x.c b/drivers/media/dvb/dvb-usb/it913x.c index e847527..1aa3872 100644 --- a/drivers/media/dvb/dvb-usb/it913x.c +++ b/drivers/media/dvb/dvb-usb/it913x.c @@ -63,6 +63,7 @@ DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); struct it913x_state { u8 id; + struct ite_config it913x_config; }; struct ite_config it913x_config; @@ -624,6 +625,7 @@ static int it913x_name(struct dvb_usb_adapter *adap) static int it913x_frontend_attach(struct dvb_usb_adapter *adap) { struct usb_device *udev = adap-dev-udev; + struct it913x_state *st = adap-dev-priv; int ret = 0; u8 adap_addr = I2C_BASE_ADDR + (adap-id 5); u16 ep_size = adap-props.fe[0].stream.u.bulk.buffersize / 4; @@ -634,8 +636,12 @@ static int it913x_frontend_attach(struct dvb_usb_adapter *adap) it913x_config.adf = it913x_read_reg(udev, IO_MUX_POWER_CLK); + if (adap-id == 0) + memcpy(st-it913x_config, it913x_config, + sizeof(struct ite_config)); + adap-fe_adap[0].fe = dvb_attach(it913x_fe_attach, - adap-dev-i2c_adap, adap_addr, it913x_config); + adap-dev-i2c_adap, adap_addr, st-it913x_config); if (adap-id == 0 adap-fe_adap[0].fe) { ret = it913x_wr_reg(udev, DEV_0_DMOD, MP2_SW_RST, 0x1); -- 1.7.7.3 -- 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: [RFC] vtunerc: virtual DVB device - is it ok to NACK driver because of worrying about possible misusage?
While I agree with your more broad view of the issue, I specifically talked about VDR. AFAIK Klaus has no intention of adding true server/client support to VDR, so for VDR users, this sounds like it could be a working solution without the strict limitations of streamdev. So fix Klaus rather than mess up the kernel. If you are trying to solve a VDR political problem then kernel hacks are not the way to go. Someone who cares about it needs to fix VDR, with or without its current maintainer. -- 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
[RFC/PATCH 0/5] v4l: New camera controls
Hi All, I put some effort in preparing a documentation for a couple of new controls in the camera control class. It's a preeliminary work, it's mainly just documentation. There is yet no patches for any driver using these controls. I just wanted to get some possible feedback on them, if this sort of stuff is welcome and what might need to be done differently. Thanks, Sylwester Heungjun Kim (1): uvc: Adapt the driver to new type of V4L2_CID_FOCUS_AUTO control Sylwester Nawrocki (4): v4l: Convert V4L2_CID_FOCUS_AUTO control to a menu control v4l: Add V4L2_CID_METERING_MODE camera control v4l: Add V4L2_CID_EXPOSURE_BIAS camera control v4l: Add V4L2_CID_ISO and V4L2_CID_ISO_AUTO controls Documentation/DocBook/media/v4l/biblio.xml | 11 +++ Documentation/DocBook/media/v4l/controls.xml | 122 - drivers/media/video/uvc/uvc_ctrl.c |9 ++- drivers/media/video/v4l2-ctrls.c | 19 - include/linux/videodev2.h| 19 5 files changed, 173 insertions(+), 7 deletions(-) -- 1.7.4.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
[RFC/PATCH 1/5] v4l: Convert V4L2_CID_FOCUS_AUTO control to a menu control
Change the V4L2_CID_FOCUS_AUTO control type from boolean to a menu type. In case of boolean control we had values 0 and 1 corresponding to manual and automatic focus respectively. The V4L2_CID_FOCUS_AUTO menu control has currently following items: 0 - V4L2_FOCUS_MANUAL, 1 - V4L2_FOCUS_AUTO, 2 - V4L2_FOCUS_AUTO_MACRO, 3 - V4L2_FOCUS_AUTO_CONTINUOUS. To trigger single auto focus action in V4L2_FOCUS_AUTO mode the V4L2_DO_AUTO_FOCUS control can be used, which is also added in this patch. Signed-off-by: Heungjun Kim riverful@samsung.com Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com Signed-off-by: Sylwester Nawrocki snj...@gmail.com --- Documentation/DocBook/media/v4l/controls.xml | 52 +++-- drivers/media/video/v4l2-ctrls.c | 13 ++- include/linux/videodev2.h|8 3 files changed, 67 insertions(+), 6 deletions(-) diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index 3bc5ee8..5ccb0b0 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml @@ -2782,12 +2782,54 @@ negative values towards infinity. This is a write-only control./entry /row rowentry/entry/row - row + row id=v4l2-focus-auto-type entry spanname=idconstantV4L2_CID_FOCUS_AUTO/constantnbsp;/entry - entryboolean/entry - /rowrowentry spanname=descrEnables automatic focus -adjustments. The effect of manual focus adjustments while this feature -is enabled is undefined, drivers should ignore such requests./entry + entryenumnbsp;v4l2_focus_auto_type/entry + /rowrowentry spanname=descrDetermines the camera +focus mode. The effect of manual focus adjustments while constant +V4L2_CID_FOCUS_AUTO /constant is not set to constant +V4L2_FOCUS_MANUAL/constant is undefined, drivers should ignore such +requests./entry + /row + row + entrytbl spanname=descr cols=2 + tbody valign=top + row + entryconstantV4L2_FOCUS_MANUAL/constantnbsp;/entry + entryManual focus./entry + /row + row + entryconstantV4L2_FOCUS_AUTO/constantnbsp;/entry + entrySingle shot auto focus. When switched to +this mode the camera focuses on a subject just once. constant +V4L2_CID_DO_AUTO_FOCUS/constant control can be used to manually +invoke auto focusing./entry + /row + row + entryconstantV4L2_FOCUS_AUTO_MACRO/constantnbsp;/entry + entryMacro (close-up) auto focus. Usually camera +auto focus algorithms do not attempt to focus on a subject that is +closer than a given distance. This mode can be used to tell the camera +to use minimum distance for focus that it is capable of./entry + /row + row + entryconstantV4L2_FOCUS_AUTO_CONTINUOUS/constantnbsp;/entry + entryContinuous auto focus. When switched to this +mode the camera continually adjusts focus./entry + /row + /tbody + /entrytbl + /row + rowentry/entry/row + + row + entry spanname=idconstantV4L2_CID_DO_AUTO_FOCUS/constantnbsp;/entry + entrybutton/entry + /rowrowentry spanname=descrWhen this control is set +the camera will perform one shot auto focus. The effect of using this +control when constantV4L2_CID_FOCUS_AUTO/constant is in mode +different than constantV4L2_FOCUS_AUTO/constant is undefined, +drivers should ignore such requests. /entry /row rowentry/entry/row diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c index 0f415da..7d8862f 100644 --- a/drivers/media/video/v4l2-ctrls.c +++ b/drivers/media/video/v4l2-ctrls.c @@ -221,6 +221,13 @@ const char * const *v4l2_ctrl_get_menu(u32 id) Aperture Priority Mode, NULL }; + static const char * const camera_focus_auto[] = { + Manual Focus, + One-shot Auto Focus, + Macro Auto Focus, + Continuous Auto Focus, + NULL + }; static const char * const colorfx[] = { None, Black White, @@ -388,6 +395,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id) return camera_power_line_frequency; case V4L2_CID_EXPOSURE_AUTO: return camera_exposure_auto; + case V4L2_CID_FOCUS_AUTO: + return camera_focus_auto; case V4L2_CID_COLORFX: return colorfx; case V4L2_CID_TUNE_PREEMPHASIS: @@ -567,6 +576,7 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_PRIVACY: return Privacy; case V4L2_CID_IRIS_ABSOLUTE:return Iris, Absolute; case
[RFC/PATCH 2/5] uvc: Adapt the driver to new type of V4L2_CID_FOCUS_AUTO control
From: Heungjun Kim riverful@samsung.com The V4L2_CID_FOCUS_AUTO control has been converted from boolean type, where control's value 0 and 1 were corresponding to manual and automatic focus respectively, to menu type with following menu items: 0 - V4L2_FOCUS_MANUAL, 1 - V4L2_FOCUS_AUTO, 2 - V4L2_FOCUS_AUTO_MACRO, 3 - V4L2_FOCUS_AUTO_CONTINUOUS. According to this change the uvc control mappings are modified to retain original sematics, where 0 corresponds to manual and 1 to auto focus. Signed-off-by: Heungjun Kim riverful@samsung.com Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com Signed-off-by: Sylwester Nawrocki s.nawro...@samsung.com --- The V4L2_CID_FOCUS_AUTO control in V4L2_FOCUS_AUTO mode does only a one-shot auto focus, when switched from V4L2_FOCUS_MANUAL. It might be worth to implement also the V4L2_CID_DO_AUTO_FOCUS button control in uvc, however I didn't take time yet to better understand the driver and add this. I also don't have any uvc hardware to test this patch so it's just compile tested. --- drivers/media/video/uvc/uvc_ctrl.c |9 - 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/drivers/media/video/uvc/uvc_ctrl.c b/drivers/media/video/uvc/uvc_ctrl.c index 254d326..6860ca1 100644 --- a/drivers/media/video/uvc/uvc_ctrl.c +++ b/drivers/media/video/uvc/uvc_ctrl.c @@ -365,6 +365,11 @@ static struct uvc_menu_info exposure_auto_controls[] = { { 8, Aperture Priority Mode }, }; +static struct uvc_menu_info focus_auto_controls[] = { + { 0, Manual Mode }, + { 1, Auto Mode }, +}; + static __s32 uvc_ctrl_get_zoom(struct uvc_control_mapping *mapping, __u8 query, const __u8 *data) { @@ -592,8 +597,10 @@ static struct uvc_control_mapping uvc_ctrl_mappings[] = { .selector = UVC_CT_FOCUS_AUTO_CONTROL, .size = 1, .offset = 0, - .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN, + .v4l2_type = V4L2_CTRL_TYPE_MENU, .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN, + .menu_info = focus_auto_controls, + .menu_count = ARRAY_SIZE(focus_auto_controls), }, { .id = V4L2_CID_IRIS_ABSOLUTE, -- 1.7.4.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
[RFC/PATCH 3/5] v4l: Add V4L2_CID_METERING_MODE camera control
The V4L2_CID_METERING_MODE control allows to determine what method is used by the camera to measure the amount of light available for automatic exposure control. Signed-off-by: Sylwester Nawrocki snj...@gmail.com --- Documentation/DocBook/media/v4l/controls.xml | 31 ++ drivers/media/video/v4l2-ctrls.c |2 + include/linux/videodev2.h|7 ++ 3 files changed, 40 insertions(+), 0 deletions(-) diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index 5ccb0b0..53d7c08 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml @@ -2893,6 +2893,7 @@ mechanical obturation of the sensor and firmware image processing, but the device is not restricted to these methods. Devices that implement the privacy control must support read access and may support write access./entry /row + rowentry/entry/row row entry spanname=idconstantV4L2_CID_BAND_STOP_FILTER/constantnbsp;/entry @@ -2902,6 +2903,36 @@ camera sensor on or off, or specify its strength. Such band-stop filters can be used, for example, to filter out the fluorescent light component./entry /row rowentry/entry/row + + row id=v4l2-metering-mode + entry spanname=idconstantV4L2_CID_METERING_MODE/constantnbsp;/entry + entryenumnbsp;v4l2_metering_mode/entry + /rowrowentry spanname=descrDetermines how the camera measures +the amount of light available to expose a frame. Possible values are:/entry + /row + row + entrytbl spanname=descr cols=2 + tbody valign=top + row + entryconstantV4L2_METERING_MODE_AVERAGE/constantnbsp;/entry + entryUse the light information coming from the entire scene +and average giving no weighting to any particular portion of the metered area. + /entry + /row + row + entryconstantV4L2_METERING_MODE_CENTER_WEIGHTED/constantnbsp;/entry + entryAverage the light information coming from the entire scene +giving priority to the center of the metered area./entry + /row + row + entryconstantV4L2_METERING_MODE_SPOT/constantnbsp;/entry + entryMeasure only very small area at the cent-re of the scene./entry + /row + /tbody + /entrytbl + /row + rowentry/entry/row + /tbody /tgroup /table diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c index 7d8862f..8d0cd0e 100644 --- a/drivers/media/video/v4l2-ctrls.c +++ b/drivers/media/video/v4l2-ctrls.c @@ -577,6 +577,7 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_IRIS_ABSOLUTE:return Iris, Absolute; case V4L2_CID_IRIS_RELATIVE:return Iris, Relative; case V4L2_CID_DO_AUTO_FOCUS:return Do Auto Focus; + case V4L2_CID_METERING_MODE:return Metering Mode; /* FM Radio Modulator control */ /* Keep the order of the 'case's the same as in videodev2.h! */ @@ -703,6 +704,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, case V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC: case V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL: case V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE: + case V4L2_CID_METERING_MODE: *type = V4L2_CTRL_TYPE_MENU; break; case V4L2_CID_RDS_TX_PS_NAME: diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 9acb514..8956ed6 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -1626,6 +1626,13 @@ enum v4l2_focus_auto_type { #define V4L2_CID_DO_AUTO_FOCUS (V4L2_CID_CAMERA_CLASS_BASE+19) +#define V4L2_CID_METERING_MODE (V4L2_CID_CAMERA_CLASS_BASE+20) +enum v4l2_metering_mode { + V4L2_METERING_MODE_AVERAGE, + V4L2_METERING_MODE_CENTER_WEIGHTED, + V4L2_METERING_MODE_SPOT, +}; + /* FM Modulator class control IDs */ #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) #define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1) -- 1.7.4.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
[RFC/PATCH 4/5] v4l: Add V4L2_CID_EXPOSURE_BIAS camera control
The V4L2_CID_EXPOSURE_BIAS control allows for manual exposure compensation when automatic exposure algorithm is enabled. Signed-off-by: Sylwester Nawrocki snj...@gmail.com --- Documentation/DocBook/media/v4l/controls.xml | 16 drivers/media/video/v4l2-ctrls.c |1 + include/linux/videodev2.h|2 ++ 3 files changed, 19 insertions(+), 0 deletions(-) diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index 53d7c08..ec5cbc1 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml @@ -2691,6 +2691,22 @@ and 10 for 10 seconds./entry rowentry/entry/row row + entry spanname=idconstantV4L2_CID_EXPOSURE_BIAS/constantnbsp;/entry + entryinteger (menu?)/entry + /rowrowentry spanname=descr Determines the exposure +compensation when constantV4L2_CID_EXPOSURE_AUTO/constant control +is set to constantAUTO/constant, constantSHUTTER_PRIORITY +/constant or constantAPERTURE_PRIORITY/constant. It is expressed +in terms of EV, drivers should interpret the values as 0.001 EV units, +where the value 1000 stands for +1 EV. +paraIncreasing the exposure compensation value is equivalent to +decreasing the exposure value (EV) and will increase the amount of +light at the image sensor. The camera performs the exposure compensation +by adjusting absolute exposure time and/or aperture./para/entry + /row + rowentry/entry/row + + row entry spanname=idconstantV4L2_CID_EXPOSURE_AUTO_PRIORITY/constantnbsp;/entry entryboolean/entry /rowrowentry spanname=descrWhen diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c index 8d0cd0e..ba636f2 100644 --- a/drivers/media/video/v4l2-ctrls.c +++ b/drivers/media/video/v4l2-ctrls.c @@ -578,6 +578,7 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_IRIS_RELATIVE:return Iris, Relative; case V4L2_CID_DO_AUTO_FOCUS:return Do Auto Focus; case V4L2_CID_METERING_MODE:return Metering Mode; + case V4L2_CID_EXPOSURE_BIAS:return Exposure, Bias; /* FM Radio Modulator control */ /* Keep the order of the 'case's the same as in videodev2.h! */ diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 8956ed6..37f93cf 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -1633,6 +1633,8 @@ enum v4l2_metering_mode { V4L2_METERING_MODE_SPOT, }; +#define V4L2_CID_EXPOSURE_BIAS (V4L2_CID_CAMERA_CLASS_BASE+21) + /* FM Modulator class control IDs */ #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) #define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1) -- 1.7.4.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
cron job: media_tree daily build: ERRORS
This message is generated daily by a cron job that builds media_tree for the kernels and architectures in the list below. Results of the daily build of media_tree: date:Sun Dec 4 19:00:17 CET 2011 git hash:2a887d27708a4f9f3b5ad8258f9e19a150b58f03 gcc version: i686-linux-gcc (GCC) 4.6.1 host hardware:x86_64 host os: 3.1-2.slh.1-amd64 linux-git-arm-eabi-enoxys: ERRORS linux-git-arm-eabi-omap: ERRORS linux-git-armv5-ixp: WARNINGS linux-git-i686: WARNINGS linux-git-m32r: OK linux-git-mips: WARNINGS linux-git-powerpc64: WARNINGS linux-git-x86_64: WARNINGS linux-2.6.31.12-i686: WARNINGS linux-2.6.32.6-i686: WARNINGS linux-2.6.33-i686: WARNINGS linux-2.6.34-i686: WARNINGS linux-2.6.35.3-i686: WARNINGS linux-2.6.36-i686: WARNINGS linux-2.6.37-i686: WARNINGS linux-2.6.38.2-i686: WARNINGS linux-2.6.39.1-i686: WARNINGS linux-3.0-i686: WARNINGS linux-3.1-i686: WARNINGS linux-3.2-rc1-i686: WARNINGS linux-2.6.31.12-x86_64: WARNINGS linux-2.6.32.6-x86_64: WARNINGS linux-2.6.33-x86_64: WARNINGS linux-2.6.34-x86_64: WARNINGS linux-2.6.35.3-x86_64: WARNINGS linux-2.6.36-x86_64: WARNINGS linux-2.6.37-x86_64: WARNINGS linux-2.6.38.2-x86_64: WARNINGS linux-2.6.39.1-x86_64: WARNINGS linux-3.0-x86_64: WARNINGS linux-3.1-x86_64: WARNINGS linux-3.2-rc1-x86_64: WARNINGS spec-git: WARNINGS sparse: ERRORS Detailed results are available here: http://www.xs4all.nl/~hverkuil/logs/Sunday.log Full logs are available here: http://www.xs4all.nl/~hverkuil/logs/Sunday.tar.bz2 The V4L-DVB specification from this daily build is here: http://www.xs4all.nl/~hverkuil/spec/media.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
Re: [RFC] vtunerc: virtual DVB device - is it ok to NACK driver because of worrying about possible misusage?
Hi. 2011/12/3 VDR User user@gmail.com: On Sat, Dec 3, 2011 at 8:13 AM, Andreas Oberritter o...@linuxtv.org wrote: You could certainly build a library to reach a different goal. The goal of vtuner is to access remote tuners with any existing program implementing the DVB API. So you could finally use VDR as a server/client setup using vtuner, right? With full OSD, timer, etc? Yes, I'm aware that streamdev exists. It was horrible when I tried it last (a long time ago) and I understand it's gotten better. But it's not a suitable replacement for a real server/client setup. It sounds like using vtuner, this would finally be possible and since Klaus has no intention of ever modernizing VDR into server/client (that I'm aware of), it's also the only suitable option as well. Or am I wrong about anything? If not, I know several users who would like to use this, myself included. Well, initial report was made on vdr-portal because of our hardware announce, but you can be sure the same is true if server is build on any linux hardware. Here is some note: http://www.vdr-portal.de/board18-vdr-hardware/board84-allgemein/106610-das-neue-netzwerk-client-der-f%C3%BCr-vdr-verwenden-k%C3%B6nnen/?highlight=vtuner Additional info you can find (or ask) on our forum: http://forum.nessiedvb.org/forum/viewforum.php?f=11 Please note, that compilation of vtunerc kernel driver (or loopback, or pigback or whatever name the code should be used) is simple - no need for any kernel real patching is required. Code can be compiled outside of the kernel tree (of course kernel headers are still needed). Some useful hints regarding userland application daemons you can find in our wiki: http://wiki.nessiedvb.org/wiki/doku.php?id=vtuner_mode When you get vtunerc and vtunerd applications connected, try simple command line tuning (szap/tzap or czap) to check if it works correctly. Only if you get zapping working switch to vdr. Honza -- 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: [RFC] vtunerc: virtual DVB device - is it ok to NACK driver because of worrying about possible misusage?
Devin, I perfectly remember your opinion regarding vtuner. 2011/12/3 Devin Heitmueller dheitmuel...@kernellabs.com: On Sat, Dec 3, 2011 at 12:42 PM, Alan Cox a...@lxorguk.ukuu.org.uk wrote: On Sat, 3 Dec 2011 09:21:23 -0800 VDR User user@gmail.com wrote: On Sat, Dec 3, 2011 at 8:13 AM, Andreas Oberritter o...@linuxtv.org wrote: You could certainly build a library to reach a different goal. The goal of vtuner is to access remote tuners with any existing program implementing the DVB API. So you could finally use VDR as a server/client setup using vtuner, right? With full OSD, timer, etc? Yes, I'm aware that streamdev exists. It was horrible when I tried it last (a long time ago) and I understand it's gotten better. But it's not a suitable replacement for a real server/client setup. It sounds like using vtuner, this would finally be possible and since Klaus has no intention of ever modernizing VDR into server/client (that I'm aware of), it's also the only suitable option as well. I would expect it to still suck. One of the problems you have with trying to pretend things are not networked is that you fake asynchronous events synchronously, you can't properly cover error cases and as a result you get things like ioctls that hang for two minutes or fail in bogus and bizarre ways. If you loop via userspace you've also got to deal with deadlocks and all sorts of horrible cornercases like the user space daemon dying. There is a reason properly working client/server code looks different - it's not a trivial transformation and faking it kernel side won't be any better than faking it in user space - it may well even be a worse fake. Alan This whole notion of creating fake kernel devices to represent networked tuners feels like a hack. If applications want to access networked tuners, adding support for RTP/RTSP or incorporating libhdhomerun (LGPL) is a fairly straightforward exercise. In fact, many applications already have incorporated support for one of these two approaches. The fact that app maintainers have been unwilling/uninterested to do such doesn't feel like it should be an excuse for hacking this functionality into the kernel. Still the same nonsense - why I should add 10x or even 100 times more code to achieve not the same but may be 80-90% same result? The idea is hell simple = allow to use those remote tuners by 100% of dvb api compliant applications. Not 80%, but 100%. Honza -- 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: [RFC] vtunerc: virtual DVB device - is it ok to NACK driver because of worrying about possible misusage?
Hi, Some input from the sideline reading this discussion. As a FreeBSD'er I would very much like to see two things happen: - vtunerc goes into userspace like a client/server daemon pair using CUSE and can support _any_ /dev/dvb/adapter, also those created by CUSE itself. That means I could potentially use vtunerc in FreeBSD with drivers like cx88: Vtuner already has userland client/server pair. The server application is connecting to _any_ /dev/dvb/adapter device. Please look at small picture here: http://code.google.com/p/vtuner/wiki/BigPicture That means the server part is using totally clean linux. Nothing more. http://corona.homeunix.net/cx88wiki - DVB-X solution in Linux gets mmap support to avoid endless copying of data between kernel and userspace. Adding nmap support should be straightforward. I have it on my TODO. Honza -- 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: [RFC] vtunerc: virtual DVB device - is it ok to NACK driver because of worrying about possible misusage?
On Sun, Dec 4, 2011 at 3:22 PM, HoP jpetr...@gmail.com wrote: Well, initial report was made on vdr-portal because of our hardware announce, but you can be sure the same is true if server is build on any linux hardware. Here is some note: http://www.vdr-portal.de/board18-vdr-hardware/board84-allgemein/106610-das-neue-netzwerk-client-der-f%C3%BCr-vdr-verwenden-k%C3%B6nnen/?highlight=vtuner Additional info you can find (or ask) on our forum: http://forum.nessiedvb.org/forum/viewforum.php?f=11 Please note, that compilation of vtunerc kernel driver (or loopback, or pigback or whatever name the code should be used) is simple - no need for any kernel real patching is required. Code can be compiled outside of the kernel tree (of course kernel headers are still needed). Some useful hints regarding userland application daemons you can find in our wiki: http://wiki.nessiedvb.org/wiki/doku.php?id=vtuner_mode When you get vtunerc and vtunerd applications connected, try simple command line tuning (szap/tzap or czap) to check if it works correctly. Only if you get zapping working switch to vdr. Thanks for the info and links. I do know many guys who would be interested in this if it can provide good server/client ability with VDR. However, a large number of us only speak english so places like vdr-portal aren't much use a lot of the time. If you have english forums somewhere, that link would be far more useful I think. Thanks -- 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
cx231xx kernel oops
I am experiencing a kernel oops when trying to use a Hauppage USB Live 2 frame grabber. The oops is below. The system is a SOC 260Mhz Broadcom BCM47XX access point running OpenWRT. root@anchor:/# uname -a Linux anchor 3.0.3 #13 Sun Dec 4 08:04:41 PST 2011 mips GNU/Linux The OOPS could be due to the limited hardware or something else. I'd appreciate any suggestions for making this work. I was hoping with hardware compression I could make it work on this platform. I am currently using a Hauppage USB Live (saa7115 based) with no problems but with limited resolution. cx231xx v4l2 driver loaded. cx231xx #0: New device Hauppauge Hauppauge Device @ 480 Mbps (2040:c200) with 5 interfaces cx231xx #0: registering interface 1 cx231xx #0: can't change interface 3 alt no. to 3: Max. Pkt size = 0 cx231xx #0: can't change interface 4 alt no. to 1: Max. Pkt size = 0 cx231xx #0: Identified as Hauppauge USB Live 2 (card=9) cx231xx #0: cx231xx_dif_set_standard: setStandard to cx231xx #0: Changing the i2c master port to 3 cx231xx #0: cx25840 subdev registration failure cx231xx #0: cx231xx #0: v4l2 driver version 0.0.1 cx231xx #0: cx231xx_dif_set_standard: setStandard to cx231xx #0: video_mux : 0 cx231xx #0: do_mode_ctrl_overrides : 0xb000 cx231xx #0: do_mode_ctrl_overrides NTSC cx231xx #0: cx231xx #0/0: registered device video0 [v4l2] cx231xx #0: cx231xx #0/0: registered device vbi0 cx231xx #0: V4L2 device registered as video0 and vbi0 cx231xx #0: EndPoint Addr 0x84, Alternate settings: 5 cx231xx #0: Alternate setting 0, max size= 512 cx231xx #0: Alternate setting 1, max size= 184 cx231xx #0: Alternate setting 2, max size= 728 cx231xx #0: Alternate setting 3, max size= 2892 cx231xx #0: Alternate setting 4, max size= 1800 cx231xx #0: EndPoint Addr 0x85, Alternate settings: 2 cx231xx #0: Alternate setting 0, max size= 512 cx231xx #0: Alternate setting 1, max size= 512 cx231xx #0: EndPoint Addr 0x86, Alternate settings: 2 cx231xx #0: Alternate setting 0, max size= 512 cx231xx #0: Alternate setting 1, max size= 576 usbcore: registered new interface driver cx231xx wlan0: deauthenticating from ea:c7:b6:67:bd:1e by local choice (reason=3) b43-phy0: Loading firmware version 508.1084 (2009-01-14 01:32:01) wlan0: authenticate with ea:c7:b6:67:bd:1e (try 1) wlan0: authenticated wlan0: associate with ea:c7:b6:67:bd:1e (try 1) wlan0: RX AssocResp from ea:c7:b6:67:bd:1e (capab=0x411 status=0 aid=3) wlan0: associated hrtimer: interrupt took 33795302 ns cx231xx #0: setPowerMode::mode = 48, No Change req. cx231xx #0: cx231xx_dif_set_standard: setStandard to cx231xx #0: video_mux : 0 cx231xx #0: do_mode_ctrl_overrides : 0xb000 cx231xx #0: do_mode_ctrl_overrides NTSC cx231xx #0: cx231xx_stop_stream():: ep_mask = 8 cx231xx #0: cx231xx_initialize_stream_xfer: set video registers cx231xx #0: cx231xx_start_stream():: ep_mask = 8 ehci_hcd :00:02.2: fatal error ehci_hcd :00:02.2: HC died; cleaning up ehci_hcd :00:02.2: force halt; handshake c0350024 4000 4000 - -145 ehci_hcd :00:02.2: HC died; cleaning up usb 1-1: USB disconnect, device number 3 usb 1-1.3: USB disconnect, device number 4 pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 pl2303 1-1.3:1.0: device disconnected usb 1-2: USB disconnect, device number 2 usb 2-1: new full speed USB device number 2 using ohci_hcd usb 2-1: not running at top speed; connect to a high speed hub hub 2-1:1.0: USB hub found hub 2-1:1.0: 4 ports detected usb 3-1: new full speed USB device number 2 using ohci_hcd usb 3-1: not running at top speed; connect to a high speed hub cx231xx #1: New device Hauppauge Hauppauge Device @ 12 Mbps (2040:c200) with 3 interfaces cx231xx #1: registering interface 1 cx231xx #1: can't change interface 3 alt no. to 3: Max. Pkt size = 0 usb 3-1: selecting invalid altsetting 3 cx231xx #1: can't change interface 3 alt no. to 3 (err=-22) cx231xx #1: can't change interface 4 alt no. to 1: Max. Pkt size = 0 cx231xx #1: can't change interface 4 alt no. to 1 (err=-22) cx231xx #1: Identified as Hauppauge USB Live 2 (card=9) cx231xx #1: cx231xx_dif_set_standard: setStandard to cx231xx #1: can't change interface 5 alt no. to 0 (err=-22) cx231xx #1: Changing the i2c master port to 3 cx231xx #1: cx25840 subdev registration failure cx231xx #1: cx231xx #1: v4l2 driver version 0.0.1 cx231xx #1: cx231xx_dif_set_standard: setStandard to cx231xx #1: video_mux : 0 cx231xx #1: do_mode_ctrl_overrides : 0xb000 cx231xx #1: do_mode_ctrl_overrides NTSC cx231xx #1: cx231xx #1/0: registered device video1 [v4l2] cx231xx #1: cx231xx #1/0: registered device vbi1 cx231xx #1: V4L2 device registered as video1 and vbi1 cx231xx #1: EndPoint Addr 0x84, Alternate settings: 2 cx231xx #1: Alternate setting 0, max size= 64 cx231xx #1: Alternate setting 1, max size= 728 CPU 0 Unable to handle kernel paging request at virtual address , epc == 80f64e5c, ra == 80f64e30 Oops[#1]: Cpu 0 $ 0 : 1000fc00 81b97660
Re: cx231xx kernel oops
On Sun, 2011-12-04 at 18:01 -0800, Yan Seiner wrote: I am experiencing a kernel oops when trying to use a Hauppage USB Live 2 frame grabber. The oops is below. The system is a SOC 260Mhz Broadcom BCM47XX access point running OpenWRT. root@anchor:/# uname -a Linux anchor 3.0.3 #13 Sun Dec 4 08:04:41 PST 2011 mips GNU/Linux The OOPS could be due to the limited hardware or something else. I'd appreciate any suggestions for making this work. I was hoping with hardware compression I could make it work on this platform. I am currently using a Hauppage USB Live (saa7115 based) with no problems but with limited resolution. cx231xx v4l2 driver loaded. cx231xx #0: New device Hauppauge Hauppauge Device @ 480 Mbps (2040:c200) with 5 interfaces cx231xx #0: registering interface 1 cx231xx #0: can't change interface 3 alt no. to 3: Max. Pkt size = 0 cx231xx #0: can't change interface 4 alt no. to 1: Max. Pkt size = 0 cx231xx #0: Identified as Hauppauge USB Live 2 (card=9) cx231xx #0: cx231xx_dif_set_standard: setStandard to cx231xx #0: Changing the i2c master port to 3 cx231xx #0: cx25840 subdev registration failure The cx231xx driver requires the cx25840 module. I'll wager you didn't install it on your router. 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
Re: cx231xx kernel oops
Andy Walls wrote: On Sun, 2011-12-04 at 18:01 -0800, Yan Seiner wrote: I am experiencing a kernel oops when trying to use a Hauppage USB Live 2 frame grabber. The oops is below. The system is a SOC 260Mhz Broadcom BCM47XX access point running OpenWRT. root@anchor:/# uname -a Linux anchor 3.0.3 #13 Sun Dec 4 08:04:41 PST 2011 mips GNU/Linux The OOPS could be due to the limited hardware or something else. I'd appreciate any suggestions for making this work. I was hoping with hardware compression I could make it work on this platform. I am currently using a Hauppage USB Live (saa7115 based) with no problems but with limited resolution. cx231xx v4l2 driver loaded. cx231xx #0: New device Hauppauge Hauppauge Device @ 480 Mbps (2040:c200) with 5 interfaces cx231xx #0: registering interface 1 cx231xx #0: can't change interface 3 alt no. to 3: Max. Pkt size = 0 cx231xx #0: can't change interface 4 alt no. to 1: Max. Pkt size = 0 cx231xx #0: Identified as Hauppauge USB Live 2 (card=9) cx231xx #0: cx231xx_dif_set_standard: setStandard to cx231xx #0: Changing the i2c master port to 3 cx231xx #0: cx25840 subdev registration failure The cx231xx driver requires the cx25840 module. I'll wager you didn't install it on your router. Right in one. I did not because it didn't seem to be required - no missing symbols or error messages. Would a warning to syslog be possible? With 8MB of flash, I remove everything that is not required. --Yan -- Few people are capable of expressing with equanimity opinions which differ from the prejudices of their social environment. Most people are even incapable of forming such opinions. Albert Einstein -- 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: [RFC PATCH v1 2/7] omap4: build fdif omap device from hwmod
Hi, On Sat, Dec 3, 2011 at 12:28 AM, Aguirre, Sergio saagui...@ti.com wrote: Hi Ming, Thanks for the patches. Thanks for your review. On Fri, Dec 2, 2011 at 9:02 AM, Ming Lei ming@canonical.com wrote: Signed-off-by: Ming Lei ming@canonical.com --- arch/arm/mach-omap2/devices.c | 33 + 1 files changed, 33 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 1166bdc..a392af5 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c @@ -728,6 +728,38 @@ void __init omap242x_init_mmc(struct omap_mmc_platform_data **mmc_data) #endif +static struct platform_device* __init omap4_init_fdif(void) +{ + int id = -1; You could remove this , as it is being used only once, and never changed. Yes. + struct platform_device *pd; + struct omap_hwmod *oh; + const char *dev_name = fdif; + + oh = omap_hwmod_lookup(fdif); + if (!oh) { + pr_err(Could not look up fdif hwmod\n); + return NULL; + } + + pd = omap_device_build(dev_name, id, oh, NULL, 0, NULL, 0, 0); Just do: pd = omap_device_build(dev_name, -1, oh, NULL, 0, NULL, 0, 0); + WARN(IS_ERR(pd), Can't build omap_device for %s.\n, + dev_name); + return pd; +} + +static void __init omap_init_fdif(void) +{ + if (cpu_is_omap44xx()) { + struct platform_device *pd; + + pd = omap4_init_fdif(); + if (!pd) + return; + + pm_runtime_enable(pd-dev); + } +} IMHO, you could reduce 1 level of indentation here, like this: static void __init omap_init_fdif(void) { struct platform_device *pd; if (!cpu_is_omap44xx()) return; pd = omap4_init_fdif(); if (!pd) return; pm_runtime_enable(pd-dev); } OK, will take this. thanks, -- Ming Lei -- 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: cx231xx kernel oops
Andy Walls wrote: On Sun, 2011-12-04 at 18:01 -0800, Yan Seiner wrote: I am experiencing a kernel oops when trying to use a Hauppage USB Live 2 frame grabber. The oops is below. The system is a SOC 260Mhz Broadcom BCM47XX access point running OpenWRT. root@anchor:/# uname -a Linux anchor 3.0.3 #13 Sun Dec 4 08:04:41 PST 2011 mips GNU/Linux The OOPS could be due to the limited hardware or something else. I'd appreciate any suggestions for making this work. I was hoping with hardware compression I could make it work on this platform. I am currently using a Hauppage USB Live (saa7115 based) with no problems but with limited resolution. cx231xx v4l2 driver loaded. cx231xx #0: New device Hauppauge Hauppauge Device @ 480 Mbps (2040:c200) with 5 interfaces cx231xx #0: registering interface 1 cx231xx #0: can't change interface 3 alt no. to 3: Max. Pkt size = 0 cx231xx #0: can't change interface 4 alt no. to 1: Max. Pkt size = 0 cx231xx #0: Identified as Hauppauge USB Live 2 (card=9) cx231xx #0: cx231xx_dif_set_standard: setStandard to cx231xx #0: Changing the i2c master port to 3 cx231xx #0: cx25840 subdev registration failure The cx231xx driver requires the cx25840 module. I'll wager you didn't install it on your router. I made sure the module was loaded; same thing. :-( Module Size Used byTainted: G cx231xx 124608 0 cx2341x13552 1 cx231xx cx2584035568 2 rc_core12640 1 cx231xx videobuf_vmalloc3168 1 cx231xx videobuf_core 12384 2 cx231xx,videobuf_vmalloc I was not able to catch the first bit. cx231xx #1: can't change interface 4 alt no. to 1: Max. Pkt size = 0 cx231xx #1: can't change interface 4 alt no. to 1 (err=-22) cx231xx #1: Identified as Hauppauge USB Live 2 (card=9) cx231xx #1: cx231xx_dif_set_standard: setStandard to cx231xx #1: can't change interface 5 alt no. to 0 (err=-22) cx231xx #1: Changing the i2c master port to 3 cx25840 3-0044: cx23102 A/V decoder found @ 0x88 (cx231xx #1) cx25840 3-0044: Firmware download size changed to 16 bytes max length cx25840 3-0044: unable to open firmware v4l-cx231xx-avcore-01.fw cx231xx #1: cx231xx #1: v4l2 driver version 0.0.1 cx231xx #1: cx231xx_dif_set_standard: setStandard to cx231xx #1: video_mux : 0 cx231xx #1: do_mode_ctrl_overrides : 0xb000 cx231xx #1: do_mode_ctrl_overrides NTSC cx231xx #1: cx231xx #1/0: registered device video1 [v4l2] cx231xx #1: cx231xx #1/0: registered device vbi1 cx231xx #1: V4L2 device registered as video1 and vbi1 cx231xx #1: EndPoint Addr 0x84, Alternate settings: 2 cx231xx #1: Alternate setting 0, max size= 64 cx231xx #1: Alternate setting 1, max size= 728 CPU 0 Unable to handle kernel paging request at virtual address , epc == 80f84e5c, ra == 80f84e30 Oops[#1]: Cpu 0 $ 0 : 1000fc00 80e2f860 80e2f800 $ 4 : 80f9ad58 5095 $ 8 : 000a 0001 0001 000d $12 : 00ff ffe0 8103f760 $16 : 81e3 80c9f800 80fa $20 : 0002 81e300f8 0001 $24 : 0002 801539e0 $28 : 80c74000 80c75a88 80fa 80f84e30 Hi: Lo: epc : 80f84e5c 0x80f84e5c Not tainted ra: 80f84e30 0x80f84e30 Status: 1000fc03KERNEL EXL IE Cause : 0088 BadVA : PrId : 00029006 (Broadcom BMIPS3300) Modules linked in: cx231xx cx2341x cx25840 rc_core videobuf_vmalloc videobuf_core saa7115 usbvision pl2303 v4l2_common videodev usb_storage usbserial i2c_dev i2c_core ohci_hcd nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_conntrack_ftp ipt_MASQUERADE iptable_nat nf_nat xt_conntrack xt_NOTRACK iptable_raw xt_state nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack ehci_hcd sd_mod ipt_REJECT xt_TCPMSS ipt_LOG xt_comment xt_multiport xt_mac xt_limit iptable_mangle iptable_filter ip_tables xt_tcpudp x_tables tun vfat fat ext4 jbd2 mbcache b43legacy b43 nls_iso8859_1 nls_cp437 mac80211 usbcore scsi_mod nls_base crc16 cfg80211 compat input_core arc4 aes_generic crypto_algapi switch_robo switch_core diag Process khubd (pid: 596, threadinfo=80c74000, task=81a2d1a8, tls=) Stack : 802c4084 81e3 0001 02d8 2040 c200 0003 8011fa58 70756148 67756170 61482065 61707075 20656775 69766544 00206563 ... Call Trace:[8011fa58] 0x8011fa58 [80c8cd9c] 0x80c8cd9c [8015db94] 0x8015db94 [8015df14] 0x8015df14 [8015e118] 0x8015e118 [8015e0e8] 0x8015e0e8 [8015cb28] 0x8015cb28 [801197ac] 0x801197ac [8015dd14] 0x8015dd14 [8015b9e0] 0x8015b9e0 [80c89d54] 0x80c89d54 [80c8bf80] 0x80c8bf80 [800e15a8] 0x800e15a8 [80c92e58]
Re: cx231xx kernel oops
Yan Seiner wrote: Andy Walls wrote: On Sun, 2011-12-04 at 18:01 -0800, Yan Seiner wrote: I am experiencing a kernel oops when trying to use a Hauppage USB Live 2 frame grabber. The oops is below. The system is a SOC 260Mhz Broadcom BCM47XX access point running OpenWRT. root@anchor:/# uname -a Linux anchor 3.0.3 #13 Sun Dec 4 08:04:41 PST 2011 mips GNU/Linux The OOPS could be due to the limited hardware or something else. I'd appreciate any suggestions for making this work. I was hoping with hardware compression I could make it work on this platform. I am currently using a Hauppage USB Live (saa7115 based) with no problems but with limited resolution. cx231xx v4l2 driver loaded. cx231xx #0: New device Hauppauge Hauppauge Device @ 480 Mbps (2040:c200) with 5 interfaces cx231xx #0: registering interface 1 cx231xx #0: can't change interface 3 alt no. to 3: Max. Pkt size = 0 cx231xx #0: can't change interface 4 alt no. to 1: Max. Pkt size = 0 cx231xx #0: Identified as Hauppauge USB Live 2 (card=9) cx231xx #0: cx231xx_dif_set_standard: setStandard to cx231xx #0: Changing the i2c master port to 3 cx231xx #0: cx25840 subdev registration failure The cx231xx driver requires the cx25840 module. I'll wager you didn't install it on your router. I made sure the module was loaded; same thing. :-( Module Size Used byTainted: G cx231xx 124608 0 cx2341x13552 1 cx231xx cx2584035568 2 rc_core12640 1 cx231xx videobuf_vmalloc3168 1 cx231xx videobuf_core 12384 2 cx231xx,videobuf_vmalloc I was not able to catch the first bit. cx231xx #1: can't change interface 4 alt no. to 1: Max. Pkt size = 0 cx231xx #1: can't change interface 4 alt no. to 1 (err=-22) cx231xx #1: Identified as Hauppauge USB Live 2 (card=9) cx231xx #1: cx231xx_dif_set_standard: setStandard to cx231xx #1: can't change interface 5 alt no. to 0 (err=-22) cx231xx #1: Changing the i2c master port to 3 cx25840 3-0044: cx23102 A/V decoder found @ 0x88 (cx231xx #1) cx25840 3-0044: Firmware download size changed to 16 bytes max length cx25840 3-0044: unable to open firmware v4l-cx231xx-avcore-01.fw Maybe I need that, eh? :-) -- Few people are capable of expressing with equanimity opinions which differ from the prejudices of their social environment. Most people are even incapable of forming such opinions. Albert Einstein -- 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: [RFC] vtunerc: virtual DVB device - is it ok to NACK driver because of worrying about possible misusage?
Well, initial report was made on vdr-portal because of our hardware announce, but you can be sure the same is true if server is build on any linux hardware. Here is some note: http://www.vdr-portal.de/board18-vdr-hardware/board84-allgemein/106610-das-neue-netzwerk-client-der-f%C3%BCr-vdr-verwenden-k%C3%B6nnen/?highlight=vtuner Additional info you can find (or ask) on our forum: http://forum.nessiedvb.org/forum/viewforum.php?f=11 Please note, that compilation of vtunerc kernel driver (or loopback, or pigback or whatever name the code should be used) is simple - no need for any kernel real patching is required. Code can be compiled outside of the kernel tree (of course kernel headers are still needed). Some useful hints regarding userland application daemons you can find in our wiki: http://wiki.nessiedvb.org/wiki/doku.php?id=vtuner_mode When you get vtunerc and vtunerd applications connected, try simple command line tuning (szap/tzap or czap) to check if it works correctly. Only if you get zapping working switch to vdr. Thanks for the info and links. I do know many guys who would be interested in this if it can provide good server/client ability with VDR. However, a large number of us only speak english so places like vdr-portal aren't much use a lot of the time. If you have english forums somewhere, that link would be far more useful I think. No problem. Simply ignore first URL. All others are english :-) I would recommend start from how-it-works-diagram: http://code.google.com/p/vtuner/wiki/BigPicture and then have a look at wiki. where you can some step-by-step info. Anyway, don't hesitate to ask any question in our forum or write me directly. Honza -- 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 3/5] tm6000: bugfix interrupt reset
* linu...@stefanringel.de wrote: From: Stefan Ringel linu...@stefanringel.de Signed-off-by: Stefan Ringel linu...@stefanringel.de Your commit message needs more details. Why do you think this is a bugfix? Also this commit seems to effectively revert (and then partially reimplement) a patch that I posted some months ago. --- drivers/media/video/tm6000/tm6000-core.c | 49 - drivers/media/video/tm6000/tm6000-video.c | 21 ++-- 2 files changed, 17 insertions(+), 53 deletions(-) diff --git a/drivers/media/video/tm6000/tm6000-core.c b/drivers/media/video/tm6000/tm6000-core.c index c007e6d..920299e 100644 --- a/drivers/media/video/tm6000/tm6000-core.c +++ b/drivers/media/video/tm6000/tm6000-core.c @@ -599,55 +599,6 @@ int tm6000_init(struct tm6000_core *dev) return rc; } -int tm6000_reset(struct tm6000_core *dev) -{ - int pipe; - int err; - - msleep(500); - - err = usb_set_interface(dev-udev, dev-isoc_in.bInterfaceNumber, 0); - if (err 0) { - tm6000_err(failed to select interface %d, alt. setting 0\n, - dev-isoc_in.bInterfaceNumber); - return err; - } - - err = usb_reset_configuration(dev-udev); - if (err 0) { - tm6000_err(failed to reset configuration\n); - return err; - } - - if ((dev-quirks TM6000_QUIRK_NO_USB_DELAY) == 0) - msleep(5); - - /* - * Not all devices have int_in defined - */ - if (!dev-int_in.endp) - return 0; - - err = usb_set_interface(dev-udev, dev-isoc_in.bInterfaceNumber, 2); - if (err 0) { - tm6000_err(failed to select interface %d, alt. setting 2\n, - dev-isoc_in.bInterfaceNumber); - return err; - } - - msleep(5); - - pipe = usb_rcvintpipe(dev-udev, - dev-int_in.endp-desc.bEndpointAddress USB_ENDPOINT_NUMBER_MASK); - - err = usb_clear_halt(dev-udev, pipe); - if (err 0) { - tm6000_err(usb_clear_halt failed: %d\n, err); - return err; - } - - return 0; -} int tm6000_set_audio_bitrate(struct tm6000_core *dev, int bitrate) { diff --git a/drivers/media/video/tm6000/tm6000-video.c b/drivers/media/video/tm6000/tm6000-video.c index 1e5ace0..4db3535 100644 --- a/drivers/media/video/tm6000/tm6000-video.c +++ b/drivers/media/video/tm6000/tm6000-video.c @@ -1609,12 +1609,25 @@ static int tm6000_release(struct file *file) tm6000_uninit_isoc(dev); + /* Stop interrupt USB pipe */ + tm6000_ir_int_stop(dev); + + usb_reset_configuration(dev-udev); + + if (dev-int_in) This check is wrong, dev-int_in will always be true. + usb_set_interface(dev-udev, + dev-isoc_in.bInterfaceNumber, + 2); + else + usb_set_interface(dev-udev, + dev-isoc_in.bInterfaceNumber, + 0); This would need better indentation. + + /* Start interrupt USB pipe */ + tm6000_ir_int_start(dev); + Why do you restart the IR interrupt pipe when the device is being released? if (!fh-radio) videobuf_mmap_free(fh-vb_vidq); - - err = tm6000_reset(dev); - if (err 0) - dev_err(vdev-dev, reset failed: %d\n, err); } kfree(fh); I think this whole patch should be much shorter. Something along the lines of: @@ -1609,12 +1609,25 @@ static int tm6000_release(struct file *file) tm6000_uninit_isoc(dev); + /* Stop interrupt USB pipe */ + tm6000_ir_int_stop(dev); + if (!fh-radio) videobuf_mmap_free(fh-vb_vidq); Thierry pgpMorYsK0ys3.pgp Description: PGP signature