cron job: media_tree daily build: ABI WARNING
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: Sat Feb 28 04:00:17 CET 2015 git branch: test git hash: a3dfc6d925ca1bbd1a228253acb93f08657bad25 gcc version:i686-linux-gcc (GCC) 4.9.1 sparse version: v0.5.0-41-g6c2d743 smatch version: 0.4.1-3153-g7d56ab3 host hardware: x86_64 host os:3.18.0-5.slh.1-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: WARNINGS linux-git-m32r: OK linux-git-mips: WARNINGS linux-git-powerpc64: OK linux-git-sh: OK linux-git-x86_64: WARNINGS linux-2.6.32.27-i686: WARNINGS linux-2.6.33.7-i686: WARNINGS linux-2.6.34.7-i686: WARNINGS linux-2.6.35.9-i686: WARNINGS linux-2.6.36.4-i686: WARNINGS linux-2.6.37.6-i686: WARNINGS linux-2.6.38.8-i686: WARNINGS linux-2.6.39.4-i686: WARNINGS linux-3.0.60-i686: WARNINGS linux-3.1.10-i686: WARNINGS linux-3.2.37-i686: WARNINGS linux-3.3.8-i686: WARNINGS linux-3.4.27-i686: WARNINGS linux-3.5.7-i686: WARNINGS linux-3.6.11-i686: WARNINGS linux-3.7.4-i686: WARNINGS linux-3.8-i686: WARNINGS linux-3.9.2-i686: WARNINGS linux-3.10.1-i686: WARNINGS linux-3.11.1-i686: WARNINGS linux-3.12.23-i686: WARNINGS linux-3.13.11-i686: WARNINGS linux-3.14.9-i686: WARNINGS linux-3.15.2-i686: WARNINGS linux-3.16.7-i686: WARNINGS linux-3.17.8-i686: WARNINGS linux-3.18.7-i686: WARNINGS linux-3.19-i686: WARNINGS linux-4.0-rc1-i686: WARNINGS linux-2.6.32.27-x86_64: WARNINGS linux-2.6.33.7-x86_64: WARNINGS linux-2.6.34.7-x86_64: WARNINGS linux-2.6.35.9-x86_64: WARNINGS linux-2.6.36.4-x86_64: WARNINGS linux-2.6.37.6-x86_64: WARNINGS linux-2.6.38.8-x86_64: WARNINGS linux-2.6.39.4-x86_64: WARNINGS linux-3.0.60-x86_64: WARNINGS linux-3.1.10-x86_64: WARNINGS linux-3.2.37-x86_64: WARNINGS linux-3.3.8-x86_64: WARNINGS linux-3.4.27-x86_64: WARNINGS linux-3.5.7-x86_64: WARNINGS linux-3.6.11-x86_64: WARNINGS linux-3.7.4-x86_64: WARNINGS linux-3.8-x86_64: WARNINGS linux-3.9.2-x86_64: WARNINGS linux-3.10.1-x86_64: WARNINGS linux-3.11.1-x86_64: WARNINGS linux-3.12.23-x86_64: WARNINGS linux-3.13.11-x86_64: WARNINGS linux-3.14.9-x86_64: WARNINGS linux-3.15.2-x86_64: WARNINGS linux-3.16.7-x86_64: WARNINGS linux-3.17.8-x86_64: WARNINGS linux-3.18.7-x86_64: WARNINGS linux-3.19-x86_64: WARNINGS linux-4.0-rc1-x86_64: WARNINGS apps: OK spec-git: OK ABI WARNING: change for arm-at91 ABI WARNING: change for arm-davinci ABI WARNING: change for arm-exynos ABI WARNING: change for arm-mx ABI WARNING: change for arm-omap ABI WARNING: change for arm-omap1 ABI WARNING: change for arm-pxa ABI WARNING: change for blackfin ABI WARNING: change for i686 ABI WARNING: change for m32r ABI WARNING: change for mips ABI WARNING: change for powerpc64 ABI WARNING: change for sh ABI WARNING: change for x86_64 sparse: WARNINGS smatch: ERRORS Detailed results are available here: http://www.xs4all.nl/~hverkuil/logs/Saturday.log Full logs are available here: http://www.xs4all.nl/~hverkuil/logs/Saturday.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
[PATCH] media: i2c: mt9p031: add support for asynchronous probing
From: "Lad, Prabhakar" Both synchronous and asynchronous mt9p031 subdevice probing is supported by this patch. Signed-off-by: Lad, Prabhakar --- drivers/media/i2c/mt9p031.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/mt9p031.c b/drivers/media/i2c/mt9p031.c index af5a09d..9df4e2f 100644 --- a/drivers/media/i2c/mt9p031.c +++ b/drivers/media/i2c/mt9p031.c @@ -28,6 +28,7 @@ #include #include +#include #include #include #include @@ -1145,6 +1146,10 @@ static int mt9p031_probe(struct i2c_client *client, } ret = mt9p031_clk_setup(mt9p031); + if (ret) + goto done; + + ret = v4l2_async_register_subdev(&mt9p031->subdev); done: if (ret < 0) { @@ -1162,7 +1167,7 @@ static int mt9p031_remove(struct i2c_client *client) struct mt9p031 *mt9p031 = to_mt9p031(subdev); v4l2_ctrl_handler_free(&mt9p031->ctrls); - v4l2_device_unregister_subdev(subdev); + v4l2_async_unregister_subdev(subdev); media_entity_cleanup(&subdev->entity); mutex_destroy(&mt9p031->power_lock); -- 1.9.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: [PATCHv2] [media] saa7164: use an MSI interrupt when available
On Thu, Feb 26, 2015 at 6:29 PM, Brendan McGrath wrote: > From: Brendan McGrath > [media] saa7164: use an MSI interrupt when available > > Enhances driver to use an MSI interrupt when available. > > Adds the module option 'enable_msi' (type bool) which by default is enabled. > Can be set to 'N' to disable. > > Fixes (or can reduce the occurrence of) a crash which is most commonly > reported when multiple saa7164 chips are in use. > > Signed-off-by: Brendan McGrath Thank you Brendan. Reviewed-by: Steven Toth -- 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: 0.led_name 2.other.led.name in /sysfs Re: [PATCH/RFC v11 01/20] leds: flash: document sysfs interface
Hi Sakari, On 02/21/2015 11:57 AM, Sakari Ailus wrote: Hi Pavel and Greg, On Fri, Feb 20, 2015 at 09:57:38PM +0100, Pavel Machek wrote: On Fri 2015-02-20 07:36:16, Greg KH wrote: On Fri, Feb 20, 2015 at 08:56:11AM +0100, Jacek Anaszewski wrote: On 02/19/2015 10:40 PM, Greg KH wrote: On Thu, Feb 19, 2015 at 11:02:04AM +0200, Sakari Ailus wrote: On Wed, Feb 18, 2015 at 11:47:47PM +0100, Pavel Machek wrote: On Wed 2015-02-18 17:20:22, Jacek Anaszewski wrote: Add a documentation of LED Flash class specific sysfs attributes. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Bryan Wu Cc: Richard Purdie NAK-ed-by: Pavel Machek +What: /sys/class/leds//available_sync_leds +Date: February 2015 +KernelVersion: 3.20 +Contact: Jacek Anaszewski +Description: read/write + Space separated list of LEDs available for flash strobe + synchronization, displayed in the format: + + led1_id.led1_name led2_id.led2_name led3_id.led3_name etc. Multiple values per file, with all the problems we had in /proc. I assume led_id is an integer? What prevents space or dot in led name? Very good point. How about using a newline instead? That'd be a little bit easier to parse, too. No, please make it one value per-file, which is what sysfs requires. The purpose of this attribute is only to provide an information about the range of valid identifiers that can be written to the flash_sync_strobe attribute. Wouldn't splitting this to many attributes be an unnecessary inflation of sysfs files? Ok a list of allowed values to write is acceptable, as long as it is not hard to parse and always is space separated. Well, this one is list of LED numbers and LED names. It'd be nice if these names would match the V4L2 sub-device names. We don't From the discussion on IRC it turned out that one of components of the V4L2 sub-device name will be a media controller identifier. This implies that if support for V4L2 Flash devices will be turned off in the kernel config the LED name will have to differ from the case when the support is on. I think that this is undesired. have any rules for them other than they must be unique, and there's the established practice that an I2C address follows the component name. We're about to discuss the matter on Monday on #v4l (11:00 Finnish time), but I don't think we can generally guarantee any of the names won't have spaces. Separate files, then? I tried to split this to separate files but it turned out to be awkward. Since the number of LEDs to synchronize can vary from device to device, the number of the related sysfs attributes cannot be fixed. As far as I know allocating the sysfs attributes dynamically is unsafe, and thus the maximum allowed number of synchronized LEDs would have to be agreed on for the whole led-class-flash and the relevant number of similar struct attribute instances and related callbacks would have to be created statically for every LED Flash class device, no matter if a device would need them. Of course the relevant sysfs group could be initialized only with the needed number of sync leds attributes, but still this is less than optimal design. It looks like this interface indeed doesn't fit for sysfs. I am leaning towards removing the support for synchronized flash LEDs from the LED subsystem entirely and leave it only to V4L2. -- Best Regards, Jacek Anaszewski -- 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] [media] v4l2: remove unused including
From: Wei Yongjun Remove including that don't need it. Signed-off-by: Wei Yongjun --- drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c index 536210b..6489db8 100644 --- a/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c +++ b/drivers/media/usb/pvrusb2/pvrusb2-v4l2.c @@ -21,7 +21,6 @@ #include #include -#include #include "pvrusb2-context.h" #include "pvrusb2-hdw.h" #include "pvrusb2.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
Re: [PATCH/RFC v4 11/11] Add a libv4l plugin for Exynos4 camera
Hi Sakari, On 11/27/2014 09:41 AM, Sakari Ailus wrote: Hi Jacek, On Fri, Nov 21, 2014 at 05:14:40PM +0100, Jacek Anaszewski wrote: The plugin provides support for the media device on Exynos4 SoC. It performs single plane <-> multi plane API conversion, video pipeline linking and takes care of automatic data format negotiation for the whole pipeline, after intercepting VIDIOC_S_FMT or VIDIOC_TRY_FMT ioctls. [...] + +static void *plugin_init(int fd) +{ + struct v4l2_capability cap; + struct exynos4_camera_plugin *plugin = NULL; + const char *sink_entity_name; + struct media_device *media; + struct media_entity *sink_entity; + char video_devname[32]; + int ret; [...] + ret = SYS_IOCTL(fd, VIDIOC_QUERYCAP, &cap); + if (ret < 0) { + V4L2_EXYNOS4_ERR("Failed to query video capabilities."); + return NULL; + } + + /* Check if this is Exynos4 media device */ + if (strcmp((char *) cap.driver, EXYNOS4_FIMC_DRV) && + strcmp((char *) cap.driver, EXYNOS4_FIMC_LITE_DRV) && + strcmp((char *) cap.driver, EXYNOS4_FIMC_IS_ISP_DRV)) { + V4L2_EXYNOS4_ERR("Not an Exynos4 media device."); + return NULL; + } + + /* Obtain the node name of the opened device */ + ret = media_get_devname_by_fd(fd, video_devname); + if (ret < 0) { + V4L2_EXYNOS4_ERR("Failed to get video device node name."); + return NULL; + } + + /* +* Create the representation of a media device +* containing the opened video device. +*/ + media = media_device_new_by_entity_devname(video_devname); + if (media == NULL) { + V4L2_EXYNOS4_ERR("Failed to create media device."); + return NULL; + } + +#ifdef DEBUG + media_debug_set_handler(media, (void (*)(void *, ...))fprintf, stdout); +#endif + + /* Get the entity representing the opened video device node */ + sink_entity = media_get_entity_by_devname(media, video_devname, strlen(video_devname)); Could you use the fd directly instead of translating that to the device node? fstat(2) gives you directly inode / device major + minor which you can then use to find the MC device. After trying to switch it as you requested I decided to stay by current implementation to avoid the need for translating fd to device node twice. If we changed: media_device_new_by_entity_devname -> media_device_new_by_entity_fd then media_device_new_by_entity_fd would have to call fstat to find out the entity node name. Nonetheless we would have to call fstat one more time to obtain sink_entity to be passed below to media_entity_get_name. Therefore, it is better to obtain devname once and use it for both creating media_device and obtaining sink_entity node name. + if (sink_entity == NULL) { + V4L2_EXYNOS4_ERR("Failed to get sinkd entity name."); + goto err_get_sink_entity; + } + + /* The last entity in the pipeline represents video device node */ + media_entity_set_fd(sink_entity, fd); + + sink_entity_name = media_entity_get_name(sink_entity); + + /* Check if video entity is of capture type, not m2m */ + if (!__capture_entity(sink_entity_name)) { + V4L2_EXYNOS4_ERR("Device not of capture type."); + goto err_get_sink_entity; + } -- Best Regards, Jacek Anaszewski -- 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 post, just ignore
-- 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 10/12] [media] coda: fail to start streaming if userspace set invalid formats
Hi Philipp, 2015-02-23 16:20 GMT+01:00 Philipp Zabel : > Signed-off-by: Philipp Zabel > --- > drivers/media/platform/coda/coda-common.c | 13 - > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/coda/coda-common.c > b/drivers/media/platform/coda/coda-common.c > index b42ccfc..4441179 100644 > --- a/drivers/media/platform/coda/coda-common.c > +++ b/drivers/media/platform/coda/coda-common.c > @@ -1282,12 +1282,23 @@ static int coda_start_streaming(struct vb2_queue *q, > unsigned int count) > if (!(ctx->streamon_out & ctx->streamon_cap)) > return 0; > > + q_data_dst = get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE); > + if ((q_data_src->width != q_data_dst->width && > +round_up(q_data_src->width, 16) != q_data_dst->width) || > + (q_data_src->height != q_data_dst->height && > +round_up(q_data_src->height, 16) != q_data_dst->height)) { > + v4l2_err(v4l2_dev, "can't convert %dx%d to %dx%d\n", > +q_data_src->width, q_data_src->height, > +q_data_dst->width, q_data_dst->height); > + ret = -EINVAL; > + goto err; > + } > + Shouldn't the driver check on queues related to encoding or decoding only ? We don't need to set correct width/height from userspace if we are encoding, or it should be done by s_fmt itself. Thanks, JM -- 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] dvb: fix compilation errors/warnings ifndef CONFIG_MEDIA_CONTROLLER_DVB
This patches fixes the following compilation warnings and errors if CONFIG_MEDIA_CONTROLLER_DVB is not defined: drivers/media/common/siano/smsdvb-main.c: In function ‘smsdvb_media_device_unregister’: drivers/media/common/siano/smsdvb-main.c:614:27: warning: unused variable ‘coredev’ [-Wunused-variable] struct smscore_device_t *coredev = client->coredev; ^ drivers/media/common/siano/smsdvb-main.c: In function ‘smsdvb_hotplug’: drivers/media/common/siano/smsdvb-main.c:1188:32: error: ‘struct smscore_device_t’ has no member named ‘media_dev’ dvb_create_media_graph(coredev->media_dev); ^ drivers/media/usb/dvb-usb/dvb-usb-dvb.c: In function ‘dvb_usb_adapter_frontend_init’: drivers/media/usb/dvb-usb/dvb-usb-dvb.c:323:39: error: ‘struct dvb_adapter’ has no member named ‘mdev’ dvb_create_media_graph(adap->dvb_adap.mdev); ^ drivers/media/usb/dvb-usb/dvb-usb-dvb.c: At top level: drivers/media/usb/dvb-usb/dvb-usb-dvb.c:97:13: warning: ‘dvb_usb_media_device_register’ defined but not used [-Wunused-function] static void dvb_usb_media_device_register(struct dvb_usb_adapter *adap) ^ drivers/media/usb/dvb-usb-v2/dvb_usb_core.c: In function ‘dvb_usbv2_adapter_dvb_exit’: drivers/media/usb/dvb-usb-v2/dvb_usb_core.c:531:25: warning: unused variable ‘d’ [-Wunused-variable] struct dvb_usb_device *d = adap_to_d(adap); ^ drivers/media/usb/dvb-usb-v2/dvb_usb_core.c: In function ‘dvb_usbv2_adapter_frontend_init’: drivers/media/usb/dvb-usb-v2/dvb_usb_core.c:705:39: error: ‘struct dvb_adapter’ has no member named ‘mdev’ dvb_create_media_graph(adap->dvb_adap.mdev); ^ drivers/media/usb/dvb-usb-v2/dvb_usb_core.c: At top level: drivers/media/usb/dvb-usb-v2/dvb_usb_core.c:403:13: warning: ‘dvb_usbv2_media_device_register’ defined but not used [-Wunused-function] static void dvb_usbv2_media_device_register(struct dvb_usb_adapter *adap) ^ Signed-off-by: Hans Verkuil diff --git a/drivers/media/common/siano/smsdvb-main.c b/drivers/media/common/siano/smsdvb-main.c index dd3c151..28f764d 100644 --- a/drivers/media/common/siano/smsdvb-main.c +++ b/drivers/media/common/siano/smsdvb-main.c @@ -611,9 +611,9 @@ static int smsdvb_onresponse(void *context, struct smscore_buffer_t *cb) static void smsdvb_media_device_unregister(struct smsdvb_client_t *client) { +#ifdef CONFIG_MEDIA_CONTROLLER_DVB struct smscore_device_t *coredev = client->coredev; -#ifdef CONFIG_MEDIA_CONTROLLER_DVB if (!coredev->media_dev) return; media_device_unregister(coredev->media_dev); @@ -1185,7 +1185,9 @@ static int smsdvb_hotplug(struct smscore_device_t *coredev, if (smsdvb_debugfs_create(client) < 0) pr_info("failed to create debugfs node\n"); +#if defined(CONFIG_MEDIA_CONTROLLER_DVB) dvb_create_media_graph(coredev->media_dev); +#endif pr_info("DVB interface registered.\n"); return 0; diff --git a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c index 0666c8f..caf7fd9 100644 --- a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c +++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c @@ -400,9 +400,9 @@ skip_feed_stop: return ret; } +#ifdef CONFIG_MEDIA_CONTROLLER_DVB static void dvb_usbv2_media_device_register(struct dvb_usb_adapter *adap) { -#ifdef CONFIG_MEDIA_CONTROLLER_DVB struct media_device *mdev; struct dvb_usb_device *d = adap_to_d(adap); struct usb_device *udev = d->udev; @@ -433,8 +433,8 @@ static void dvb_usbv2_media_device_register(struct dvb_usb_adapter *adap) dev_info(&d->udev->dev, "media controller created\n"); -#endif } +#endif static void dvb_usbv2_media_device_unregister(struct dvb_usb_adapter *adap) { @@ -528,8 +528,6 @@ err_dvb_register_adapter: static int dvb_usbv2_adapter_dvb_exit(struct dvb_usb_adapter *adap) { - struct dvb_usb_device *d = adap_to_d(adap); - dev_dbg(&adap_to_d(adap)->udev->dev, "%s: adap=%d\n", __func__, adap->id); @@ -702,7 +700,9 @@ static int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap) } } +#ifdef CONFIG_MEDIA_CONTROLLER_DVB dvb_create_media_graph(adap->dvb_adap.mdev); +#endif return 0; diff --git a/drivers/media/usb/dvb-usb/dvb-usb-dvb.c b/drivers/media/usb/dvb-usb/dvb-usb-dvb.c index a7bc453..6020f46 100644 --- a/drivers/media/usb/dvb-usb/dvb-usb-dvb.c +++ b/drivers/media/usb/dvb-usb/dvb-usb-dvb.c @@ -320,7 +320,9 @@ int dvb_usb_adapter_frontend_init(struct dvb_usb_adapter *adap) adap->num_frontends_initialized++; } +#ifdef CONFIG_MEDIA_CONTROLLER_DVB dvb_create_media_graph(adap->dvb_adap.mdev); +#endif return 0; } -- To unsubscribe from this list: send the line "unsubscribe linux-