cron job: media_tree daily build: WARNINGS
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 Nov 24 04:00:29 CET 2013 git branch: test git hash: 80f93c7b0f4599ffbdac8d964ecd1162b8b618b9 gcc version:i686-linux-gcc (GCC) 4.8.1 sparse version: 0.4.5-rc1 host hardware: x86_64 host os:3.12-0.slh.2-amd64 linux-git-arm-at91: OK linux-git-arm-davinci: OK linux-git-arm-exynos: OK linux-git-arm-mx: OK linux-git-arm-omap: OK linux-git-arm-omap1: OK linux-git-arm-pxa: OK linux-git-blackfin: OK linux-git-i686: OK linux-git-m32r: OK linux-git-mips: OK linux-git-powerpc64: OK linux-git-sh: OK linux-git-x86_64: OK linux-2.6.31.14-i686: OK linux-2.6.32.27-i686: OK linux-2.6.33.7-i686: OK linux-2.6.34.7-i686: OK linux-2.6.35.9-i686: OK linux-2.6.36.4-i686: OK linux-2.6.37.6-i686: OK linux-2.6.38.8-i686: OK linux-2.6.39.4-i686: OK linux-3.0.60-i686: OK linux-3.1.10-i686: OK linux-3.2.37-i686: OK linux-3.3.8-i686: OK linux-3.4.27-i686: OK linux-3.5.7-i686: OK linux-3.6.11-i686: OK linux-3.7.4-i686: OK linux-3.8-i686: OK linux-3.9.2-i686: OK linux-3.10.1-i686: OK linux-3.11.1-i686: OK linux-3.12-i686: OK linux-2.6.31.14-x86_64: OK linux-2.6.32.27-x86_64: OK linux-2.6.33.7-x86_64: OK linux-2.6.34.7-x86_64: OK linux-2.6.35.9-x86_64: OK linux-2.6.36.4-x86_64: OK linux-2.6.37.6-x86_64: OK linux-2.6.38.8-x86_64: OK linux-2.6.39.4-x86_64: OK linux-3.0.60-x86_64: OK linux-3.1.10-x86_64: OK linux-3.2.37-x86_64: OK linux-3.3.8-x86_64: OK linux-3.4.27-x86_64: OK linux-3.5.7-x86_64: OK linux-3.6.11-x86_64: OK linux-3.7.4-x86_64: OK linux-3.8-x86_64: OK linux-3.9.2-x86_64: OK linux-3.10.1-x86_64: OK linux-3.11.1-x86_64: OK linux-3.12-x86_64: OK apps: WARNINGS spec-git: OK sparse version: 0.4.5-rc1 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 Media Infrastructure API 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: [PATCH] input:keyboard: "keycode & KEY_MAX" changes some keycode value.
Hi Andrew, On Sat, Nov 23, 2013 at 09:45:45PM +0800, andrew.liu200...@gmail.com wrote: > From: Andrew Liu > > For exmaple, keycode: KEY_OK(0x160) is changed by "and" operation with > KEY_MAX(0x2ff) to KEY_KPENTER(96). > > Signed-off-by: Andrew Liu > --- > drivers/input/keyboard/adp5588-keys.c |8 ++-- > drivers/input/keyboard/adp5589-keys.c |8 ++-- > drivers/input/keyboard/bf54x-keys.c |8 ++-- > drivers/input/misc/pcf8574_keypad.c |6 +- > drivers/media/pci/ttpci/av7110_ir.c |1 + > 5 files changed, 24 insertions(+), 7 deletions(-) > > diff --git a/drivers/input/keyboard/adp5588-keys.c > b/drivers/input/keyboard/adp5588-keys.c > index dbd2047..1ce559e 100644 > --- a/drivers/input/keyboard/adp5588-keys.c > +++ b/drivers/input/keyboard/adp5588-keys.c > @@ -535,8 +535,12 @@ static int adp5588_probe(struct i2c_client *client, > if (pdata->repeat) > __set_bit(EV_REP, input->evbit); > > - for (i = 0; i < input->keycodemax; i++) > - __set_bit(kpad->keycode[i] & KEY_MAX, input->keybit); > + for (i = 0; i < input->keycodemax; i++) { > + if (kpad->keycode[i] > KEY_MAX) > + kpad->keycode[i] = 0; There is no need to reset keymap entires to 0, not setting keybit is enough. > + else if (kpad->keycode[i] > KEY_RESERVED) > + __set_bit(kpad->keycode[i], input->keybit); > + } > __clear_bit(KEY_RESERVED, input->keybit); > > if (kpad->gpimapsize) > diff --git a/drivers/input/keyboard/adp5589-keys.c > b/drivers/input/keyboard/adp5589-keys.c > index 67d12b3..22ca2a5 100644 > --- a/drivers/input/keyboard/adp5589-keys.c > +++ b/drivers/input/keyboard/adp5589-keys.c > @@ -991,8 +991,12 @@ static int adp5589_probe(struct i2c_client *client, > if (pdata->repeat) > __set_bit(EV_REP, input->evbit); > > - for (i = 0; i < input->keycodemax; i++) > - __set_bit(kpad->keycode[i] & KEY_MAX, input->keybit); > + for (i = 0; i < input->keycodemax; i++) { > + if (kpad->keycode[i] > KEY_MAX) > + kpad->keycode[i] = 0; > + else if (kpad->keycode[i] > KEY_RESERVED) > + __set_bit(kpad->keycode[i], input->keybit); > + } > __clear_bit(KEY_RESERVED, input->keybit); > > if (kpad->gpimapsize) > diff --git a/drivers/input/keyboard/bf54x-keys.c > b/drivers/input/keyboard/bf54x-keys.c > index fc88fb4..96f54e7 100644 > --- a/drivers/input/keyboard/bf54x-keys.c > +++ b/drivers/input/keyboard/bf54x-keys.c > @@ -288,8 +288,12 @@ static int bfin_kpad_probe(struct platform_device *pdev) > if (pdata->repeat) > __set_bit(EV_REP, input->evbit); > > - for (i = 0; i < input->keycodemax; i++) > - __set_bit(bf54x_kpad->keycode[i] & KEY_MAX, input->keybit); > + for (i = 0; i < input->keycodemax; i++) { > + if (bf54x_kpad->keycode[i] > KEY_MAX) > + bf54x_kpad->keycode[i] = 0; > + else if (bf54x_kpad->keycode[i] > KEY_RESERVED) > + __set_bit(bf54x_kpad->keycode[i], input->keybit); > + } > __clear_bit(KEY_RESERVED, input->keybit); > > error = input_register_device(input); > diff --git a/drivers/input/misc/pcf8574_keypad.c > b/drivers/input/misc/pcf8574_keypad.c > index e373929..48829f3 100644 > --- a/drivers/input/misc/pcf8574_keypad.c > +++ b/drivers/input/misc/pcf8574_keypad.c > @@ -114,8 +114,12 @@ static int pcf8574_kp_probe(struct i2c_client *client, > const struct i2c_device_i > > for (i = 0; i < ARRAY_SIZE(pcf8574_kp_btncode); i++) { > lp->btncode[i] = pcf8574_kp_btncode[i]; > - __set_bit(lp->btncode[i] & KEY_MAX, idev->keybit); > + if (lp->btncode[i] > KEY_MAX) > + lp->btncode[i] = 0; > + else if (lp->btncode[i] > KEY_RESERVED) > + __set_bit(lp->btncode[i], idev->keybit); > } > + __clear_bit(KEY_RESERVED, idev->keybit); > > sprintf(lp->name, DRV_NAME); > sprintf(lp->phys, "kp_data/input0"); > diff --git a/drivers/media/pci/ttpci/av7110_ir.c > b/drivers/media/pci/ttpci/av7110_ir.c > index 0e763a7..7fdac45 100644 > --- a/drivers/media/pci/ttpci/av7110_ir.c > +++ b/drivers/media/pci/ttpci/av7110_ir.c > @@ -201,6 +201,7 @@ static void input_register_keys(struct infrared *ir) > else if (ir->key_map[i] > KEY_RESERVED) > set_bit(ir->key_map[i], ir->input_dev->keybit); > } > + __clear_bit(KEY_RESERVED, ir->input_dev->keybit); Here we only setting bits for keycodes above KEY_RESERVED so we do not need to clear KEY_RESERVED bit. > > ir->input_dev->keycode = ir->key_map; > ir->input_dev->keycodesize = sizeof(ir->key_map[0]); > -- > 1.7.1 > Edited and applied, thank you. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a
Re: [PATCH] v4l2-dev: Add tracepoints for QBUF and DQBUF
On 11/23/2013 05:30 PM, Sylwester Nawrocki wrote: > Hi, > > On 11/23/2013 12:25 PM, Hans Verkuil wrote: >> Hi Wade, >> >> On 11/22/2013 08:48 PM, Wade Farnsworth wrote: >>> Add tracepoints to the QBUF and DQBUF ioctls to enable rudimentary >>> performance measurements using standard kernel tracers. >>> >>> Signed-off-by: Wade Farnsworth >>> --- >>> >>> This is the update to the RFC patch I posted a few weeks back. I've added >>> several bits of metadata to the tracepoint output per Mauro's suggestion. >> >> I don't like this. All v4l2 ioctls can already be traced by doing e.g. >> echo 1 (or echo 2)>/sys/class/video4linux/video0/debug. >> >> So this code basically duplicates that functionality. It would be nice to be >> able >> to tie in the existing tracing code (v4l2-ioctl.c) into tracepoints. > > I think it would be really nice to have this kind of support for standard > traces at the v4l2 subsystem. Presumably it could even gradually replace > the v4l2 custom debug infrastructure. > > If I understand things correctly, the current tracing/profiling > infrastructure > is much less invasive than inserting printks all over, which may cause > changes > in control flow. I doubt the system could be reliably profiled by > enabling all > those debug prints. > > So my vote would be to add support for standard tracers, like in other > subsystems in the kernel. The reason for the current system is to trace which ioctls are called in what order by a misbehaving application. It's very useful for that, especially when trying to debug user problems. I don't mind switching to tracepoints as long as this functionality is kept one way or another. 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] v4l2-dev: Add tracepoints for QBUF and DQBUF
Hi, On 11/23/2013 12:25 PM, Hans Verkuil wrote: Hi Wade, On 11/22/2013 08:48 PM, Wade Farnsworth wrote: Add tracepoints to the QBUF and DQBUF ioctls to enable rudimentary performance measurements using standard kernel tracers. Signed-off-by: Wade Farnsworth --- This is the update to the RFC patch I posted a few weeks back. I've added several bits of metadata to the tracepoint output per Mauro's suggestion. I don't like this. All v4l2 ioctls can already be traced by doing e.g. echo 1 (or echo 2)>/sys/class/video4linux/video0/debug. So this code basically duplicates that functionality. It would be nice to be able to tie in the existing tracing code (v4l2-ioctl.c) into tracepoints. I think it would be really nice to have this kind of support for standard traces at the v4l2 subsystem. Presumably it could even gradually replace the v4l2 custom debug infrastructure. If I understand things correctly, the current tracing/profiling infrastructure is much less invasive than inserting printks all over, which may cause changes in control flow. I doubt the system could be reliably profiled by enabling all those debug prints. So my vote would be to add support for standard tracers, like in other subsystems in the kernel. -- Regards, Sylwester -- 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: Properties, Configuration Storage, Selections and Matrices
Another update: While attempting to add fake 'shadow register' support to vivi I realized that the API to set up configuration stores didn't quite work out. Supporting shadow registers is one of the main goals of the configuration storage idea, so this should work smoothly. In the original proposal a configuration store is set by VIDIOC_S_EXT_CTRLS and any controls not in the control list will also be absent from the configuration store. That makes no sense for shadow registers: i.e. you will always have N sets of X registers and when switching from one set to another you switch them all. So the API has been changed a bit: all the driver-defined configuration stores are always there and you can enumerate, get and set all the controls in each store. If controls are implemented as shadow registers, then the driver will tell the framework which of the configuration stores is the current store (i.e. which store maps to the currently selected shadow register) and switching from one configuration store to another will just update the current store of a control to the new one. If controls are not implemented as a shadow register and you really just want to apply the new values from a configuration store, then that will actually involve copying the values from the selected store to the current control values. This approach made implementing fake shadow registers in vivi a trivial exercise and worked out much better. In addition, internal data structures became simpler as well (always a good sign). My next step will be to add selection support as properties and see if I can add per-frame crop/compose support to vivi. Regards, Hans On 11/19/2013 09:10 AM, Hans Verkuil wrote: > Just a quick update: > > I've been working on this for the past four days and I am now in the process > of testing this. Adding matrix support to the control framework was actually > the hardest part, particularly since I wanted it to be efficient. The code is > still a bit too complex for my liking, but once testing verifies that > everything > is working I plan to clean things up some more. > > I hope to be able to post a first version during or just after the weekend. > > Please review this RFC: other than some small changes this is pretty much how > it will turn out. > > Some of the changes are: > > - The property bit is 26, not 27. Bit 27 clashes with the PRIVATE_BASE define > so > it can't be used. > > - Any control/property type can be changed into a matrix by setting bit 15 in > the type. E.g. V4l2_PROP_TYPE_MATRIX | V4L2_CTRL_TYPE_INTEGER. When passing > the > data of a matrix the data is always preceded by a struct v4l2_rect which tells > the driver which subset of the matrix the application wants to set/get. > > - We definitely need a V4L2_CTRL_FLAG_CAN_STORE flag. Stores take memory and > you > only want to allocate that for those controls that actually need to be stored. > > - Regarding implementing stores for matrices: I store it in the internal > format, > but with additional information regarding the parts of the matrix that need to > be updated. Basically the best of both worlds. With some careful tweaking of > data structure this turned out to be fairly easy to do. This systems allows > you to update only parts of a matrix in a config store efficiently without > having to convert from one format to another. > > Regards, > > Hans > > On 11/15/2013 03:19 PM, Hans Verkuil wrote: >> Properties, Configuration Storage, Selections and Matrices >> == >> >> This proposal is an attempt to solve multiple issues with one single >> solution. >> >> There have been various discussions in the past regarding a property-based >> API. Basically similar to the way controls are handled but without having >> to deal with the GUI-related aspects of controls and with more flexibility >> with regards to supported types. >> >> Another discussion is about how to atomically set certain pipeline >> configurations, >> selections in particular. And for Android's camera3 library we also need to >> switch configuration on a per-buffer or per-frame basis, so we need some >> sort of configuration store. >> >> Also, I proposed an API extension for matrices: >> >> http://www.spinics.net/lists/linux-media/msg67326.html >> >> This would fit better in a property-based API. >> >> Recent discussions regarding multi-selection also ran into the same atomicity >> problems and unhappiness about the impact of the API changes necessary to >> support multi-selection. >> >> It is quite easy to extend the control framework to support pretty much all >> of the requirements stated above. It already satisfies the atomicity >> requirements >> (by far the hardest to implement), and extending it to support compound, >> array and matrix types isn't hard either. Neither is implementing a >> configuration >> store. >> >> One important observation regarding configuration stores: the in
[PATCHv3 dvb-apps] Silence last warnings in dvbscan.c
Hi Manu, Mike, This is the third version of this patch with the #if 0 stuff removed in order to silence the last warnings in dvb-apps. Mike, I like this better as well: after all, that's why you have a revision control system in order resurrect old deleted code should that be necessary. Regards, Hans Signed-off-by: Hans Verkuil diff -r 7161fa4a3e33 util/dvbscan/dvbscan.c --- a/util/dvbscan/dvbscan.cThu Nov 14 16:45:24 2013 -0500 +++ b/util/dvbscan/dvbscan.cSat Nov 23 14:45:24 2013 +0100 @@ -74,8 +74,8 @@ " Dual LO, H:5150MHz, V:5750MHz.\n" "* One of the sec definitions from the secfile if supplied\n" " -satpos Specify DISEQC switch position for DVB-S.\n" - " -inversion Specify inversion (default: auto).\n" - " -uk-ordering Use UK DVB-T channel ordering if present.\n" + " -inversion Specify inversion (default: auto) (note: this option is ignored).\n" + " -uk-ordering Use UK DVB-T channel ordering if present (note: this option is ignored).\n" " -timeoutSpecify filter timeout to use (standard specced values will be used by default)\n" " -filter Specify service filter, a comma seperated list of the following tokens:\n" "(If no filter is supplied, all services will be output)\n" @@ -83,10 +83,11 @@ "* radio - Output radio channels\n" "* other - Output other channels\n" "* encrypted - Output encrypted channels\n" - " -out raw |- Output in raw format to or stdout\n" + " -out raw |- Output in raw format to or stdout\n" " channels |- Output in channels.conf format to or stdout.\n" " vdr12 |- Output in vdr 1.2.x format to or stdout.\n" " vdr13 |- Output in vdr 1.3.x format to or stdout.\n" + " Note: this option is ignored.\n" " \n"; fprintf(stderr, "%s\n", _usage); @@ -121,12 +122,8 @@ char *secfile = NULL; char *secid = NULL; int satpos = 0; - enum dvbfe_spectral_inversion inversion = DVBFE_INVERSION_AUTO; int service_filter = -1; - int uk_ordering = 0; int timeout = 5; - int output_type = OUTPUT_TYPE_RAW; - char *output_filename = NULL; char *scan_filename = NULL; struct dvbsec_config sec; int valid_sec = 0; @@ -171,20 +168,10 @@ } else if (!strcmp(argv[argpos], "-inversion")) { if ((argc - argpos) < 2) usage(); - if (!strcmp(argv[argpos+1], "off")) { - inversion = DVBFE_INVERSION_OFF; - } else if (!strcmp(argv[argpos+1], "on")) { - inversion = DVBFE_INVERSION_ON; - } else if (!strcmp(argv[argpos+1], "auto")) { - inversion = DVBFE_INVERSION_AUTO; - } else { - usage(); - } argpos+=2; } else if (!strcmp(argv[argpos], "-uk-ordering")) { if ((argc - argpos) < 1) usage(); - uk_ordering = 1; } else if (!strcmp(argv[argpos], "-timeout")) { if ((argc - argpos) < 2) usage(); @@ -211,20 +198,6 @@ } else if (!strcmp(argv[argpos], "-out")) { if ((argc - argpos) < 3) usage(); - if (!strcmp(argv[argpos+1], "raw")) { - output_type = OUTPUT_TYPE_RAW; - } else if (!strcmp(argv[argpos+1], "channels")) { - output_type = OUTPUT_TYPE_CHANNELS; - } else if (!strcmp(argv[argpos+1], "vdr12")) { - output_type = OUTPUT_TYPE_VDR12; - } else if (!strcmp(argv[argpos+1], "vdr13")) { - output_type = OUTPUT_TYPE_VDR13; - } else { - usage(); - } - output_filename = argv[argpos+2]; - if (!strcmp(output_filename, "-")) - output_filename = NULL; } else { if ((argc - argpos) != 1) usage(); -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@
[PATCH] input:keyboard: "keycode & KEY_MAX" changes some keycode value.
From: Andrew Liu For exmaple, keycode: KEY_OK(0x160) is changed by "and" operation with KEY_MAX(0x2ff) to KEY_KPENTER(96). Signed-off-by: Andrew Liu --- drivers/input/keyboard/adp5588-keys.c |8 ++-- drivers/input/keyboard/adp5589-keys.c |8 ++-- drivers/input/keyboard/bf54x-keys.c |8 ++-- drivers/input/misc/pcf8574_keypad.c |6 +- drivers/media/pci/ttpci/av7110_ir.c |1 + 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/drivers/input/keyboard/adp5588-keys.c b/drivers/input/keyboard/adp5588-keys.c index dbd2047..1ce559e 100644 --- a/drivers/input/keyboard/adp5588-keys.c +++ b/drivers/input/keyboard/adp5588-keys.c @@ -535,8 +535,12 @@ static int adp5588_probe(struct i2c_client *client, if (pdata->repeat) __set_bit(EV_REP, input->evbit); - for (i = 0; i < input->keycodemax; i++) - __set_bit(kpad->keycode[i] & KEY_MAX, input->keybit); + for (i = 0; i < input->keycodemax; i++) { + if (kpad->keycode[i] > KEY_MAX) + kpad->keycode[i] = 0; + else if (kpad->keycode[i] > KEY_RESERVED) + __set_bit(kpad->keycode[i], input->keybit); + } __clear_bit(KEY_RESERVED, input->keybit); if (kpad->gpimapsize) diff --git a/drivers/input/keyboard/adp5589-keys.c b/drivers/input/keyboard/adp5589-keys.c index 67d12b3..22ca2a5 100644 --- a/drivers/input/keyboard/adp5589-keys.c +++ b/drivers/input/keyboard/adp5589-keys.c @@ -991,8 +991,12 @@ static int adp5589_probe(struct i2c_client *client, if (pdata->repeat) __set_bit(EV_REP, input->evbit); - for (i = 0; i < input->keycodemax; i++) - __set_bit(kpad->keycode[i] & KEY_MAX, input->keybit); + for (i = 0; i < input->keycodemax; i++) { + if (kpad->keycode[i] > KEY_MAX) + kpad->keycode[i] = 0; + else if (kpad->keycode[i] > KEY_RESERVED) + __set_bit(kpad->keycode[i], input->keybit); + } __clear_bit(KEY_RESERVED, input->keybit); if (kpad->gpimapsize) diff --git a/drivers/input/keyboard/bf54x-keys.c b/drivers/input/keyboard/bf54x-keys.c index fc88fb4..96f54e7 100644 --- a/drivers/input/keyboard/bf54x-keys.c +++ b/drivers/input/keyboard/bf54x-keys.c @@ -288,8 +288,12 @@ static int bfin_kpad_probe(struct platform_device *pdev) if (pdata->repeat) __set_bit(EV_REP, input->evbit); - for (i = 0; i < input->keycodemax; i++) - __set_bit(bf54x_kpad->keycode[i] & KEY_MAX, input->keybit); + for (i = 0; i < input->keycodemax; i++) { + if (bf54x_kpad->keycode[i] > KEY_MAX) + bf54x_kpad->keycode[i] = 0; + else if (bf54x_kpad->keycode[i] > KEY_RESERVED) + __set_bit(bf54x_kpad->keycode[i], input->keybit); + } __clear_bit(KEY_RESERVED, input->keybit); error = input_register_device(input); diff --git a/drivers/input/misc/pcf8574_keypad.c b/drivers/input/misc/pcf8574_keypad.c index e373929..48829f3 100644 --- a/drivers/input/misc/pcf8574_keypad.c +++ b/drivers/input/misc/pcf8574_keypad.c @@ -114,8 +114,12 @@ static int pcf8574_kp_probe(struct i2c_client *client, const struct i2c_device_i for (i = 0; i < ARRAY_SIZE(pcf8574_kp_btncode); i++) { lp->btncode[i] = pcf8574_kp_btncode[i]; - __set_bit(lp->btncode[i] & KEY_MAX, idev->keybit); + if (lp->btncode[i] > KEY_MAX) + lp->btncode[i] = 0; + else if (lp->btncode[i] > KEY_RESERVED) + __set_bit(lp->btncode[i], idev->keybit); } + __clear_bit(KEY_RESERVED, idev->keybit); sprintf(lp->name, DRV_NAME); sprintf(lp->phys, "kp_data/input0"); diff --git a/drivers/media/pci/ttpci/av7110_ir.c b/drivers/media/pci/ttpci/av7110_ir.c index 0e763a7..7fdac45 100644 --- a/drivers/media/pci/ttpci/av7110_ir.c +++ b/drivers/media/pci/ttpci/av7110_ir.c @@ -201,6 +201,7 @@ static void input_register_keys(struct infrared *ir) else if (ir->key_map[i] > KEY_RESERVED) set_bit(ir->key_map[i], ir->input_dev->keybit); } + __clear_bit(KEY_RESERVED, ir->input_dev->keybit); ir->input_dev->keycode = ir->key_map; ir->input_dev->keycodesize = sizeof(ir->key_map[0]); -- 1.7.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
Re: [PATCH] v4l2-dev: Add tracepoints for QBUF and DQBUF
Hi Wade, On 11/22/2013 08:48 PM, Wade Farnsworth wrote: > Add tracepoints to the QBUF and DQBUF ioctls to enable rudimentary > performance measurements using standard kernel tracers. > > Signed-off-by: Wade Farnsworth > --- > > This is the update to the RFC patch I posted a few weeks back. I've added > several bits of metadata to the tracepoint output per Mauro's suggestion. I don't like this. All v4l2 ioctls can already be traced by doing e.g. echo 1 (or echo 2) >/sys/class/video4linux/video0/debug. So this code basically duplicates that functionality. It would be nice to be able to tie in the existing tracing code (v4l2-ioctl.c) into tracepoints. Regards, Hans > > drivers/media/v4l2-core/v4l2-dev.c |9 ++ > include/trace/events/v4l2.h| 157 > > 2 files changed, 166 insertions(+), 0 deletions(-) > create mode 100644 include/trace/events/v4l2.h > > diff --git a/drivers/media/v4l2-core/v4l2-dev.c > b/drivers/media/v4l2-core/v4l2-dev.c > index b5c..1cc1749 100644 > --- a/drivers/media/v4l2-core/v4l2-dev.c > +++ b/drivers/media/v4l2-core/v4l2-dev.c > @@ -31,6 +31,10 @@ > #include > #include > > + > +#define CREATE_TRACE_POINTS > +#include > + > #define VIDEO_NUM_DEVICES256 > #define VIDEO_NAME "video4linux" > > @@ -391,6 +395,11 @@ static long v4l2_ioctl(struct file *filp, unsigned int > cmd, unsigned long arg) > } else > ret = -ENOTTY; > > + if (cmd == VIDIOC_DQBUF) > + trace_v4l2_dqbuf(vdev->minor, (struct v4l2_buffer *)arg); > + else if (cmd == VIDIOC_QBUF) > + trace_v4l2_qbuf(vdev->minor, (struct v4l2_buffer *)arg); > + > return ret; > } > > diff --git a/include/trace/events/v4l2.h b/include/trace/events/v4l2.h > new file mode 100644 > index 000..0b7d6cb > --- /dev/null > +++ b/include/trace/events/v4l2.h > @@ -0,0 +1,157 @@ > +#undef TRACE_SYSTEM > +#define TRACE_SYSTEM v4l2 > + > +#if !defined(_TRACE_V4L2_H) || defined(TRACE_HEADER_MULTI_READ) > +#define _TRACE_V4L2_H > + > +#include > + > +#define show_type(type) >\ > + __print_symbolic(type, \ > + { V4L2_BUF_TYPE_VIDEO_CAPTURE,"VIDEO_CAPTURE" }, \ > + { V4L2_BUF_TYPE_VIDEO_OUTPUT, "VIDEO_OUTPUT" },\ > + { V4L2_BUF_TYPE_VIDEO_OVERLAY,"VIDEO_OVERLAY" }, \ > + { V4L2_BUF_TYPE_VBI_CAPTURE, "VBI_CAPTURE" }, \ > + { V4L2_BUF_TYPE_VBI_OUTPUT, "VBI_OUTPUT" }, \ > + { V4L2_BUF_TYPE_SLICED_VBI_CAPTURE, "SLICED_VBI_CAPTURE" }, \ > + { V4L2_BUF_TYPE_SLICED_VBI_OUTPUT,"SLICED_VBI_OUTPUT" }, \ > + { V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY, "VIDEO_OUTPUT_OVERLAY" },\ > + { V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, "VIDEO_CAPTURE_MPLANE" },\ > + { V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, "VIDEO_OUTPUT_MPLANE" }, \ > + { V4L2_BUF_TYPE_PRIVATE, "PRIVATE" }) > + > +#define show_field(field)\ > + __print_symbolic(field, \ > + { V4L2_FIELD_ANY, "ANY" },\ > + { V4L2_FIELD_NONE, "NONE" }, \ > + { V4L2_FIELD_TOP, "TOP" },\ > + { V4L2_FIELD_BOTTOM,"BOTTOM" }, \ > + { V4L2_FIELD_INTERLACED,"INTERLACED" }, \ > + { V4L2_FIELD_SEQ_TB,"SEQ_TB" }, \ > + { V4L2_FIELD_SEQ_BT,"SEQ_BT" }, \ > + { V4L2_FIELD_ALTERNATE, "ALTERNATE" }, \ > + { V4L2_FIELD_INTERLACED_TB, "INTERLACED_TB" }, \ > + { V4L2_FIELD_INTERLACED_BT, "INTERLACED_BT" }) > + > +#define show_timecode_type(type) \ > + __print_symbolic(type, \ > + { V4L2_TC_TYPE_24FPS, "24FPS" }, \ > + { V4L2_TC_TYPE_25FPS, "25FPS" }, \ > + { V4L2_TC_TYPE_30FPS, "30FPS" }, \ > + { V4L2_TC_TYPE_50FPS, "50FPS" }, \ > + { V4L2_TC_TYPE_60FPS, "60FPS" }) > + > +#define show_flags(flags) \ > + __print_flags(flags, "|", \ > + { V4L2_BUF_FLAG_MAPPED, "MAPPED" }, \ > + { V4L2_BUF_FLAG_QUEUED, "QUEUED" }, \ > + { V4L2_BUF_FLAG_DONE,"DONE" },\ > + { V4L2_BUF_FLAG_KEYFRAME,
Re: [PATCHv2 dvb-apps] Silence last warnings in dvbscan.c
On Sat, Nov 23, 2013 at 4:25 PM, Hans Verkuil wrote: > Hi Mike, > > This is the revised version of the patch I mailed earlier. As you requested > I now use #if 0 instead of commenting out line to silence the warnings. > > Regards, > > Hans > > Signed-off-by: Hans Verkuil > > diff -r 7161fa4a3e33 util/dvbscan/dvbscan.c > --- a/util/dvbscan/dvbscan.cThu Nov 14 16:45:24 2013 -0500 > +++ b/util/dvbscan/dvbscan.cSat Nov 23 11:54:53 2013 +0100 > @@ -74,8 +74,8 @@ > " Dual LO, > H:5150MHz, V:5750MHz.\n" > "* One of the sec definitions from > the secfile if supplied\n" > " -satpos Specify DISEQC switch position for > DVB-S.\n" > - " -inversion Specify inversion (default: > auto).\n" > - " -uk-ordering Use UK DVB-T channel ordering if > present.\n" > + " -inversion Specify inversion (default: auto) > (note: this option is ignored).\n" > + " -uk-ordering Use UK DVB-T channel ordering if > present (note: this option is ignored).\n" > " -timeoutSpecify filter timeout to use > (standard specced values will be used by default)\n" > " -filter Specify service filter, a comma > seperated list of the following tokens:\n" > "(If no filter is supplied, all > services will be output)\n" > @@ -83,10 +83,11 @@ > "* radio - Output radio channels\n" > "* other - Output other channels\n" > "* encrypted - Output encrypted > channels\n" > - " -out raw |- Output in raw format to > or stdout\n" > + " -out raw |- Output in raw format to or > stdout\n" > " channels |- Output in channels.conf format > to or stdout.\n" > " vdr12 |- Output in vdr 1.2.x format to > or stdout.\n" > " vdr13 |- Output in vdr 1.3.x format to > or stdout.\n" > + " Note: this option is ignored.\n" > " \n"; > fprintf(stderr, "%s\n", _usage); > > @@ -121,15 +122,17 @@ > char *secfile = NULL; > char *secid = NULL; > int satpos = 0; > - enum dvbfe_spectral_inversion inversion = DVBFE_INVERSION_AUTO; > int service_filter = -1; > - int uk_ordering = 0; > int timeout = 5; > - int output_type = OUTPUT_TYPE_RAW; > - char *output_filename = NULL; > char *scan_filename = NULL; > struct dvbsec_config sec; > int valid_sec = 0; > +#if 0 > + char *output_filename = NULL; > + enum dvbfe_spectral_inversion inversion = DVBFE_INVERSION_AUTO; > + int output_type = OUTPUT_TYPE_RAW; > + int uk_ordering = 0; > +#endif > > while(argpos != argc) { > if (!strcmp(argv[argpos], "-h")) { > @@ -171,6 +174,7 @@ > } else if (!strcmp(argv[argpos], "-inversion")) { > if ((argc - argpos) < 2) > usage(); > +#if 0 > if (!strcmp(argv[argpos+1], "off")) { > inversion = DVBFE_INVERSION_OFF; > } else if (!strcmp(argv[argpos+1], "on")) { > @@ -180,11 +184,14 @@ > } else { > usage(); > } > +#endif > argpos+=2; > } else if (!strcmp(argv[argpos], "-uk-ordering")) { > if ((argc - argpos) < 1) > usage(); > +#if 0 > uk_ordering = 1; > +#endif > } else if (!strcmp(argv[argpos], "-timeout")) { > if ((argc - argpos) < 2) > usage(); > @@ -211,6 +218,7 @@ > } else if (!strcmp(argv[argpos], "-out")) { > if ((argc - argpos) < 3) > usage(); > +#if 0 > if (!strcmp(argv[argpos+1], "raw")) { > output_type = OUTPUT_TYPE_RAW; > } else if (!strcmp(argv[argpos+1], "channels")) { > @@ -225,6 +233,7 @@ > output_filename = argv[argpos+2]; > if (!strcmp(output_filename, "-")) > output_filename = NULL; > +#endif > } else { > if ((argc - argpos) != 1) > usage(); > -- Sorry, I missed you earlier patch. Please remove the obsolete flags and the #if 0. Those are pointless. Regards, Manu -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vge
[PATCHv2 dvb-apps] Silence last warnings in dvbscan.c
Hi Mike, This is the revised version of the patch I mailed earlier. As you requested I now use #if 0 instead of commenting out line to silence the warnings. Regards, Hans Signed-off-by: Hans Verkuil diff -r 7161fa4a3e33 util/dvbscan/dvbscan.c --- a/util/dvbscan/dvbscan.cThu Nov 14 16:45:24 2013 -0500 +++ b/util/dvbscan/dvbscan.cSat Nov 23 11:54:53 2013 +0100 @@ -74,8 +74,8 @@ " Dual LO, H:5150MHz, V:5750MHz.\n" "* One of the sec definitions from the secfile if supplied\n" " -satpos Specify DISEQC switch position for DVB-S.\n" - " -inversion Specify inversion (default: auto).\n" - " -uk-ordering Use UK DVB-T channel ordering if present.\n" + " -inversion Specify inversion (default: auto) (note: this option is ignored).\n" + " -uk-ordering Use UK DVB-T channel ordering if present (note: this option is ignored).\n" " -timeoutSpecify filter timeout to use (standard specced values will be used by default)\n" " -filter Specify service filter, a comma seperated list of the following tokens:\n" "(If no filter is supplied, all services will be output)\n" @@ -83,10 +83,11 @@ "* radio - Output radio channels\n" "* other - Output other channels\n" "* encrypted - Output encrypted channels\n" - " -out raw |- Output in raw format to or stdout\n" + " -out raw |- Output in raw format to or stdout\n" " channels |- Output in channels.conf format to or stdout.\n" " vdr12 |- Output in vdr 1.2.x format to or stdout.\n" " vdr13 |- Output in vdr 1.3.x format to or stdout.\n" + " Note: this option is ignored.\n" " \n"; fprintf(stderr, "%s\n", _usage); @@ -121,15 +122,17 @@ char *secfile = NULL; char *secid = NULL; int satpos = 0; - enum dvbfe_spectral_inversion inversion = DVBFE_INVERSION_AUTO; int service_filter = -1; - int uk_ordering = 0; int timeout = 5; - int output_type = OUTPUT_TYPE_RAW; - char *output_filename = NULL; char *scan_filename = NULL; struct dvbsec_config sec; int valid_sec = 0; +#if 0 + char *output_filename = NULL; + enum dvbfe_spectral_inversion inversion = DVBFE_INVERSION_AUTO; + int output_type = OUTPUT_TYPE_RAW; + int uk_ordering = 0; +#endif while(argpos != argc) { if (!strcmp(argv[argpos], "-h")) { @@ -171,6 +174,7 @@ } else if (!strcmp(argv[argpos], "-inversion")) { if ((argc - argpos) < 2) usage(); +#if 0 if (!strcmp(argv[argpos+1], "off")) { inversion = DVBFE_INVERSION_OFF; } else if (!strcmp(argv[argpos+1], "on")) { @@ -180,11 +184,14 @@ } else { usage(); } +#endif argpos+=2; } else if (!strcmp(argv[argpos], "-uk-ordering")) { if ((argc - argpos) < 1) usage(); +#if 0 uk_ordering = 1; +#endif } else if (!strcmp(argv[argpos], "-timeout")) { if ((argc - argpos) < 2) usage(); @@ -211,6 +218,7 @@ } else if (!strcmp(argv[argpos], "-out")) { if ((argc - argpos) < 3) usage(); +#if 0 if (!strcmp(argv[argpos+1], "raw")) { output_type = OUTPUT_TYPE_RAW; } else if (!strcmp(argv[argpos+1], "channels")) { @@ -225,6 +233,7 @@ output_filename = argv[argpos+2]; if (!strcmp(output_filename, "-")) output_filename = NULL; +#endif } else { if ((argc - argpos) != 1) usage(); -- 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
PRIVATE MESSAGE
-- This is to inform you that an inheritance was bequeathed in your favour. Letters were posted to you to this regards, but returned undelivered. Kindly contact me once you recieve this email for more information. Sincerely Barr Mark Freedman -- 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