RE: [PATCH V3 06/15] [media] marvell-ccic: add new formats support for marvell-ccic driver

2013-01-09 Thread Libin Yang
Hi Guennadi,

Below is the update for widthy, widthuv and imgsz_w setting.

>-Original Message-
>From: Guennadi Liakhovetski [mailto:g.liakhovet...@gmx.de]
>Sent: Wednesday, January 02, 2013 12:56 AM
>To: Albert Wang
>Cc: cor...@lwn.net; linux-media@vger.kernel.org; Libin Yang
>Subject: Re: [PATCH V3 06/15] [media] marvell-ccic: add new formats support for
>marvell-ccic driver
>
>On Sat, 15 Dec 2012, Albert Wang wrote:
>
>> From: Libin Yang 
>>
>> This patch adds the new formats support for marvell-ccic.
>>
>> Signed-off-by: Albert Wang 
>> Signed-off-by: Libin Yang 
>> ---
>>  drivers/media/platform/marvell-ccic/mcam-core.c |  175 
>> ++-
>>  drivers/media/platform/marvell-ccic/mcam-core.h |6 +
>>  2 files changed, 149 insertions(+), 32 deletions(-)
>>
>> diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c
>b/drivers/media/platform/marvell-ccic/mcam-core.c
>> index 3cc1d0c..a679917 100755
>> --- a/drivers/media/platform/marvell-ccic/mcam-core.c
>> +++ b/drivers/media/platform/marvell-ccic/mcam-core.c
>
>[snip]
>
>> @@ -658,49 +708,85 @@ static inline void mcam_sg_restart(struct mcam_camera 
>> *cam)
>>   */
>>  static void mcam_ctlr_image(struct mcam_camera *cam)
>>  {
>> -int imgsz;
>>  struct v4l2_pix_format *fmt = &cam->pix_format;
>> +u32 widthy = 0, widthuv = 0, imgsz_h, imgsz_w;
>> +
>> +cam_dbg(cam, "camera: bytesperline = %d; height = %d\n",
>> +fmt->bytesperline, fmt->sizeimage / fmt->bytesperline);
>> +imgsz_h = (fmt->height << IMGSZ_V_SHIFT) & IMGSZ_V_MASK;
>> +imgsz_w = fmt->bytesperline & IMGSZ_H_MASK;
>> +
>> +switch (fmt->pixelformat) {
>> +case V4L2_PIX_FMT_YUYV:
>> +case V4L2_PIX_FMT_UYVY:
>> +widthy = fmt->width * 2;
>> +widthuv = 0;
>> +break;
>> +case V4L2_PIX_FMT_JPEG:
>> +imgsz_h = (fmt->sizeimage / fmt->bytesperline) << IMGSZ_V_SHIFT;
>> +widthy = fmt->bytesperline;
>> +widthuv = 0;
>> +break;
>> +case V4L2_PIX_FMT_YUV422P:
>> +case V4L2_PIX_FMT_YUV420:
>> +case V4L2_PIX_FMT_YVU420:
>> +imgsz_w = (fmt->bytesperline * 4 / 3) & IMGSZ_H_MASK;
>> +widthy = fmt->width;
>> +widthuv = fmt->width / 2;
>
>I might be wrong, but the above doesn't look right to me. Firstly, YUV422P
>is a 4:2:2 format, whereas YUV420 and YVU420 are 4:2:0 formats, so, I
>would expect calculations for them to differ. Besides, bytesperline * 4 /
>3 doesn't look right for any of them. If this is what I think - total
>number of bytes per line, i.e., sizeimage / height, than shouldn't YAU422P
>have
>+  imgsz_w = fmt->bytesperline & IMGSZ_H_MASK;
>and the other two
>+  imgsz_w = (fmt->bytesperline * 3 / 2) & IMGSZ_H_MASK;
>? But maybe I'm wrong, please, double-check and confirm.
>

First of all, the setting bytesperline in this file is wrong. It should be
like the setting in the mcam-core-soc.c in the later patch. It's my fault
missing modifying the bytesperline when adding the new formats.
Besides the bytesperline in mcam-core-soc.c is a little wrong.
I will update it in the new version of patch.

For imgsz_w setting, this is for the CCIC input data format, which is from
sensor, while 'switch (fmt->pixelformat)' is CCIC output data format.
It seems a little confusing using fmt->pixelformat here. Using
mcam_formats->mbus_code seems more reasonable. Anyway, 
each fmt->pixelformat must have one mcam_formats->mbus_code
correspondingly. 

Although, our spec says it supports YUV420 input. Our HW team told me
we only use YUV422 and the length is width * 2. So it seems some 
mbus_code is wrong set here.
It seems in this case such format will be never used as we can see
ov7670 does not support yuv420.

Regards,
Libin
--
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 2/2] [RFC] video: display: Adding frame related ops to MIPI DSI video source struct

2013-01-09 Thread Inki Dae
2013/1/10 Laurent Pinchart :
> Hi Vikas,
>
> Thank you for the patch.
>
> On Friday 04 January 2013 10:24:04 Vikas Sajjan wrote:
>> On 3 January 2013 16:29, Tomasz Figa  wrote:
>> > On Wednesday 02 of January 2013 18:47:22 Vikas C Sajjan wrote:
>> >> From: Vikas Sajjan 
>> >>
>> >> Signed-off-by: Vikas Sajjan 
>> >> ---
>> >>
>> >>  include/video/display.h |6 ++
>> >>  1 file changed, 6 insertions(+)
>> >>
>> >> diff --git a/include/video/display.h b/include/video/display.h
>> >> index b639fd0..fb2f437 100644
>> >> --- a/include/video/display.h
>> >> +++ b/include/video/display.h
>> >> @@ -117,6 +117,12 @@ struct dsi_video_source_ops {
>> >>
>> >>   void (*enable_hs)(struct video_source *src, bool enable);
>> >>
>> >> + /* frame related */
>> >> + int (*get_frame_done)(struct video_source *src);
>> >> + int (*clear_frame_done)(struct video_source *src);
>> >> + int (*set_early_blank_mode)(struct video_source *src, int power);
>> >> + int (*set_blank_mode)(struct video_source *src, int power);
>> >> +
>> >
>> > I'm not sure if all those extra ops are needed in any way.
>> >
>> > Looking and Exynos MIPI DSIM driver, set_blank_mode is handling only
>> > FB_BLANK_UNBLANK status, which basically equals to the already existing
>> > enable operation, while set_early_blank mode handles only
>> > FB_BLANK_POWERDOWN, being equal to disable callback.
>>
>> Right, exynos_mipi_dsi_blank_mode() only supports FB_BLANK_UNBLANK as
>> of now, but FB_BLANK_NORMAL will be supported in future.
>> If not for Exynos, i think it will be need for other SoCs which
>> support FB_BLANK_UNBLANK and FB_BLANK_NORMAL.
>
> Could you please explain in a bit more details what the set_early_blank_mode
> and set_blank_mode operations do ?
>
>> > Both get_frame_done and clear_frame_done do not look at anything used at
>> > the moment and if frame done status monitoring will be ever needed, I
>> > think a better way should be implemented.
>>
>> You are right, as of now Exynos MIPI DSI Panels are NOT using these
>> callbacks, but as you mentioned we will need frame done status monitoring
>> anyways, so i included these callbacks here. Will check, if we can implement
>> any better method.
>
> Do you expect the entity drivers (and in particular the panel drivers) to
> require frame done notification ? If so, could you explain your use case(s) ?
>

Hi Laurent,

As you know, there are two types of MIPI-DSI based lcd panels, RGB and
CPU mode. In case of CPU mode lcd panel, it has its own framebuffer
internally and the image in the framebuffer is transferred on lcd
panel in 60Hz itself. But for this, there is something we should
consider. The display controller with CPU mode doens't transfer image
data to MIPI-DSI controller itself. So we should set trigger bit of
the display controller to 1 to do it and also check whether the data
transmission in the framebuffer is done on lcd panel to avoid tearing
issue and some confliction issue(A) between read and write operations
like below,

lcd_panel_frame_done_interrrupt_handler()
{
...
if (mipi-dsi frame done)
trigger display controller;
...
}

A. the issue that LCD panel can access its own framebuffer while some
new data from MIPI-DSI controller is being written in the framebuffer.

But I think there might be better way to avoid such thing.

Thanks,
Inki Dae

> --
> Regards,
>
> Laurent Pinchart
>
> ___
> dri-devel mailing list
> dri-de...@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
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 2/2] [RFC] video: display: Adding frame related ops to MIPI DSI video source struct

2013-01-09 Thread Vikas Sajjan
Hi Laurent,

On 10 January 2013 05:05, Laurent Pinchart
 wrote:
> Hi Vikas,
>
> Thank you for the patch.
>
> On Friday 04 January 2013 10:24:04 Vikas Sajjan wrote:
>> On 3 January 2013 16:29, Tomasz Figa  wrote:
>> > On Wednesday 02 of January 2013 18:47:22 Vikas C Sajjan wrote:
>> >> From: Vikas Sajjan 
>> >>
>> >> Signed-off-by: Vikas Sajjan 
>> >> ---
>> >>
>> >>  include/video/display.h |6 ++
>> >>  1 file changed, 6 insertions(+)
>> >>
>> >> diff --git a/include/video/display.h b/include/video/display.h
>> >> index b639fd0..fb2f437 100644
>> >> --- a/include/video/display.h
>> >> +++ b/include/video/display.h
>> >> @@ -117,6 +117,12 @@ struct dsi_video_source_ops {
>> >>
>> >>   void (*enable_hs)(struct video_source *src, bool enable);
>> >>
>> >> + /* frame related */
>> >> + int (*get_frame_done)(struct video_source *src);
>> >> + int (*clear_frame_done)(struct video_source *src);
>> >> + int (*set_early_blank_mode)(struct video_source *src, int power);
>> >> + int (*set_blank_mode)(struct video_source *src, int power);
>> >> +
>> >
>> > I'm not sure if all those extra ops are needed in any way.
>> >
>> > Looking and Exynos MIPI DSIM driver, set_blank_mode is handling only
>> > FB_BLANK_UNBLANK status, which basically equals to the already existing
>> > enable operation, while set_early_blank mode handles only
>> > FB_BLANK_POWERDOWN, being equal to disable callback.
>>
>> Right, exynos_mipi_dsi_blank_mode() only supports FB_BLANK_UNBLANK as
>> of now, but FB_BLANK_NORMAL will be supported in future.
>> If not for Exynos, i think it will be need for other SoCs which
>> support FB_BLANK_UNBLANK and FB_BLANK_NORMAL.
>
> Could you please explain in a bit more details what the set_early_blank_mode
> and set_blank_mode operations do ?
>

with reference to Mr. Inki Dae's patch and discussion
http://lkml.indiana.edu/hypermail/linux/kernel/1109.1/00413.html
http://lkml.indiana.edu/hypermail/linux/kernel/1109.1/02247.html

set_early_blank_mode:
  - sets the framebuffer blank mode.
  - this callback should be called prior to fb_blank() by a client
driver only if needed
set_blank_mode:
  - sets framebuffer blank mode
  -  this callback should be called after fb_blank() by a client
driver only if needed.

In case of MIPI-DSI based video mode LCD Panel, for lcd power off, the
power off commands should be transferred to lcd panel with display and
mipi-dsi controller enabled, because the commands is set to lcd panel
at vsync porch period, hence set_early_blank_mode() was introduced and
should be called prior to fb_blank() as mentioned in the above 2
links.

I think Mr. Inki Dae can throw more light on this.

>> > Both get_frame_done and clear_frame_done do not look at anything used at
>> > the moment and if frame done status monitoring will be ever needed, I
>> > think a better way should be implemented.
>>
>> You are right, as of now Exynos MIPI DSI Panels are NOT using these
>> callbacks, but as you mentioned we will need frame done status monitoring
>> anyways, so i included these callbacks here. Will check, if we can implement
>> any better method.
>
> Do you expect the entity drivers (and in particular the panel drivers) to
> require frame done notification ? If so, could you explain your use case(s) ?
>
In our Exynos MIPI DSIM H/W, once MIPI DSIM transfers whole image
frame, interrupt will raised to indicate the same.
as part of the mipi_dsim_master_ops() we have get_dsim_frame_done()
and clear_dsim_frame_done() ops. But as of now we are also _NOT_ using
these ops in any particular use case. So i guess as of now we can park
it, later if we find any need for the same we can add it.

> --
> Regards,
>
> Laurent Pinchart
>

--
Thanks and Regards
 Vikas Sajjan
 SAMSUNG Research India - Banglore.
--
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 1/6 v5] media: V4L2: support asynchronous subdevice registration

2013-01-09 Thread Prabhakar Lad
Hi Guennadi,

Nice Work, Thanks for the patch.

On Tue, Jan 8, 2013 at 3:36 PM, Guennadi Liakhovetski
 wrote:
> Currently bridge device drivers register devices for all subdevices
> synchronously, tupically, during their probing. E.g. if an I2C CMOS sensor
> is attached to a video bridge device, the bridge driver will create an I2C
> device and wait for the respective I2C driver to probe. This makes linking
> of devices straight forward, but this approach cannot be used with
> intrinsically asynchronous and unordered device registration systems like
> the Flattened Device Tree. To support such systems this patch adds an
> asynchronous subdevice registration framework to V4L2. To use it respective
> (e.g. I2C) subdevice drivers must request deferred probing as long as their
> bridge driver hasn't probed. The bridge driver during its probing submits a
> an arbitrary number of subdevice descriptor groups to the framework to
> manage. After that it can add callbacks to each of those groups to be
> called at various stages during subdevice probing, e.g. after completion.
> Then the bridge driver can request single groups to be probed, finish its
> own probing and continue its video subsystem configuration from its
> callbacks.
>
> Signed-off-by: Guennadi Liakhovetski 

Tested-by: Lad, Prabhakar 

Regards,
--Prabhakar Lad

> ---
> v5: Now really fix the case, when subdevices probe successfully before the
> bridge, thanks to Prabhakar for testing and reporting
>
>  drivers/media/v4l2-core/Makefile |3 +-
>  drivers/media/v4l2-core/v4l2-async.c |  294 
> ++
>  include/media/v4l2-async.h   |  113 +
>  3 files changed, 409 insertions(+), 1 deletions(-)
>  create mode 100644 drivers/media/v4l2-core/v4l2-async.c
>  create mode 100644 include/media/v4l2-async.h
>
> diff --git a/drivers/media/v4l2-core/Makefile 
> b/drivers/media/v4l2-core/Makefile
> index d065c01..b667ced 100644
> --- a/drivers/media/v4l2-core/Makefile
> +++ b/drivers/media/v4l2-core/Makefile
> @@ -5,7 +5,8 @@
>  tuner-objs :=  tuner-core.o
>
>  videodev-objs  :=  v4l2-dev.o v4l2-ioctl.o v4l2-device.o v4l2-fh.o \
> -   v4l2-event.o v4l2-ctrls.o v4l2-subdev.o v4l2-clk.o
> +   v4l2-event.o v4l2-ctrls.o v4l2-subdev.o v4l2-clk.o \
> +   v4l2-async.o
>  ifeq ($(CONFIG_COMPAT),y)
>videodev-objs += v4l2-compat-ioctl32.o
>  endif
> diff --git a/drivers/media/v4l2-core/v4l2-async.c 
> b/drivers/media/v4l2-core/v4l2-async.c
> new file mode 100644
> index 000..434c53d
> --- /dev/null
> +++ b/drivers/media/v4l2-core/v4l2-async.c
> @@ -0,0 +1,294 @@
> +/*
> + * V4L2 asynchronous subdevice registration API
> + *
> + * Copyright (C) 2012, Guennadi Liakhovetski 
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#include 
> +#include 
> +#include 
> +
> +static bool match_i2c(struct device *dev, struct v4l2_async_hw_device 
> *hw_dev)
> +{
> +   struct i2c_client *client = to_i2c_client(dev);
> +   return hw_dev->bus_type == V4L2_ASYNC_BUS_I2C &&
> +   hw_dev->match.i2c.adapter_id == client->adapter->nr &&
> +   hw_dev->match.i2c.address == client->addr;
> +}
> +
> +static bool match_platform(struct device *dev, struct v4l2_async_hw_device 
> *hw_dev)
> +{
> +   return hw_dev->bus_type == V4L2_ASYNC_BUS_PLATFORM &&
> +   !strcmp(hw_dev->match.platform.name, dev_name(dev));
> +}
> +
> +static LIST_HEAD(subdev_list);
> +static LIST_HEAD(notifier_list);
> +static DEFINE_MUTEX(list_lock);
> +
> +static struct v4l2_async_subdev *v4l2_async_belongs(struct 
> v4l2_async_notifier *notifier,
> +   struct 
> v4l2_async_subdev_list *asdl)
> +{
> +   struct v4l2_async_subdev *asd = NULL;
> +   bool (*match)(struct device *,
> + struct v4l2_async_hw_device *);
> +
> +   list_for_each_entry (asd, ¬ifier->waiting, list) {
> +   struct v4l2_async_hw_device *hw = &asd->hw;
> +   switch (hw->bus_type) {
> +   case V4L2_ASYNC_BUS_SPECIAL:
> +   match = hw->match.special.match;
> +   if (!match)
> +   /* Match always */
> +   return asd;
> +   break;
> +   case V4L2_ASYNC_BUS_PLATFORM:
> +   match = match_platform;
> +   break;
> +   case V4L2_ASYNC_BUS_I2C:
> +   match = match_i2c;
> +   break;
> +   default:
> +   /* Oops */
> +

RE: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Mohammed, Afzal
Hi Steffen,

On Thu, Jan 10, 2013 at 01:45:41, Steffen Trumtrar wrote:

> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK

To clarify,

This series was tested with DT boot (making use of the functionalities
provided by this series) on AM335X EVM & AM335X EVM-SK. DA850 EVM was
tested with non DT boot along with this series (to make sure that
non-DT boot on DA850 EVM is not broken, and it needed the additional
change that was mentioned earlier)

Sorry that my initial reply did not express what I wanted to.

Regards
Afzal




Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Leela Krishna Amudala
Hi Steffen,

On Thu, Jan 10, 2013 at 1:45 AM, Steffen Trumtrar
 wrote:
>
> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> >
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> >
>
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
>
> I think the series was tested at least with
> - imx6q: sabrelite, sabresd
> - imx53: tqma53/mba53
> - omap: DA850 EVM, AM335x EVM, EVM-SK
>
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using.

I tested V16 patches with Exynos: smdk5250 board and it works fine for me.

> Those are the people I know from the top of my head, that use
> or at least did use the patches in one of its iterations. If I forgot
> anyone, please speak up and possibly add your new HW to the list of tested
> devices.
>
> Thanks,
> Steffen
>
> --
> Pengutronix e.K.   | |
> Industrial Linux Solutions | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
> Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |
--
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 0/2] update scan files for Ireland (ie-*)

2013-01-09 Thread Jonathan McCrohan
Hi Oliver,

Attached are two patches I've been trying to get applied to the tree for some
time.

Thanks,
Jon


Jonathan McCrohan (2):
  update scan files for Ireland (ie-*)
  update scan files for Ireland (ie-*)

 dvb-t/ie-CairnHill |6 +++---
 dvb-t/ie-ClermontCarn  |6 +++---
 dvb-t/ie-Dungarvan |6 +++---
 dvb-t/ie-HolywellHill  |4 ++--
 dvb-t/ie-Kippure   |6 +++---
 dvb-t/ie-Maghera   |6 +++---
 dvb-t/ie-MountLeinster |6 +++---
 dvb-t/ie-Mullaghanish  |6 +++---
 dvb-t/ie-SpurHill  |6 +++---
 dvb-t/ie-ThreeRock |6 +++---
 dvb-t/ie-Truskmore |6 +++---
 dvb-t/ie-WoodcockHill  |6 +++---
 12 files changed, 35 insertions(+), 35 deletions(-)

-- 
1.7.10.4

--
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 1/2] update scan files for Ireland (ie-*)

2013-01-09 Thread Jonathan McCrohan
ASO frequency changes; effective 24th Oct 2012.

Signed-off-by: Jonathan McCrohan 
---
 dvb-t/ie-CairnHill |2 +-
 dvb-t/ie-ClermontCarn  |6 +++---
 dvb-t/ie-Dungarvan |2 +-
 dvb-t/ie-HolywellHill  |4 ++--
 dvb-t/ie-Kippure   |2 +-
 dvb-t/ie-Maghera   |2 +-
 dvb-t/ie-MountLeinster |6 +++---
 dvb-t/ie-Mullaghanish  |2 +-
 dvb-t/ie-SpurHill  |2 +-
 dvb-t/ie-ThreeRock |6 +++---
 dvb-t/ie-Truskmore |2 +-
 dvb-t/ie-WoodcockHill  |2 +-
 12 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/dvb-t/ie-CairnHill b/dvb-t/ie-CairnHill
index 002881a..5063ce9 100644
--- a/dvb-t/ie-CairnHill
+++ b/dvb-t/ie-CairnHill
@@ -1,5 +1,5 @@
 # Ireland, Cairn Hill
-# Generated from 
http://www.comreg.ie/_fileupload/File/Technical%20Parameters_20111004.xlsx
+# Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx 
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
 T 68200 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH47: Saorview MUX1
 T 65800 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH44: Saorview MUX2
diff --git a/dvb-t/ie-ClermontCarn b/dvb-t/ie-ClermontCarn
index 680ffce..df9d06b 100644
--- a/dvb-t/ie-ClermontCarn
+++ b/dvb-t/ie-ClermontCarn
@@ -1,5 +1,5 @@
 # Ireland, Clermont Carn
-# Generated from 
http://www.comreg.ie/_fileupload/File/Technical%20Parameters_20111004.xlsx
+# Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx 
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 73000 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH53: Saorview MUX1
-T 76200 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH57: Saorview MUX2
+T 72200 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH52: Saorview MUX1
+T 75400 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH56: Saorview MUX2
diff --git a/dvb-t/ie-Dungarvan b/dvb-t/ie-Dungarvan
index 7f5d6a3..5bdf714 100644
--- a/dvb-t/ie-Dungarvan
+++ b/dvb-t/ie-Dungarvan
@@ -1,5 +1,5 @@
 # Ireland, Dungarvan
-# Generated from 
http://www.comreg.ie/_fileupload/File/Technical%20Parameters_20111004.xlsx
+# Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
 T 74600 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH55: Saorview MUX1
 T 77800 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH59: Saorview MUX2
diff --git a/dvb-t/ie-HolywellHill b/dvb-t/ie-HolywellHill
index 4557ec1..a3f55be 100644
--- a/dvb-t/ie-HolywellHill
+++ b/dvb-t/ie-HolywellHill
@@ -1,5 +1,5 @@
 # Ireland, Holywell Hill
-# Generated from 
http://www.comreg.ie/_fileupload/File/Technical%20Parameters_20111004.xlsx
+# Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx 
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
 T 54600 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH30: Saorview MUX1
-T 50600 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH25: Saorview MUX2
+T 57000 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH33: Saorview MUX2
diff --git a/dvb-t/ie-Kippure b/dvb-t/ie-Kippure
index 723f7be..aeb5d8d 100644
--- a/dvb-t/ie-Kippure
+++ b/dvb-t/ie-Kippure
@@ -1,5 +1,5 @@
 # Ireland, Kippure
-# Generated from 
http://www.comreg.ie/_fileupload/File/Technical%20Parameters_20111004.xlsx
+# Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx 
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
 T 73800 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH54: Saorview MUX1
 T 77000 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH58: Saorview MUX2
diff --git a/dvb-t/ie-Maghera b/dvb-t/ie-Maghera
index 8144c38..a1da82a 100644
--- a/dvb-t/ie-Maghera
+++ b/dvb-t/ie-Maghera
@@ -1,5 +1,5 @@
 # Ireland, Maghera
-# Generated from 
http://www.comreg.ie/_fileupload/File/Technical%20Parameters_20111004.xlsx
+# Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
 T 69000 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH48: Saorview MUX1
 T 74600 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH55: Saorview MUX2
diff --git a/dvb-t/ie-MountLeinster b/dvb-t/ie-MountLeinster
index 780ac0a..e5515c2 100644
--- a/dvb-t/ie-MountLeinster
+++ b/dvb-t/ie-MountLeinster
@@ -1,5 +1,5 @@
 # Ireland, Mount Leinster
-# Generated from 
http://www.comreg.ie/_fileupload/File/Technical%20Parameters_20111004.xlsx
+# Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 66600 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH45: Saorview MUX1
-T 61800 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH39: Saorview MUX2
+T 49000 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH23: Saorview MUX1
+T 51400 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH26: Saorview MUX2
diff --git a/dvb-t/ie-Mullaghanish b/dvb-t/ie-Mullaghanish
index aae3e97..73e6ffe 100644
--- a/dvb-t/ie-Mullaghanish

[PATCH 2/2] update scan files for Ireland (ie-*)

2013-01-09 Thread Jonathan McCrohan
Fix erroneous transmission parameters

Signed-off-by: Jonathan McCrohan 
---
 dvb-t/ie-CairnHill|4 ++--
 dvb-t/ie-Dungarvan|4 ++--
 dvb-t/ie-Kippure  |4 ++--
 dvb-t/ie-Maghera  |4 ++--
 dvb-t/ie-Mullaghanish |4 ++--
 dvb-t/ie-SpurHill |4 ++--
 dvb-t/ie-Truskmore|4 ++--
 dvb-t/ie-WoodcockHill |4 ++--
 8 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/dvb-t/ie-CairnHill b/dvb-t/ie-CairnHill
index 5063ce9..b36272f 100644
--- a/dvb-t/ie-CairnHill
+++ b/dvb-t/ie-CairnHill
@@ -1,5 +1,5 @@
 # Ireland, Cairn Hill
 # Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx 
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 68200 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH47: Saorview MUX1
-T 65800 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH44: Saorview MUX2
+T 68200 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH47: Saorview MUX1
+T 65800 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH44: Saorview MUX2
diff --git a/dvb-t/ie-Dungarvan b/dvb-t/ie-Dungarvan
index 5bdf714..f415097 100644
--- a/dvb-t/ie-Dungarvan
+++ b/dvb-t/ie-Dungarvan
@@ -1,5 +1,5 @@
 # Ireland, Dungarvan
 # Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 74600 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH55: Saorview MUX1
-T 77800 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH59: Saorview MUX2
+T 74600 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH55: Saorview MUX1
+T 77800 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH59: Saorview MUX2
diff --git a/dvb-t/ie-Kippure b/dvb-t/ie-Kippure
index aeb5d8d..56ad12a 100644
--- a/dvb-t/ie-Kippure
+++ b/dvb-t/ie-Kippure
@@ -1,5 +1,5 @@
 # Ireland, Kippure
 # Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx 
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 73800 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH54: Saorview MUX1
-T 77000 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH58: Saorview MUX2
+T 73800 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH54: Saorview MUX1
+T 77000 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH58: Saorview MUX2
diff --git a/dvb-t/ie-Maghera b/dvb-t/ie-Maghera
index a1da82a..11c08b7 100644
--- a/dvb-t/ie-Maghera
+++ b/dvb-t/ie-Maghera
@@ -1,5 +1,5 @@
 # Ireland, Maghera
 # Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 69000 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH48: Saorview MUX1
-T 74600 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH55: Saorview MUX2
+T 69000 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH48: Saorview MUX1
+T 74600 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH55: Saorview MUX2
diff --git a/dvb-t/ie-Mullaghanish b/dvb-t/ie-Mullaghanish
index 73e6ffe..35dc5dd 100644
--- a/dvb-t/ie-Mullaghanish
+++ b/dvb-t/ie-Mullaghanish
@@ -1,5 +1,5 @@
 # Ireland, Mullaghanish
 # Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx 
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 47400 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH21: Saorview MUX1
-T 49800 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH24: Saorview MUX2
+T 47400 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH21: Saorview MUX1
+T 49800 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH24: Saorview MUX2
diff --git a/dvb-t/ie-SpurHill b/dvb-t/ie-SpurHill
index a211e93..7566d82 100644
--- a/dvb-t/ie-SpurHill
+++ b/dvb-t/ie-SpurHill
@@ -1,5 +1,5 @@
 # Ireland, Spur Hill
 # Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 66600 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH45: Saorview MUX1
-T 69800 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH49: Saorview MUX2
+T 66600 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH45: Saorview MUX1
+T 69800 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH49: Saorview MUX2
diff --git a/dvb-t/ie-Truskmore b/dvb-t/ie-Truskmore
index db71c31..178bfe3 100644
--- a/dvb-t/ie-Truskmore
+++ b/dvb-t/ie-Truskmore
@@ -1,5 +1,5 @@
 # Ireland, Truskmore
 # Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx 
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 73000 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH53: Saorview MUX1
-T 76200 8MHz 3/4 NONE QAM16 2k 1/32 NONE # CH57: Saorview MUX2
+T 73000 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH53: Saorview MUX1
+T 76200 8MHz 3/4 NONE QAM64 8k 1/32 NONE # CH57: Saorview MUX2
diff --git a/dvb-t/ie-WoodcockHill b/dvb-t/ie-WoodcockHill
index 513dda5..08c1d5b 100644
--- a/dvb-t/ie-WoodcockHill
+++ b/dvb-t/ie-WoodcockHill
@@ -1,5 +1,5 @@
 # Ireland, Woodcock Hill
 # Generated from 
http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx 
 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 68200

Re: global mutex in dvb_usercopy (dvbdev.c)

2013-01-09 Thread thomas schorpp

On 09.01.2013 22:30, Nikolaus Schulz wrote:

On Tue, Jan 08, 2013 at 12:05:47PM +0530, Soby Mathew wrote:

Hi Everyone,
 I have a doubt regarding about the global mutex lock in
dvb_usercopy(drivers/media/dvb-core/dvbdev.c, line 382) .


/* call driver */
mutex_lock(&dvbdev_mutex);
if ((err = func(file, cmd, parg)) == -ENOIOCTLCMD)
err = -EINVAL;
mutex_unlock(&dvbdev_mutex);


Why is this mutex needed? When I check similar functions like
video_usercopy, this kind of global locking is not present when func()
is called.


I cannot say anything about video_usercopy(), but as it happens, there's
a patch[1] queued for Linux 3.9 that will hopefully replace the mutex in
dvb_usercopy() with more fine-grained locking.

Nikolaus

[1] 
http://git.linuxtv.org/media_tree.git/commit/30ad64b8ac539459f8975aa186421ef3db0bb5cb


"Unfortunately, frontend ioctls can be blocked by the frontend thread for several 
seconds; this leads to unacceptable lock contention."
Especially the stv0297 signal locking, as it turned out in situations of bad 
signal input or my cable providers outtage today it has slowed down dvb_ttpci 
(notable as OSD- output latency and possibly driver buffer overflows of budget 
source devices) that much that I had to disable tuning with parm --outputonly 
in vdr-plugin-dvbsddevice.

Can anyone confirm that and have a look at the other frontend drivers for 
tuners needing as much driver control?

I will try to apply the patch manually to Linux 3.2 and check with Latencytop 
tomorrow.

y
tom





--
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 v1.2 1/4] v4l: Define video buffer flags for timestamp types

2013-01-09 Thread Laurent Pinchart
Hi Sakari,

On Sunday 02 December 2012 22:53:51 Sakari Ailus wrote:
> On Tue, Nov 27, 2012 at 05:04:29PM +0100, Laurent Pinchart wrote:
> > On Thursday 22 November 2012 01:59:00 Sakari Ailus wrote:
> > > On Wed, Nov 21, 2012 at 11:53:02PM +0100, Hans Verkuil wrote:
> ,,,
> 
> > > > What do you think?
> > > 
> > > Fine for me. Sylwester also brought memory-to-memory devices (and
> > > memory-to-memory processing whether the device is classified as such in
> > > API or not) to my attention. For those devices it likely wouldn't matter
> > > at all what's the system time when the frame is processed since the
> > > frame wasn't captured at that time anyway.
> > > 
> > > In those cases it might makes sense to use timestamp that e.g. comes
> > > from the compressed stream, or pass encoder timestamps that are going to
> > > be part of the compressed stream. I think MPEG-related use cases were
> > > briefly mentioned in the timestamp discussion earlier.
> > 
> > When uncompressing a stream you will get the MPEG embedded timestamp on
> > the capture side. The timestamp returned to userspace at QBUF time on the
> > output side will still be unused. I don't really see a use case for
> > returning the timestamp at which the frame is expected to be processed by
> > the codec, so we could just make the field reserved for future use in
> > that case.
> 
> Is the timestamp embedded in the compressed data itself in that case, or
> where?

Yes, it's embedded in the compressed stream.

> Could this be codec-dependent?

Of course, it would be too easy otherwise :-)

> > > > > The driver stores the time at which
> > > > > + the first data byte was actually sent out in the
> > > > > + timestamp field.
> > > > 
> > > > Same problem as with the capture time: does the timestamp refer to the
> > > > first or last byte that's sent out? I think all output drivers set it
> > > > to the time of the last byte (== when the DMA of the frame is
> > > > finished).
> > > 
> > > I haven't actually even seen a capture driver that would do otherwise,
> > > but that could be just me not knowing many enough. :-) Would we actually
> > > break something if we changed the definition to say that this is the
> > > timestamp taken when the frame is done?
> > 
> > For software timestamps we could do that, but for hardware timestamps the
> > exact timestamping time may vary.
> 
> Should we then do this for the timestamps that are obtained from the system
> clock? We also haven't defined other kinds of tiemstamps yet.

That sounds good to me.

> For timestamp types that are hardware-dependent we could have exceptions.

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 01/23] uvc: Replace memcpy with struct assignment

2013-01-09 Thread Laurent Pinchart
Hi Ezequiel,

On Thursday 27 December 2012 21:49:37 Mauro Carvalho Chehab wrote:
> Em Thu, 27 Dec 2012 18:12:46 -0300 Ezequiel Garcia escreveu:
> > On Tue, Oct 23, 2012 at 4:57 PM, Ezequiel Garcia wrote:
> > > This kind of memcpy() is error-prone. Its replacement with a struct
> > > assignment is prefered because it's type-safe and much easier to read.
> > > 
> > > Found by coccinelle. Hand patched and reviewed.
> > > Tested by compilation only.
> > > 
> > > A simplified version of the semantic match that finds this problem is as
> > > follows: (http://coccinelle.lip6.fr/)
> > > 
> > > // 
> > > @@
> > > identifier struct_name;
> > > struct struct_name to;
> > > struct struct_name from;
> > > expression E;
> > > @@
> > > -memcpy(&(to), &(from), E);
> > > +to = from;
> > > // 
> > > 
> > > Cc: Laurent Pinchart 
> > > Signed-off-by: Peter Senna Tschudin 
> > > Signed-off-by: Ezequiel Garcia 
> > > ---
> > > 
> > >  drivers/media/usb/uvc/uvc_v4l2.c |6 +++---
> > >  1 files changed, 3 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/drivers/media/usb/uvc/uvc_v4l2.c
> > > b/drivers/media/usb/uvc/uvc_v4l2.c index f00db30..4fc8737 100644
> > > --- a/drivers/media/usb/uvc/uvc_v4l2.c
> > > +++ b/drivers/media/usb/uvc/uvc_v4l2.c
> > > @@ -314,7 +314,7 @@ static int uvc_v4l2_set_format(struct uvc_streaming
> > > *stream,
> > > goto done;
> > > }
> > > 
> > > -   memcpy(&stream->ctrl, &probe, sizeof probe);
> > > +   stream->ctrl = probe;
> > > 
> > > stream->cur_format = format;
> > > stream->cur_frame = frame;
> > > @@ -386,7 +386,7 @@ static int uvc_v4l2_set_streamparm(struct
> > > uvc_streaming *stream,
> > > return -EBUSY;
> > > }
> > > 
> > > -   memcpy(&probe, &stream->ctrl, sizeof probe);
> > > +   probe = stream->ctrl;
> > > probe.dwFrameInterval =
> > > uvc_try_frame_interval(stream->cur_frame, interval);
> > > 
> > > @@ -397,7 +397,7 @@ static int uvc_v4l2_set_streamparm(struct
> > > uvc_streaming *stream,
> > > return ret;
> > > }
> > > 
> > > -   memcpy(&stream->ctrl, &probe, sizeof probe);
> > > +   stream->ctrl = probe;
> > > mutex_unlock(&stream->mutex);
> > > 
> > > /* Return the actual frame period. */
> > 
> > It seems you've marked this one as "Changes requested" [1].
> > However, Laurent didn't request any change,
> > but just pointed out we missed one memcpy replacement candidate.
> > 
> > I believe it's safe to apply the patch (together with the other 20
> > patches) and we can fix the missing spot in another patch.
> 
> The other patches got applied already. Well just do whatever Laurent asked
> you and re-submit this one ;)

Could you please resubmit this patch with the missed memcpy replaced by a 
struct assignment ? I'll then add it to my tree.

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] [RFC] video: display: Adding frame related ops to MIPI DSI video source struct

2013-01-09 Thread Laurent Pinchart
Hi Vikas,

Thank you for the patch.

On Friday 04 January 2013 10:24:04 Vikas Sajjan wrote:
> On 3 January 2013 16:29, Tomasz Figa  wrote:
> > On Wednesday 02 of January 2013 18:47:22 Vikas C Sajjan wrote:
> >> From: Vikas Sajjan 
> >> 
> >> Signed-off-by: Vikas Sajjan 
> >> ---
> >> 
> >>  include/video/display.h |6 ++
> >>  1 file changed, 6 insertions(+)
> >> 
> >> diff --git a/include/video/display.h b/include/video/display.h
> >> index b639fd0..fb2f437 100644
> >> --- a/include/video/display.h
> >> +++ b/include/video/display.h
> >> @@ -117,6 +117,12 @@ struct dsi_video_source_ops {
> >> 
> >>   void (*enable_hs)(struct video_source *src, bool enable);
> >> 
> >> + /* frame related */
> >> + int (*get_frame_done)(struct video_source *src);
> >> + int (*clear_frame_done)(struct video_source *src);
> >> + int (*set_early_blank_mode)(struct video_source *src, int power);
> >> + int (*set_blank_mode)(struct video_source *src, int power);
> >> +
> > 
> > I'm not sure if all those extra ops are needed in any way.
> > 
> > Looking and Exynos MIPI DSIM driver, set_blank_mode is handling only
> > FB_BLANK_UNBLANK status, which basically equals to the already existing
> > enable operation, while set_early_blank mode handles only
> > FB_BLANK_POWERDOWN, being equal to disable callback.
> 
> Right, exynos_mipi_dsi_blank_mode() only supports FB_BLANK_UNBLANK as
> of now, but FB_BLANK_NORMAL will be supported in future.
> If not for Exynos, i think it will be need for other SoCs which
> support FB_BLANK_UNBLANK and FB_BLANK_NORMAL.

Could you please explain in a bit more details what the set_early_blank_mode 
and set_blank_mode operations do ?

> > Both get_frame_done and clear_frame_done do not look at anything used at
> > the moment and if frame done status monitoring will be ever needed, I
> > think a better way should be implemented.
> 
> You are right, as of now Exynos MIPI DSI Panels are NOT using these
> callbacks, but as you mentioned we will need frame done status monitoring
> anyways, so i included these callbacks here. Will check, if we can implement
> any better method.

Do you expect the entity drivers (and in particular the panel drivers) to 
require frame done notification ? If so, could you explain your use case(s) ?

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Fwd: update Finland DVB-T tuning files

2013-01-09 Thread Oliver Schinagl

On 01/09/13 16:26, Antti Palosaari wrote:

Oliver,
could you apply that one?


http://git.schinagl.nl/cgi-bin/cgit.cgi/dvb_frequency_scanfiles.git

applied to my local branch. Once I get git access fixed to linuxtv, i'll 
post all my patches to the new dtv-scan-files tree!


oliver


Antti


 Original Message 
Subject: update Finland DVB-T tuning files
Date: Mon, 23 Jul 2012 23:57:02 +0300
From: Antti Palosaari 
To: Christoph Pfister ,linux-media


Christoph, apply attached patch thanks!

Antti


--
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] omap3isp: Add support for interlaced input data

2013-01-09 Thread Laurent Pinchart
Hi William,

On Tuesday 08 January 2013 14:49:41 William Swanson wrote:
> On 01/07/2013 04:20 AM, Laurent Pinchart wrote:
> > What do you get in the memory buffers ? Are fields captured in separate
> > buffers or combined in a single buffer ? If they're combined, are they
> > interleaved or sequential in memory ?
> 
> I believe the data is combined in a single buffer, with alternate fields
> interleaved.

Could you please double-check that ? I'd like to be sure, not just believe :-)

In that case the OMAP3 ISP driver should set the v4l2_pix_format::field to 
V4L2_FIELD_INTERLACED in the format-related ioctl when an interlaced format is 
used. I suppose this could be added later - Sakari, any opinion ?

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: global mutex in dvb_usercopy (dvbdev.c)

2013-01-09 Thread Nikolaus Schulz
On Tue, Jan 08, 2013 at 12:05:47PM +0530, Soby Mathew wrote:
> Hi Everyone,
> I have a doubt regarding about the global mutex lock in
> dvb_usercopy(drivers/media/dvb-core/dvbdev.c, line 382) .
> 
> 
> /* call driver */
> mutex_lock(&dvbdev_mutex);
> if ((err = func(file, cmd, parg)) == -ENOIOCTLCMD)
> err = -EINVAL;
> mutex_unlock(&dvbdev_mutex);
> 
> 
> Why is this mutex needed? When I check similar functions like
> video_usercopy, this kind of global locking is not present when func()
> is called.

I cannot say anything about video_usercopy(), but as it happens, there's
a patch[1] queued for Linux 3.9 that will hopefully replace the mutex in
dvb_usercopy() with more fine-grained locking.

Nikolaus

[1] 
http://git.linuxtv.org/media_tree.git/commit/30ad64b8ac539459f8975aa186421ef3db0bb5cb
--
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: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Thierry Reding
On Wed, Jan 09, 2013 at 09:15:41PM +0100, Steffen Trumtrar wrote:
> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> > 
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> > 
> 
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
> 
> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK
> 
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using. Those are the people I know from the top of my head, that use
> or at least did use the patches in one of its iterations. If I forgot
> anyone, please speak up and possibly add your new HW to the list of tested
> devices.

I tested earlier versions on Tegra. The latest one was v15 I think.

Thierry


pgpNAKduiOz6G.pgp
Description: PGP signature


cron job: media_tree daily build: ERRORS

2013-01-09 Thread Hans Verkuil
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:Wed Jan  9 19:00:17 CET 2013
git hash:73ec66c000e9816806c7380ca3420f4e0638c40e
gcc version:  i686-linux-gcc (GCC) 4.7.1
host hardware:x86_64
host os:  3.4.07-marune

linux-git-arm-eabi-davinci: WARNINGS
linux-git-arm-eabi-exynos: WARNINGS
linux-git-arm-eabi-omap: ERRORS
linux-git-i686: OK
linux-git-m32r: OK
linux-git-mips: WARNINGS
linux-git-powerpc64: OK
linux-git-sh: OK
linux-git-x86_64: OK
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.1-i686: WARNINGS
linux-3.3-i686: WARNINGS
linux-3.4-i686: WARNINGS
linux-3.5-i686: WARNINGS
linux-3.6-i686: WARNINGS
linux-3.7-i686: WARNINGS
linux-3.8-rc1-i686: OK
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.1-x86_64: WARNINGS
linux-3.3-x86_64: WARNINGS
linux-3.4-x86_64: WARNINGS
linux-3.5-x86_64: WARNINGS
linux-3.6-x86_64: WARNINGS
linux-3.7-x86_64: WARNINGS
linux-3.8-rc1-x86_64: OK
apps: WARNINGS
spec-git: OK
sparse: ERRORS

Detailed results are available here:

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

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Wednesday.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: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Marek Vasut
Dear Steffen Trumtrar,

> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> > 
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> 
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
> 
> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK
> 
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using.

MX53QSB and another custom MX53 board.

> Those are the people I know from the top of my head, that use
> or at least did use the patches in one of its iterations. If I forgot
> anyone, please speak up and possibly add your new HW to the list of tested
> devices.
> 
> Thanks,
> Steffen

Best regards,
Marek Vasut
--
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] em28xx: fix analog streaming with USB bulk transfers

2013-01-09 Thread Frank Schäfer
Am 09.01.2013 21:52, schrieb Frank Schäfer:
> With the conversion to videobuf2, some unnecessary calls of
> em28xx_set_alternate() have been removed. It is now called at analog streaming
> start only.
> This has unveiled a bug that causes USB bulk transfers to fail with all urbs
> having status -EVOERFLOW.
> The reason is, that for bulk transfers usb_set_interface() needs to be called
> even if the previous alt setting was the same (side note: bulk transfers seem
> to work only with alt=0).
> While it seems to be NOT necessary for isoc transfers, it's reasonable to just
> call usb_set_interface() unconditionally in em28xx_set_alternate().
> Also add a comment that explains the issue to prevent regressions in the 
> future.

The problem is, that I would really like to understand why the old code
was working...
Maybe the reason is hidden somewhere in videobuf2 or it's a firmware
issue or i'm just too tired at the moment.

Regards,
Frank



>
> Signed-off-by: Frank Schäfer 
> ---
>  drivers/media/usb/em28xx/em28xx-core.c |   43 
> 
>  1 Datei geändert, 22 Zeilen hinzugefügt(+), 21 Zeilen entfernt(-)
>
> diff --git a/drivers/media/usb/em28xx/em28xx-core.c 
> b/drivers/media/usb/em28xx/em28xx-core.c
> index 80f87bb..ce4f252 100644
> --- a/drivers/media/usb/em28xx/em28xx-core.c
> +++ b/drivers/media/usb/em28xx/em28xx-core.c
> @@ -811,12 +811,12 @@ int em28xx_resolution_set(struct em28xx *dev)
>  /* Set USB alternate setting for analog video */
>  int em28xx_set_alternate(struct em28xx *dev)
>  {
> - int errCode, prev_alt = dev->alt;
> + int errCode;
>   int i;
>   unsigned int min_pkt_size = dev->width * 2 + 4;
>  
>   /* NOTE: for isoc transfers, only alt settings > 0 are allowed
> -  for bulk transfers, use alt=0 as default value */
> +  bulk transfers seem to work only with alt=0 ! */
>   dev->alt = 0;
>   if ((alt > 0) && (alt < dev->num_alt)) {
>   em28xx_coredbg("alternate forced to %d\n", dev->alt);
> @@ -847,25 +847,26 @@ int em28xx_set_alternate(struct em28xx *dev)
>   }
>  
>  set_alt:
> - if (dev->alt != prev_alt) {
> - if (dev->analog_xfer_bulk) {
> - dev->max_pkt_size = 512; /* USB 2.0 spec */
> - dev->packet_multiplier = EM28XX_BULK_PACKET_MULTIPLIER;
> - } else { /* isoc */
> - em28xx_coredbg("minimum isoc packet size: %u 
> (alt=%d)\n",
> -min_pkt_size, dev->alt);
> - dev->max_pkt_size =
> -   dev->alt_max_pkt_size_isoc[dev->alt];
> - dev->packet_multiplier = EM28XX_NUM_ISOC_PACKETS;
> - }
> - em28xx_coredbg("setting alternate %d with wMaxPacketSize=%u\n",
> -dev->alt, dev->max_pkt_size);
> - errCode = usb_set_interface(dev->udev, 0, dev->alt);
> - if (errCode < 0) {
> - em28xx_errdev("cannot change alternate number to %d 
> (error=%i)\n",
> - dev->alt, errCode);
> - return errCode;
> - }
> + /* NOTE: for bulk transfers, we need to call usb_set_interface()
> +  * even if the previous settings were the same. Otherwise streaming
> +  * fails with all urbs having status = -EOVERFLOW ! */
> + if (dev->analog_xfer_bulk) {
> + dev->max_pkt_size = 512; /* USB 2.0 spec */
> + dev->packet_multiplier = EM28XX_BULK_PACKET_MULTIPLIER;
> + } else { /* isoc */
> + em28xx_coredbg("minimum isoc packet size: %u (alt=%d)\n",
> +min_pkt_size, dev->alt);
> + dev->max_pkt_size =
> +   dev->alt_max_pkt_size_isoc[dev->alt];
> + dev->packet_multiplier = EM28XX_NUM_ISOC_PACKETS;
> + }
> + em28xx_coredbg("setting alternate %d with wMaxPacketSize=%u\n",
> +dev->alt, dev->max_pkt_size);
> + errCode = usb_set_interface(dev->udev, 0, dev->alt);
> + if (errCode < 0) {
> + em28xx_errdev("cannot change alternate number to %d 
> (error=%i)\n",
> + dev->alt, errCode);
> + return errCode;
>   }
>   return 0;
>  }

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Laurent Pinchart
On Wednesday 09 January 2013 21:15:41 Steffen Trumtrar wrote:
> On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> > Hi!
> > 
> > Finally, right in time before the end of the world on friday, v16 of the
> > display helpers.
> 
> So, any more criticism on the series? Any takers for the series as is?
> I guess it could be merged via the fbdev-tree if David Airlie can agree
> to the DRM patches ?! Does that sound about right?
> 
> I think the series was tested at least with
>   - imx6q: sabrelite, sabresd
>   - imx53: tqma53/mba53
>   - omap: DA850 EVM, AM335x EVM, EVM-SK
> 
> I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
> are using.

I've used the sh-mobile-lcdcfb driver.

> Those are the people I know from the top of my head, that use or at least
> did use the patches in one of its iterations. If I forgot anyone, please
> speak up and possibly add your new HW to the list of tested devices.

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RFC PATCH] em28xx: fix analog streaming with USB bulk transfers

2013-01-09 Thread Frank Schäfer
With the conversion to videobuf2, some unnecessary calls of
em28xx_set_alternate() have been removed. It is now called at analog streaming
start only.
This has unveiled a bug that causes USB bulk transfers to fail with all urbs
having status -EVOERFLOW.
The reason is, that for bulk transfers usb_set_interface() needs to be called
even if the previous alt setting was the same (side note: bulk transfers seem
to work only with alt=0).
While it seems to be NOT necessary for isoc transfers, it's reasonable to just
call usb_set_interface() unconditionally in em28xx_set_alternate().
Also add a comment that explains the issue to prevent regressions in the future.

Signed-off-by: Frank Schäfer 
---
 drivers/media/usb/em28xx/em28xx-core.c |   43 
 1 Datei geändert, 22 Zeilen hinzugefügt(+), 21 Zeilen entfernt(-)

diff --git a/drivers/media/usb/em28xx/em28xx-core.c 
b/drivers/media/usb/em28xx/em28xx-core.c
index 80f87bb..ce4f252 100644
--- a/drivers/media/usb/em28xx/em28xx-core.c
+++ b/drivers/media/usb/em28xx/em28xx-core.c
@@ -811,12 +811,12 @@ int em28xx_resolution_set(struct em28xx *dev)
 /* Set USB alternate setting for analog video */
 int em28xx_set_alternate(struct em28xx *dev)
 {
-   int errCode, prev_alt = dev->alt;
+   int errCode;
int i;
unsigned int min_pkt_size = dev->width * 2 + 4;
 
/* NOTE: for isoc transfers, only alt settings > 0 are allowed
-for bulk transfers, use alt=0 as default value */
+bulk transfers seem to work only with alt=0 ! */
dev->alt = 0;
if ((alt > 0) && (alt < dev->num_alt)) {
em28xx_coredbg("alternate forced to %d\n", dev->alt);
@@ -847,25 +847,26 @@ int em28xx_set_alternate(struct em28xx *dev)
}
 
 set_alt:
-   if (dev->alt != prev_alt) {
-   if (dev->analog_xfer_bulk) {
-   dev->max_pkt_size = 512; /* USB 2.0 spec */
-   dev->packet_multiplier = EM28XX_BULK_PACKET_MULTIPLIER;
-   } else { /* isoc */
-   em28xx_coredbg("minimum isoc packet size: %u 
(alt=%d)\n",
-  min_pkt_size, dev->alt);
-   dev->max_pkt_size =
- dev->alt_max_pkt_size_isoc[dev->alt];
-   dev->packet_multiplier = EM28XX_NUM_ISOC_PACKETS;
-   }
-   em28xx_coredbg("setting alternate %d with wMaxPacketSize=%u\n",
-  dev->alt, dev->max_pkt_size);
-   errCode = usb_set_interface(dev->udev, 0, dev->alt);
-   if (errCode < 0) {
-   em28xx_errdev("cannot change alternate number to %d 
(error=%i)\n",
-   dev->alt, errCode);
-   return errCode;
-   }
+   /* NOTE: for bulk transfers, we need to call usb_set_interface()
+* even if the previous settings were the same. Otherwise streaming
+* fails with all urbs having status = -EOVERFLOW ! */
+   if (dev->analog_xfer_bulk) {
+   dev->max_pkt_size = 512; /* USB 2.0 spec */
+   dev->packet_multiplier = EM28XX_BULK_PACKET_MULTIPLIER;
+   } else { /* isoc */
+   em28xx_coredbg("minimum isoc packet size: %u (alt=%d)\n",
+  min_pkt_size, dev->alt);
+   dev->max_pkt_size =
+ dev->alt_max_pkt_size_isoc[dev->alt];
+   dev->packet_multiplier = EM28XX_NUM_ISOC_PACKETS;
+   }
+   em28xx_coredbg("setting alternate %d with wMaxPacketSize=%u\n",
+  dev->alt, dev->max_pkt_size);
+   errCode = usb_set_interface(dev->udev, 0, dev->alt);
+   if (errCode < 0) {
+   em28xx_errdev("cannot change alternate number to %d 
(error=%i)\n",
+   dev->alt, errCode);
+   return errCode;
}
return 0;
 }
-- 
1.7.10.4

--
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: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Steffen Trumtrar
On Tue, Dec 18, 2012 at 06:04:09PM +0100, Steffen Trumtrar wrote:
> Hi!
> 
> Finally, right in time before the end of the world on friday, v16 of the
> display helpers.
> 

So, any more criticism on the series? Any takers for the series as is?
I guess it could be merged via the fbdev-tree if David Airlie can agree
to the DRM patches ?! Does that sound about right?

I think the series was tested at least with
- imx6q: sabrelite, sabresd
- imx53: tqma53/mba53
- omap: DA850 EVM, AM335x EVM, EVM-SK

I don't know what Laurent Pinchart, Marek Vasut and Leela Krishna Amudala
are using. Those are the people I know from the top of my head, that use
or at least did use the patches in one of its iterations. If I forgot
anyone, please speak up and possibly add your new HW to the list of tested
devices.

Thanks,
Steffen

-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |
--
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: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Marek Vasut
Dear Steffen Trumtrar,

> Hi!
> 
> On Wed, Jan 09, 2013 at 08:12:01PM +0100, Marek Vasut wrote:
> > Dear Steffen Trumtrar,
> > 
> > I tested this on 3.8-rc1 (next 20130103) with the imx drm driver. After
> > adding the following piece of code (quick hack), this works just fine.
> > Thanks!
> > 
> > diff --git a/drivers/staging/imx-drm/parallel-display.c
> > b/drivers/staging/imx- drm/parallel-display.c
> > index a8064fc..e45002a 100644
> > --- a/drivers/staging/imx-drm/parallel-display.c
> > +++ b/drivers/staging/imx-drm/parallel-display.c
> > @@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct
> > drm_connector *connector)
> > 
> >  static int imx_pd_connector_get_modes(struct drm_connector *connector)
> >  {
> >  
> > struct imx_parallel_display *imxpd = con_to_imxpd(connector);
> > 
> > +   struct device_node *np = imxpd->dev->of_node;
> > 
> > int num_modes = 0;
> > 
> > if (imxpd->edid) {
> > 
> > @@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct
> > drm_connector *connector)
> > 
> > num_modes++;
> > 
> > }
> > 
> > +   if (np) {
> > +   struct drm_display_mode *mode =
> > drm_mode_create(connector->dev); +  
> > of_get_drm_display_mode(np, &imxpd->mode, 0);
> > +   drm_mode_copy(mode, &imxpd->mode);
> > +   mode->type |= DRM_MODE_TYPE_DRIVER |
> > DRM_MODE_TYPE_PREFERRED, +   drm_mode_probed_add(connector,
> > mode);
> > +   num_modes++;
> > +   }
> > +
> > 
> > return num_modes;
> >  
> >  }
> 
> Nice! I haven't tried the parallel display, but I think Philipp Zabel might
> already have a patch for it. If not, I will definitly keep your patch in my
> topic branch.

Works like charm here.

Make sure to adjust the patch and check for the return value of 
of_get_drm_display_mode(np, &imxpd->mode, 0); call, that's probably the only 
issue that needs fixing in that hack. Checking if np != NULL might not hurt 
either. I can roll you a real patch if it helps.

Best regards,
Marek Vasut
--
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: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Steffen Trumtrar
Hi!

On Wed, Jan 09, 2013 at 08:12:01PM +0100, Marek Vasut wrote:
> Dear Steffen Trumtrar,
> 
> I tested this on 3.8-rc1 (next 20130103) with the imx drm driver. After 
> adding 
> the following piece of code (quick hack), this works just fine. Thanks!
> 
> diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-
> drm/parallel-display.c
> index a8064fc..e45002a 100644
> --- a/drivers/staging/imx-drm/parallel-display.c
> +++ b/drivers/staging/imx-drm/parallel-display.c
> @@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct drm_connector 
> *connector)
>  static int imx_pd_connector_get_modes(struct drm_connector *connector)
>  {
> struct imx_parallel_display *imxpd = con_to_imxpd(connector);
> +   struct device_node *np = imxpd->dev->of_node;
> int num_modes = 0;
>  
> if (imxpd->edid) {
> @@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct drm_connector 
> *connector)
> num_modes++;
> }
>  
> +   if (np) {
> +   struct drm_display_mode *mode = 
> drm_mode_create(connector->dev);
> +   of_get_drm_display_mode(np, &imxpd->mode, 0);
> +   drm_mode_copy(mode, &imxpd->mode);
> +   mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
> +   drm_mode_probed_add(connector, mode);
> +   num_modes++;
> +   }
> +
> return num_modes;
>  }
> 

Nice! I haven't tried the parallel display, but I think Philipp Zabel might
already have a patch for it. If not, I will definitly keep your patch in my
topic branch.

Regards,
Steffen

-- 
Pengutronix e.K.   | |
Industrial Linux Solutions | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686   | Fax:   +49-5121-206917- |
--
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: [PATCHv16 0/7] of: add display helper

2013-01-09 Thread Marek Vasut
Dear Steffen Trumtrar,

> Hi!
> 
> Finally, right in time before the end of the world on friday, v16 of the
> display helpers.

I tested this on 3.8-rc1 (next 20130103) with the imx drm driver. After adding 
the following piece of code (quick hack), this works just fine. Thanks!

diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-
drm/parallel-display.c
index a8064fc..e45002a 100644
--- a/drivers/staging/imx-drm/parallel-display.c
+++ b/drivers/staging/imx-drm/parallel-display.c
@@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct drm_connector 
*connector)
 static int imx_pd_connector_get_modes(struct drm_connector *connector)
 {
struct imx_parallel_display *imxpd = con_to_imxpd(connector);
+   struct device_node *np = imxpd->dev->of_node;
int num_modes = 0;
 
if (imxpd->edid) {
@@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct drm_connector 
*connector)
num_modes++;
}
 
+   if (np) {
+   struct drm_display_mode *mode = drm_mode_create(connector->dev);
+   of_get_drm_display_mode(np, &imxpd->mode, 0);
+   drm_mode_copy(mode, &imxpd->mode);
+   mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
+   drm_mode_probed_add(connector, mode);
+   num_modes++;
+   }
+
return num_modes;
 }

Best regards,
Marek Vasut
--
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 1/3] davinci: vpif: capture: add V4L2-async support

2013-01-09 Thread Prabhakar Lad
Hi Hans,

Thanks for the review!

On Wed, Jan 9, 2013 at 9:12 PM, Hans Verkuil  wrote:
> On Wed 9 January 2013 14:41:25 Lad, Prabhakar wrote:
>> Add support for asynchronous subdevice probing, using the v4l2-async API.
>> The legacy synchronous mode is still supported too, which allows to
>> gradually update drivers and platforms. The selected approach adds a
>> notifier for each struct soc_camera_device instance, i.e. for each video
>> device node, even when there are multiple such instances registered with a
>> single soc-camera host simultaneously.
>
> This comment was obviously copy-and-pasted from somewhere else :-)
>
ah my bad :-)

>>
>> Signed-off-by: Lad, Prabhakar 
>> Cc: Guennadi Liakhovetski 
>> Cc: Hans Verkuil 
>> Cc: Laurent Pinchart 
>> Cc: Sakari Ailus 
>> Cc: Mauro Carvalho Chehab 
>> ---
>>  drivers/media/platform/davinci/vpif_capture.c |  171 
>> ++---
>>  drivers/media/platform/davinci/vpif_capture.h |2 +
>>  include/media/davinci/vpif_types.h|2 +
>>  3 files changed, 128 insertions(+), 47 deletions(-)
>>
>> diff --git a/drivers/media/platform/davinci/vpif_capture.c 
>> b/drivers/media/platform/davinci/vpif_capture.c
>> index 5892d2b..a8b6588 100644
>> --- a/drivers/media/platform/davinci/vpif_capture.c
>> +++ b/drivers/media/platform/davinci/vpif_capture.c
>> @@ -34,6 +34,8 @@
>>  #include 
>>  #include 
>>  #include 
>> +
>> +#include 
>>  #include 
>>  #include 
>>  #include 
>> @@ -2054,6 +2056,96 @@ vpif_init_free_channel_objects:
>>   return err;
>>  }
>>
>> +int vpif_async_bound(struct v4l2_async_notifier *notifier,
>> + struct v4l2_async_subdev_list *asdl)
>> +{
>> + int i = 0;
>> +
>> + if (!asdl->subdev) {
>> + v4l2_err(vpif_dev->driver,
>> +  "%s(): Subdevice driver hasn't set subdev pointer!\n",
>> + __func__);
>> + return -EINVAL;
>> + }
>> + v4l2_info(&vpif_obj.v4l2_dev, "registered sub device %s\n",
>> +  asdl->subdev->name);
>
> This v4l2_info shouldn't be necessary: when the subdev is loaded it will 
> already
> report that it is registered, so this would just duplicate things.
>
Ok

>> +
>> + for (i = 0; i < vpif_obj.config->subdev_count; i++)
>> + if (!strcmp(vpif_obj.config->subdev_info[i].name,
>> + asdl->subdev->name)) {
>> + vpif_obj.sd[i] = asdl->subdev;
>> + break;
>> + }
>> +
>> + if (i >= vpif_obj.config->subdev_count)
>> + return -EINVAL;
>> +
>> + return 0;
>
> This function feels unnecessary. What you basically do here is to fill in
> the vpif_obj.sd[i] pointer. Wouldn't it be easier if we added a function to
> v4l2-device.c that will return a v4l2_subdev pointer based on the subdev name
> or possibly that of a struct v4l2_async_hw_device by walking the subdevice
> list that is stored in v4l2_device?
>
> Then you could do something like this in vpif_probe_complete:
>
> for (i = 0; i < vpif_obj.config->subdev_count; i++)
> vpif_obj.sd[i] = v4l2_device_get_subdev_by_name(v4l2_dev,
> vpif_obj.config->subdev_info[i].name);
>
> and there would be no need for a bound callback.
>
> Passing a struct v4l2_async_hw_device can be useful too: then you can
> walk the list of subdevs passed in struct v4l2_async_notifier and you
> don't need to fiddle with subdev names.
>
> It's just a suggestion, but I think it will improve the code as the control
> flow is more logical that way (async callbacks are always harder to 
> understand).
>
the bound callback, is being called on the subdev registration, the driver
is designed in such a way that there is subdev list and input list, and
each input may or may not have a subdev associated with it, when a input is
selected looping through the subdev list the appropriate is choose,
this was done by you :), the above code adds the subdev pointer in appropriate
index.  To do this the bound callback would be required.

The second member of bound ie, asdl itself has pointer to subdev, so there isnt
a necessity to have a function returning a subdev by matching a name.

>> +}
>> +
>> +static int vpif_probe_complete(void)
>> +{
>> + struct common_obj *common;
>> + struct channel_obj *ch;
>> + int i, j, err, k;
>> +
>> + for (j = 0; j < VPIF_CAPTURE_MAX_DEVICES; j++) {
>> + ch = vpif_obj.dev[j];
>> + ch->channel_id = j;
>> + common = &(ch->common[VPIF_VIDEO_INDEX]);
>> + spin_lock_init(&common->irqlock);
>> + mutex_init(&common->lock);
>> + ch->video_dev->lock = &common->lock;
>> + /* Initialize prio member of channel object */
>> + v4l2_prio_init(&ch->prio);
>> + video_set_drvdata(ch->video_dev, ch);
>> +
>> + /* select input 0 */
>> + err = vpif_set_input(vpif_obj.conf

[PATCH] media_build: enable em28xx-dvb again for old kernels

2013-01-09 Thread Gianluca Gennari
The em28xx-dvb driver was disabled for old kernels due to lack of support
for gpio_request_one() required by LNA control in the PCTV290e driver.
Instead, this patch introduces a tiny backport patch that disables LNA
control for the PCTV290e USB stick.
The PCTV290e works fine with LNA disabled, and all the other em28xx-dvb
devices can be used again with old kernels.

Signed-off-by: Gianluca Gennari 
---
 backports/backports.txt |  1 +
 backports/v2.6.33_no_gpio_request_one.patch | 25 +
 v4l/versions.txt|  2 --
 3 files changed, 26 insertions(+), 2 deletions(-)
 create mode 100644 backports/v2.6.33_no_gpio_request_one.patch

diff --git a/backports/backports.txt b/backports/backports.txt
index 73ecbf6..f21cd53 100644
--- a/backports/backports.txt
+++ b/backports/backports.txt
@@ -60,6 +60,7 @@ add v2.6.34_fix_define_warnings.patch
 [2.6.33]
 add v2.6.33_input_handlers_are_int.patch
 add v2.6.33_pvrusb2_sysfs.patch
+add v2.6.33_no_gpio_request_one.patch
 
 [2.6.32]
 add v2.6.32_kfifo.patch
diff --git a/backports/v2.6.33_no_gpio_request_one.patch 
b/backports/v2.6.33_no_gpio_request_one.patch
new file mode 100644
index 000..a114a6d
--- /dev/null
+++ b/backports/v2.6.33_no_gpio_request_one.patch
@@ -0,0 +1,25 @@
+---
+ drivers/media/usb/em28xx/em28xx-dvb.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/usb/em28xx/em28xx-dvb.c
 b/drivers/media/usb/em28xx/em28xx-dvb.c
+@@ -672,7 +672,7 @@ static int em28xx_pctv_290e_set_lna(struct dvb_frontend 
*fe)
+ {
+   struct dtv_frontend_properties *c = &fe->dtv_property_cache;
+   struct em28xx *dev = fe->dvb->priv;
+-#ifdef CONFIG_GPIOLIB
++#if 0
+   struct em28xx_dvb *dvb = dev->dvb;
+   int ret;
+   unsigned long flags;
+@@ -1104,7 +1104,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
+   goto out_free;
+   }
+ 
+-#ifdef CONFIG_GPIOLIB
++#if 0
+   /* enable LNA for DVB-T, DVB-T2 and DVB-C */
+   result = gpio_request_one(dvb->lna_gpio,
+   GPIOF_OUT_INIT_LOW, NULL);
+
diff --git a/v4l/versions.txt b/v4l/versions.txt
index 406c8cf..0873c17 100644
--- a/v4l/versions.txt
+++ b/v4l/versions.txt
@@ -69,8 +69,6 @@ VIDEO_MT9P031
 VIDEO_SMIAPP_PLL
 # Depends on VIDEO_SMIAPP_PLL and requires gpio_request_one
 VIDEO_SMIAPP
-# Depends on gpio functions/defines
-VIDEO_EM28XX_DVB
 
 [2.6.33]
 VIDEO_AK881X
-- 
1.8.0.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: [PATCH RFC 1/3] davinci: vpif: capture: add V4L2-async support

2013-01-09 Thread Hans Verkuil
On Wed 9 January 2013 14:41:25 Lad, Prabhakar wrote:
> Add support for asynchronous subdevice probing, using the v4l2-async API.
> The legacy synchronous mode is still supported too, which allows to
> gradually update drivers and platforms. The selected approach adds a
> notifier for each struct soc_camera_device instance, i.e. for each video
> device node, even when there are multiple such instances registered with a
> single soc-camera host simultaneously.

This comment was obviously copy-and-pasted from somewhere else :-)

> 
> Signed-off-by: Lad, Prabhakar 
> Cc: Guennadi Liakhovetski 
> Cc: Hans Verkuil 
> Cc: Laurent Pinchart 
> Cc: Sakari Ailus 
> Cc: Mauro Carvalho Chehab 
> ---
>  drivers/media/platform/davinci/vpif_capture.c |  171 
> ++---
>  drivers/media/platform/davinci/vpif_capture.h |2 +
>  include/media/davinci/vpif_types.h|2 +
>  3 files changed, 128 insertions(+), 47 deletions(-)
> 
> diff --git a/drivers/media/platform/davinci/vpif_capture.c 
> b/drivers/media/platform/davinci/vpif_capture.c
> index 5892d2b..a8b6588 100644
> --- a/drivers/media/platform/davinci/vpif_capture.c
> +++ b/drivers/media/platform/davinci/vpif_capture.c
> @@ -34,6 +34,8 @@
>  #include 
>  #include 
>  #include 
> +
> +#include 
>  #include 
>  #include 
>  #include 
> @@ -2054,6 +2056,96 @@ vpif_init_free_channel_objects:
>   return err;
>  }
>  
> +int vpif_async_bound(struct v4l2_async_notifier *notifier,
> + struct v4l2_async_subdev_list *asdl)
> +{
> + int i = 0;
> +
> + if (!asdl->subdev) {
> + v4l2_err(vpif_dev->driver,
> +  "%s(): Subdevice driver hasn't set subdev pointer!\n",
> + __func__);
> + return -EINVAL;
> + }
> + v4l2_info(&vpif_obj.v4l2_dev, "registered sub device %s\n",
> +  asdl->subdev->name);

This v4l2_info shouldn't be necessary: when the subdev is loaded it will already
report that it is registered, so this would just duplicate things.

> +
> + for (i = 0; i < vpif_obj.config->subdev_count; i++)
> + if (!strcmp(vpif_obj.config->subdev_info[i].name,
> + asdl->subdev->name)) {
> + vpif_obj.sd[i] = asdl->subdev;
> + break;
> + }
> +
> + if (i >= vpif_obj.config->subdev_count)
> + return -EINVAL;
> +
> + return 0;

This function feels unnecessary. What you basically do here is to fill in
the vpif_obj.sd[i] pointer. Wouldn't it be easier if we added a function to
v4l2-device.c that will return a v4l2_subdev pointer based on the subdev name
or possibly that of a struct v4l2_async_hw_device by walking the subdevice
list that is stored in v4l2_device?

Then you could do something like this in vpif_probe_complete:

for (i = 0; i < vpif_obj.config->subdev_count; i++)
vpif_obj.sd[i] = v4l2_device_get_subdev_by_name(v4l2_dev,
vpif_obj.config->subdev_info[i].name);

and there would be no need for a bound callback.

Passing a struct v4l2_async_hw_device can be useful too: then you can
walk the list of subdevs passed in struct v4l2_async_notifier and you
don't need to fiddle with subdev names.

It's just a suggestion, but I think it will improve the code as the control
flow is more logical that way (async callbacks are always harder to understand).

> +}
> +
> +static int vpif_probe_complete(void)
> +{
> + struct common_obj *common;
> + struct channel_obj *ch;
> + int i, j, err, k;
> +
> + for (j = 0; j < VPIF_CAPTURE_MAX_DEVICES; j++) {
> + ch = vpif_obj.dev[j];
> + ch->channel_id = j;
> + common = &(ch->common[VPIF_VIDEO_INDEX]);
> + spin_lock_init(&common->irqlock);
> + mutex_init(&common->lock);
> + ch->video_dev->lock = &common->lock;
> + /* Initialize prio member of channel object */
> + v4l2_prio_init(&ch->prio);
> + video_set_drvdata(ch->video_dev, ch);
> +
> + /* select input 0 */
> + err = vpif_set_input(vpif_obj.config, ch, 0);
> + if (err)
> + goto probe_out;
> +
> + err = video_register_device(ch->video_dev,
> + VFL_TYPE_GRABBER, (j ? 1 : 0));
> + if (err)
> + goto probe_out;
> + }
> +
> + v4l2_info(&vpif_obj.v4l2_dev, "VPIF capture driver initialized\n");
> + return 0;
> +
> +probe_out:
> + for (k = 0; k < j; k++) {
> + /* Get the pointer to the channel object */
> + ch = vpif_obj.dev[k];
> + /* Unregister video device */
> + video_unregister_device(ch->video_dev);
> + }
> + kfree(vpif_obj.sd);
> + for (i = 0; i < VPIF_CAPTURE_MAX_DEVICES; i++) {
> + ch = vpif_obj.dev[i];
> + /* Note: does nothing if ch->v

Re: [PATCH RFCv9 1/4] dvb: Add DVBv5 stats properties for Quality of Service

2013-01-09 Thread Mauro Carvalho Chehab
Em Wed, 09 Jan 2013 11:02:23 +
Simon Farnsworth  escreveu:

> On Tuesday 8 January 2013 18:28:53 Devin Heitmueller wrote:
> > On Tue, Jan 8, 2013 at 6:18 PM, Simon Farnsworth
> >  wrote:
> > > The wireless folk use dBm (reference point 1 milliwatt), as that's the
> > > reference point used in the 802.11 standard.
> > >
> > > Perhaps we need an extra FE_SCALE constant; FE_SCALE_DECIBEL has no 
> > > reference
> > > point (so suitable for carrier to noise etc, or for when the reference 
> > > point
> > > is unknown), and FE_SCALE_DECIBEL_MILLIWATT for when the reference point 
> > > is
> > > 1mW, so that frontends report in dBm?
> > >
> > > Note that if the frontend internally uses a different reference point, the
> > > conversion is always going to be adding or subtracting a constant.
> > 
> > Hi Simon,
> > 
> > Probably the biggest issue you're going to have is that very few of
> > the consumer-grade demodulators actually report data in that format.
> > And only a small subset of those actually provide the documentation in
> > their datasheet.
> > 
> 
> My specific concern is that we already see people complaining that their cable
> system or aerial installer's meter comes up with one number, and our
> documentation has completely different numbers. When we dig, this usually
> turns out to be because our documentation is in dBm, while their installer is
> using dBmV or dBµW, and no-one at the customer site knows the differences.
> 
> If consumer demods don't report in a dB scale at all, we should drop dB as a
> unit; if they do report in a true dB scale, but the reference point is
> normally not documented, we need some way to distinguish demods where the
> reference point is unknown, and demods where someone has taken the time to
> find the reference point (which can be done with a signal generator).
> 
> This is sounding more and more like an argument for adding
> FE_SCALE_DECIBEL_MILLIWATT - it gives those applications that care a way to
> tell the user that the signal strength reading from the application should
> match up to the signal strength reading on your installer's kit. Said
> applications could even choose to do the conversions for you, giving you all
> four commonly seen units (dBm, dBmV at 50Ω, dBmV at 75Ω, dBµW).
> 
> > For that matter, even the SNR field being reported in dB isn't going
> > to allow you to reliably compare across different demodulator chips.
> > If demod X says 28.3 dB and demod Y says 29.2 dB, that doesn't
> > really mean demod Y performs better - just that it's reporting a
> > better number.  However it does allow you to compare the demod
> > against itself either across multiple frequencies or under different
> > signal conditions - which is what typical users really care about.
> 
> I'm not expecting people to compare across demods - I only care about the
> case where a user has got in a professional installer to help with their
> setup. The problem I want to avoid is a Linux application saying "-48 dB
> signal strength, 15 dB CNR", and the installer's kit saying "60 dBuV signal
> strength, 20 dB CNR", when we have enough information for the Linux
> application to say "-48 dBm (60 dBuV at 75Ω), 15 dB CNR", cueing the
> professional to remember that not all dB use the same reference point, and
> from there into accepting that Linux is reporting a similar signal strength
> and CNR to his kit.
> 
> This also has implications for things like VDR - if the scale is
> FE_SCALE_DECIBEL but the measurement is absolute, the application probably
> doesn't want to report the measurement as a dB measure, but as an arbitrary
> scale; again, you don't want the application saying "50 dB", when the
> professional installer tells you that you have "0 dBuV".

Yes, it makes sense to document that the signal strength should be reported
on either dBm or dBµW, if the scale is FE_SCALE_DECIBEL. I prefer to specify
it in terms of Watt (or a submultiple) than in terms of voltage/impedance, as
different Countries use different impedances on DTV cabling (typically,
50Ω or 75Ω).

So, either dBm or dBµW works for me. As you said, applications can convert
between those mesures as they wish, by simply adding some constant when
displaying the power measure.

As the wifi subsytem use dBm, I vote for using dBm for the signal measure
at the subsystem (actually, 0.1 dBm).

Comments?

Regards,
Mauro



-- 

Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] Initial scan files troubles and brainstorming

2013-01-09 Thread Oliver Schinagl

On 09-01-13 16:01, Mauro Carvalho Chehab wrote:

Em Wed, 09 Jan 2013 15:44:30 +0100
Oliver Schinagl  escreveu:


Mauro,

On 09-01-13 15:37, Mauro Carvalho Chehab wrote:

Hi Oliver,

Em Wed, 09 Jan 2013 13:24:13 +0100
Oliver Schinagl  escreveu:


If I understood it right, you want to split the scan files into a separate
git tree and maintain it, right?

I'm ok with that.



I also migrated the dvb-apps changesets with the tables to:
http://git.linuxtv.org/dtv-scan-tables.git Feel free to maintain it.

Thank you, this will be the new name for it (I will locally rename it)
and try my bestest to maintain it :)

I will put a mention on the wiki 'how to submit scanfiles' (via the ML
with tags in subject/pull requests) so people have a clear way how to
submit them and I have a clear way to find them.

Great!


You should also have access to the dvb-apps hg tree. IMHO, it makes sense
to remove the files from there, and add a pointer there (README?) to the
new tree.

I will remove the scanfiles from there, add/edit the readme that the
tree is a dependancy?

Please do it. You'll likely need to also add there at the tree a Makefile
with an install target, in order to help distros to package it, and
remove the corresponding scan files install Makefile targets at dvb-apps.

Will do as soon as I figure out how to gain access and and configure my 
local git install. I'm quite new to this multiple private key stuff and 
can't get it to work for now (i'll look into that for now). I feel 
stupid enough for asking :p


I'll first add my local patches and then see how i can 'fix' dvb-apps to 
remove the old stuff.

--
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] Initial scan files troubles and brainstorming

2013-01-09 Thread Mauro Carvalho Chehab
Em Wed, 09 Jan 2013 15:44:30 +0100
Oliver Schinagl  escreveu:

> Mauro,
> 
> On 09-01-13 15:37, Mauro Carvalho Chehab wrote:
> > Hi Oliver,
> >
> > Em Wed, 09 Jan 2013 13:24:13 +0100
> > Oliver Schinagl  escreveu:
> >
> >> If I understood it right, you want to split the scan files into a 
> >> separate
> >> git tree and maintain it, right?
> >>
> >> I'm ok with that.
> 
> > I also migrated the dvb-apps changesets with the tables to: 
> > http://git.linuxtv.org/dtv-scan-tables.git Feel free to maintain it.
> Thank you, this will be the new name for it (I will locally rename it) 
> and try my bestest to maintain it :)
> 
> I will put a mention on the wiki 'how to submit scanfiles' (via the ML 
> with tags in subject/pull requests) so people have a clear way how to 
> submit them and I have a clear way to find them.

Great!

> >
> > You should also have access to the dvb-apps hg tree. IMHO, it makes sense
> > to remove the files from there, and add a pointer there (README?) to the
> > new tree.
> I will remove the scanfiles from there, add/edit the readme that the 
> tree is a dependancy?

Please do it. You'll likely need to also add there at the tree a Makefile
with an install target, in order to help distros to package it, and
remove the corresponding scan files install Makefile targets at dvb-apps.

-- 

Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


kaffeine.kde.org/scanfile.dvb.qz is obsolete [was: [RFC] Initial scan files troubles and brainstorming]

2013-01-09 Thread Jiri Slaby
On 01/09/2013 03:41 PM, Mauro Carvalho Chehab wrote:
> Christoph,
> 
> Thank you for all the hard work over all those years!

Yeah, I second this.

I have a note though. Who is going to fix the URL in kaffeine? And how
often is kaffeine.kde.org/scanfile.dvb.qz updated? Is this done
automatically? As it is pretty outdated (9/2011), I don't think it is...
Should this be moved somewhere else?

thanks,
-- 
js
--
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] Initial scan files troubles and brainstorming

2013-01-09 Thread Oliver Schinagl

Mauro,

On 09-01-13 15:37, Mauro Carvalho Chehab wrote:

Hi Oliver,

Em Wed, 09 Jan 2013 13:24:13 +0100
Oliver Schinagl  escreveu:


If I understood it right, you want to split the scan files into a separate
git tree and maintain it, right?

I'm ok with that.


I also migrated the dvb-apps changesets with the tables to: 
http://git.linuxtv.org/dtv-scan-tables.git Feel free to maintain it.
Thank you, this will be the new name for it (I will locally rename it) 
and try my bestest to maintain it :)


I will put a mention on the wiki 'how to submit scanfiles' (via the ML 
with tags in subject/pull requests) so people have a clear way how to 
submit them and I have a clear way to find them.




You should also have access to the dvb-apps hg tree. IMHO, it makes sense
to remove the files from there, and add a pointer there (README?) to the
new tree.
I will remove the scanfiles from there, add/edit the readme that the 
tree is a dependancy?


Regards,
Mauro.


Oliver
--
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] Initial scan files troubles and brainstorming

2013-01-09 Thread Mauro Carvalho Chehab
Em Wed, 9 Jan 2013 06:08:44 -0500
Michael Krufky  escreveu:

> On Wed, Jan 9, 2013 at 5:41 AM, Mauro Carvalho Chehab
>  wrote:
> > Em Wed, 09 Jan 2013 10:43:23 +0100
> > Oliver Schinagl  escreveu:
> >
> >> On 08-01-13 21:01, Johannes Stezenbach wrote:
> >> > On Mon, Jan 07, 2013 at 01:48:29PM +0100, Oliver Schinagl wrote:
> >> >> On 07-01-13 11:46, Jiri Slaby wrote:
> >> >>> On 12/18/2012 11:01 PM, Oliver Schinagl wrote:
> >>  Unfortunatly, I have had zero replies.
> >> >>> Hmm, it's sad there is a silence in this thread from linux-media guys 
> >> >>> :/.
> >> >> In their defense, they are very very busy people ;) chatter on this
> >> >> thread does bring it up however.
> >> > This is such a nice thing to say :-)
> >> > But it might be that Mauro thinks the dvb-apps maintainer should
> >> > respond, but apparently there is no dvb-apps maintainer...
> >> > Maybe you should ask Mauro directly to create an account for you
> >> > to implement what you proposed.
> >> Mauro is CC'ed and I'd ask of course for this (I kinda did) but who
> >> decides what I suggested is a good idea? I personally obviously think it
> >> is ;) and even more so if dvb-apps are unmaintained.
> >>
> >> I guess the question now becomes 'who okay's this change? Who says
> >> 'okay, lets do it this way. Once that is answered we can go from there ;)
> >
> > If I understood it right, you want to split the scan files into a separate
> > git tree and maintain it, right?
> >
> > I'm ok with that.
> >
> > Regards,
> > Mauro
> 
> As a DVB maintainer, I am OK with this as well - It does indeed make
> sense to separate the c code sources from the regional frequency
> tables, and I'm sure we'll see much benefit from this change.

Done. I created a tree for Oliver to maintain it and an account for him.
I also created a new tree with just the DVB table commits to:
http://git.linuxtv.org/dtv-scan-tables.git

I kept there both szap and scan files, although maybe it makes sense to
drop the szap table (channels-conf dir). It also makes sense to drop the
tables from the dvb-apps tree, to avoid duplicated stuff, and to avoid troubles
on distros that may want to have both packages.

Anyway, as Oliver has now access to both trees, I'll let him to handle
and maintain it.

Christoph,

Thank you for all the hard work over all those years!

Happy new year,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH RFC 2/3] tvp514x: support asynchronous probing

2013-01-09 Thread Lad, Prabhakar
Both synchronous and asynchronous tvp514x subdevice probing is supported by
this patch.

Signed-off-by: Lad, Prabhakar 
Cc: Guennadi Liakhovetski 
Cc: Laurent Pinchart 
Cc: Hans Verkuil 
Cc: Sakari Ailus 
Cc: Mauro Carvalho Chehab 
---
 drivers/media/i2c/tvp514x.c |   20 ++--
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/drivers/media/i2c/tvp514x.c b/drivers/media/i2c/tvp514x.c
index aa94ebc..a4f0a70 100644
--- a/drivers/media/i2c/tvp514x.c
+++ b/drivers/media/i2c/tvp514x.c
@@ -34,6 +34,7 @@
 #include 
 #include 
 
+#include 
 #include 
 #include 
 #include 
@@ -102,6 +103,7 @@ struct tvp514x_decoder {
struct v4l2_ctrl_handler hdl;
struct tvp514x_reg tvp514x_regs[ARRAY_SIZE(tvp514x_reg_list_default)];
const struct tvp514x_platform_data *pdata;
+   struct v4l2_async_subdev_list   asdl;
 
int ver;
int streaming;
@@ -941,22 +943,22 @@ tvp514x_probe(struct i2c_client *client, const struct 
i2c_device_id *id)
 {
struct tvp514x_decoder *decoder;
struct v4l2_subdev *sd;
+   int ret;
 
/* Check if the adapter supports the needed features */
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
return -EIO;
 
-   if (!client->dev.platform_data) {
-   v4l2_err(client, "No platform data!!\n");
-   return -ENODEV;
-   }
-
decoder = devm_kzalloc(&client->dev, sizeof(*decoder), GFP_KERNEL);
if (!decoder)
return -ENOMEM;
 
/* Initialize the tvp514x_decoder with default configuration */
*decoder = tvp514x_dev;
+   if (!client->dev.platform_data) {
+   v4l2_err(client, "No platform data!!\n");
+   return -EPROBE_DEFER;
+   }
/* Copy default register configuration */
memcpy(decoder->tvp514x_regs, tvp514x_reg_list_default,
sizeof(tvp514x_reg_list_default));
@@ -980,6 +982,11 @@ tvp514x_probe(struct i2c_client *client, const struct 
i2c_device_id *id)
 
/* Register with V4L2 layer as slave device */
sd = &decoder->sd;
+   decoder->asdl.subdev = &decoder->sd;
+   decoder->asdl.dev = &client->dev;
+   ret = v4l2_async_subdev_bind(&decoder->asdl);
+   if (ret < 0)
+   return ret;
v4l2_i2c_subdev_init(sd, client, &tvp514x_ops);
 
v4l2_ctrl_handler_init(&decoder->hdl, 5);
@@ -1004,7 +1011,7 @@ tvp514x_probe(struct i2c_client *client, const struct 
i2c_device_id *id)
 
v4l2_info(sd, "%s decoder driver registered !!\n", sd->name);
 
-   return 0;
+   return v4l2_async_subdev_bound(&decoder->asdl);
 
 }
 
@@ -1020,6 +1027,7 @@ static int tvp514x_remove(struct i2c_client *client)
struct v4l2_subdev *sd = i2c_get_clientdata(client);
struct tvp514x_decoder *decoder = to_decoder(sd);
 
+   v4l2_async_subdev_unbind(&decoder->asdl);
v4l2_device_unregister_subdev(sd);
v4l2_ctrl_handler_free(&decoder->hdl);
return 0;
-- 
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


[PATCH RFC 3/3] ARM: da850/omap-l138: vpif capture convert to asynchronously register of subdev

2013-01-09 Thread Lad, Prabhakar
Register the tvp514x decoder devices directly in board platform
data instead of letting the vpif capture driver register them at
their run-time. This uses the V4L2 asynchronous subdevice probing capability.

Signed-off-by: Lad, Prabhakar 
Cc: Sekhar Nori 
---
 arch/arm/mach-davinci/board-da850-evm.c |   57 +++
 1 files changed, 50 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-davinci/board-da850-evm.c 
b/arch/arm/mach-davinci/board-da850-evm.c
index 0299915..089c127 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -49,6 +49,7 @@
 
 #include 
 #include 
+#include 
 
 #define DA850_EVM_PHY_ID   "davinci_mdio-0:00"
 #define DA850_LCD_PWR_PIN  GPIO_TO_PIN(2, 8)
@@ -732,6 +733,12 @@ static struct pca953x_platform_data 
da850_evm_bb_expander_info = {
.names  = da850_evm_bb_exp,
 };
 
+static struct tvp514x_platform_data tvp5146_pdata = {
+   .clk_polarity = 0,
+   .hs_polarity  = 1,
+   .vs_polarity  = 1,
+};
+
 static struct i2c_board_info __initdata da850_evm_i2c_devices[] = {
{
I2C_BOARD_INFO("tlv320aic3x", 0x18),
@@ -744,6 +751,14 @@ static struct i2c_board_info __initdata 
da850_evm_i2c_devices[] = {
I2C_BOARD_INFO("tca6416", 0x21),
.platform_data = &da850_evm_bb_expander_info,
},
+   {
+   I2C_BOARD_INFO("tvp5146", 0x5c),
+   .platform_data = &tvp5146_pdata,
+   },  {
+   I2C_BOARD_INFO("tvp5146", 0x5d),
+   .platform_data = &tvp5146_pdata,
+   },
+
 };
 
 static struct davinci_i2c_platform_data da850_evm_i2c_0_pdata = {
@@ -1170,15 +1185,10 @@ static __init int da850_evm_init_cpufreq(void) { return 
0; }
 
 #if defined(CONFIG_DA850_UI_SD_VIDEO_PORT)
 
-#define TVP5147_CH0"tvp514x-0"
-#define TVP5147_CH1"tvp514x-1"
+#define TVP5147_CH0"tvp514x 1-005d"
+#define TVP5147_CH1"tvp514x 1-005c"
 
 /* VPIF capture configuration */
-static struct tvp514x_platform_data tvp5146_pdata = {
-   .clk_polarity = 0,
-   .hs_polarity  = 1,
-   .vs_polarity  = 1,
-};
 
 #define TVP514X_STD_ALL (V4L2_STD_NTSC | V4L2_STD_PAL)
 
@@ -1229,6 +1239,37 @@ static struct vpif_subdev_info 
da850_vpif_capture_sdev_info[] = {
},
 };
 
+static struct v4l2_async_subdev tvp1_sd = {
+   .hw = {
+   .bus_type = V4L2_ASYNC_BUS_I2C,
+   .match.i2c = {
+   .adapter_id = 1,
+   .address = 0x5c,
+   },
+   },
+};
+
+static struct v4l2_async_subdev tvp2_sd = {
+   .hw = {
+   .bus_type = V4L2_ASYNC_BUS_I2C,
+   .match.i2c = {
+   .adapter_id = 1,
+   .address = 0x5d,
+   },
+   },
+};
+
+static struct v4l2_async_subdev *vpif_capture_async_subdevs[] = {
+   /* Single 2-element group */
+   &tvp1_sd,
+   &tvp2_sd,
+};
+
+static int vpif_capture_async_subdev_sizes[] = {
+   ARRAY_SIZE(vpif_capture_async_subdevs),
+   0,
+};
+
 static struct vpif_capture_config da850_vpif_capture_config = {
.subdev_info = da850_vpif_capture_sdev_info,
.subdev_count = ARRAY_SIZE(da850_vpif_capture_sdev_info),
@@ -1253,6 +1294,8 @@ static struct vpif_capture_config 
da850_vpif_capture_config = {
},
},
.card_name = "DA850/OMAP-L138 Video Capture",
+   .asd = vpif_capture_async_subdevs,
+   .asd_sizes = vpif_capture_async_subdev_sizes,
 };
 
 /* VPIF display configuration */
-- 
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


[PATCH RFC 1/3] davinci: vpif: capture: add V4L2-async support

2013-01-09 Thread Lad, Prabhakar
Add support for asynchronous subdevice probing, using the v4l2-async API.
The legacy synchronous mode is still supported too, which allows to
gradually update drivers and platforms. The selected approach adds a
notifier for each struct soc_camera_device instance, i.e. for each video
device node, even when there are multiple such instances registered with a
single soc-camera host simultaneously.

Signed-off-by: Lad, Prabhakar 
Cc: Guennadi Liakhovetski 
Cc: Hans Verkuil 
Cc: Laurent Pinchart 
Cc: Sakari Ailus 
Cc: Mauro Carvalho Chehab 
---
 drivers/media/platform/davinci/vpif_capture.c |  171 ++---
 drivers/media/platform/davinci/vpif_capture.h |2 +
 include/media/davinci/vpif_types.h|2 +
 3 files changed, 128 insertions(+), 47 deletions(-)

diff --git a/drivers/media/platform/davinci/vpif_capture.c 
b/drivers/media/platform/davinci/vpif_capture.c
index 5892d2b..a8b6588 100644
--- a/drivers/media/platform/davinci/vpif_capture.c
+++ b/drivers/media/platform/davinci/vpif_capture.c
@@ -34,6 +34,8 @@
 #include 
 #include 
 #include 
+
+#include 
 #include 
 #include 
 #include 
@@ -2054,6 +2056,96 @@ vpif_init_free_channel_objects:
return err;
 }
 
+int vpif_async_bound(struct v4l2_async_notifier *notifier,
+   struct v4l2_async_subdev_list *asdl)
+{
+   int i = 0;
+
+   if (!asdl->subdev) {
+   v4l2_err(vpif_dev->driver,
+"%s(): Subdevice driver hasn't set subdev pointer!\n",
+   __func__);
+   return -EINVAL;
+   }
+   v4l2_info(&vpif_obj.v4l2_dev, "registered sub device %s\n",
+asdl->subdev->name);
+
+   for (i = 0; i < vpif_obj.config->subdev_count; i++)
+   if (!strcmp(vpif_obj.config->subdev_info[i].name,
+   asdl->subdev->name)) {
+   vpif_obj.sd[i] = asdl->subdev;
+   break;
+   }
+
+   if (i >= vpif_obj.config->subdev_count)
+   return -EINVAL;
+
+   return 0;
+}
+
+static int vpif_probe_complete(void)
+{
+   struct common_obj *common;
+   struct channel_obj *ch;
+   int i, j, err, k;
+
+   for (j = 0; j < VPIF_CAPTURE_MAX_DEVICES; j++) {
+   ch = vpif_obj.dev[j];
+   ch->channel_id = j;
+   common = &(ch->common[VPIF_VIDEO_INDEX]);
+   spin_lock_init(&common->irqlock);
+   mutex_init(&common->lock);
+   ch->video_dev->lock = &common->lock;
+   /* Initialize prio member of channel object */
+   v4l2_prio_init(&ch->prio);
+   video_set_drvdata(ch->video_dev, ch);
+
+   /* select input 0 */
+   err = vpif_set_input(vpif_obj.config, ch, 0);
+   if (err)
+   goto probe_out;
+
+   err = video_register_device(ch->video_dev,
+   VFL_TYPE_GRABBER, (j ? 1 : 0));
+   if (err)
+   goto probe_out;
+   }
+
+   v4l2_info(&vpif_obj.v4l2_dev, "VPIF capture driver initialized\n");
+   return 0;
+
+probe_out:
+   for (k = 0; k < j; k++) {
+   /* Get the pointer to the channel object */
+   ch = vpif_obj.dev[k];
+   /* Unregister video device */
+   video_unregister_device(ch->video_dev);
+   }
+   kfree(vpif_obj.sd);
+   for (i = 0; i < VPIF_CAPTURE_MAX_DEVICES; i++) {
+   ch = vpif_obj.dev[i];
+   /* Note: does nothing if ch->video_dev == NULL */
+   video_device_release(ch->video_dev);
+   }
+   v4l2_device_unregister(&vpif_obj.v4l2_dev);
+
+   return err;
+}
+
+int vpif_async_complete(struct v4l2_async_notifier *notifier)
+{
+   return vpif_probe_complete();
+}
+
+void vpif_async_unbind(struct v4l2_async_notifier *notifier,
+   struct v4l2_async_subdev_list *asdl)
+{
+   /*FIXME: Do we need this callback ? */
+   v4l2_info(&vpif_obj.v4l2_dev, "unregistered sub device %s\n",
+asdl->subdev->name);
+   return;
+}
+
 /**
  * vpif_probe : This function probes the vpif capture driver
  * @pdev: platform device pointer
@@ -2064,12 +2156,10 @@ vpif_init_free_channel_objects:
 static __init int vpif_probe(struct platform_device *pdev)
 {
struct vpif_subdev_info *subdevdata;
-   struct vpif_capture_config *config;
-   int i, j, k, err;
+   int i, j, err;
int res_idx = 0;
struct i2c_adapter *i2c_adap;
struct channel_obj *ch;
-   struct common_obj *common;
struct video_device *vfd;
struct resource *res;
int subdev_count;
@@ -2146,10 +2236,9 @@ static __init int vpif_probe(struct platform_device 
*pdev)
}
}
 
-   i2c_adap = i2c_get_adapter(1);
-   config = pdev->dev.platform_data;
+   vpif_obj.config = pdev->dev.

[PATCH RFC 0/3] vpif capture support for async subdevice probing

2013-01-09 Thread Lad, Prabhakar
This patch series adds support for vpif capture driver to support
asynchronously register subdevices. The second patch add support for
tvp514x decoder to support v4l-async and the last patch adds support
for da850 evm to support v4l-async for vpif capture.

This patch is based on v4l2-async patch
(http://www.spinics.net/lists/linux-media/msg58420.html) from Guennadi.

Need for this support:
Currently bridge device drivers register devices for all subdevices 
synchronously, tupically, during their probing. E.g. if an I2C CMOS sensor 
is attached to a video bridge device, the bridge driver will create an I2C 
device and wait for the respective I2C driver to probe. This makes linking 
of devices straight forward, but this approach cannot be used with 
intrinsically asynchronous and unordered device registration systems like 
the Flattened Device Tree.

Similar impletation is to be done for vpif disaply, based on review comments
on this series.

Lad, Prabhakar (3):
  davinci: vpif: capture: add V4L2-async support
  tvp514x: support asynchronous probing
  ARM: da850/omap-l138: vpif capture convert to asynchronously register
of subdev

 arch/arm/mach-davinci/board-da850-evm.c   |   57 +++-
 drivers/media/i2c/tvp514x.c   |   20 ++-
 drivers/media/platform/davinci/vpif_capture.c |  171 ++---
 drivers/media/platform/davinci/vpif_capture.h |2 +
 include/media/davinci/vpif_types.h|2 +
 5 files changed, 192 insertions(+), 60 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


Re: [PATCH 1/3] pci/cx88: use IS_ENABLED() macro

2013-01-09 Thread Hans Verkuil
On Wed 9 January 2013 13:32:12 Peter Senna Tschudin wrote:
> replace:
>  #if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
> with:
>  #if IS_ENABLED(CONFIG_VIDEO_CX88_DVB)
> 
> This change was made for: CONFIG_VIDEO_CX88_DVB,
> CONFIG_VIDEO_CX88_BLACKBIRD, CONFIG_VIDEO_CX88_VP3054
> 
> Reported-by: Mauro Carvalho Chehab 
> Signed-off-by: Peter Senna Tschudin 

Acked-by: Hans Verkuil 

Regards,

Hans

> ---
>  drivers/media/pci/cx88/cx88.h | 10 --
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/media/pci/cx88/cx88.h b/drivers/media/pci/cx88/cx88.h
> index ba0dba4..feff53c 100644
> --- a/drivers/media/pci/cx88/cx88.h
> +++ b/drivers/media/pci/cx88/cx88.h
> @@ -363,7 +363,7 @@ struct cx88_core {
>   unsigned int   tuner_formats;
>  
>   /* config info -- dvb */
> -#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
> +#if IS_ENABLED(CONFIG_VIDEO_CX88_DVB)
>   int(*prev_set_voltage)(struct dvb_frontend *fe, 
> fe_sec_voltage_t voltage);
>  #endif
>   void   (*gate_ctrl)(struct cx88_core  *core, int 
> open);
> @@ -562,8 +562,7 @@ struct cx8802_dev {
>  
>   /* for blackbird only */
>   struct list_head   devlist;
> -#if defined(CONFIG_VIDEO_CX88_BLACKBIRD) || \
> -defined(CONFIG_VIDEO_CX88_BLACKBIRD_MODULE)
> +#if IS_ENABLED(CONFIG_VIDEO_CX88_BLACKBIRD)
>   struct video_device*mpeg_dev;
>   u32mailbox;
>   intwidth;
> @@ -574,13 +573,12 @@ struct cx8802_dev {
>   struct cx2341x_handler cxhdl;
>  #endif
>  
> -#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
> +#if IS_ENABLED(CONFIG_VIDEO_CX88_DVB)
>   /* for dvb only */
>   struct videobuf_dvb_frontends frontends;
>  #endif
>  
> -#if defined(CONFIG_VIDEO_CX88_VP3054) || \
> -defined(CONFIG_VIDEO_CX88_VP3054_MODULE)
> +#if IS_ENABLED(CONFIG_VIDEO_CX88_VP3054)
>   /* For VP3045 secondary I2C bus support */
>   struct vp3054_i2c_state*vp3054;
>  #endif
> 
--
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 1/3] pci/cx88: use IS_ENABLED() macro

2013-01-09 Thread Peter Senna Tschudin
replace:
 #if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
with:
 #if IS_ENABLED(CONFIG_VIDEO_CX88_DVB)

This change was made for: CONFIG_VIDEO_CX88_DVB,
CONFIG_VIDEO_CX88_BLACKBIRD, CONFIG_VIDEO_CX88_VP3054

Reported-by: Mauro Carvalho Chehab 
Signed-off-by: Peter Senna Tschudin 
---
 drivers/media/pci/cx88/cx88.h | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/media/pci/cx88/cx88.h b/drivers/media/pci/cx88/cx88.h
index ba0dba4..feff53c 100644
--- a/drivers/media/pci/cx88/cx88.h
+++ b/drivers/media/pci/cx88/cx88.h
@@ -363,7 +363,7 @@ struct cx88_core {
unsigned int   tuner_formats;
 
/* config info -- dvb */
-#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
+#if IS_ENABLED(CONFIG_VIDEO_CX88_DVB)
int(*prev_set_voltage)(struct dvb_frontend *fe, 
fe_sec_voltage_t voltage);
 #endif
void   (*gate_ctrl)(struct cx88_core  *core, int 
open);
@@ -562,8 +562,7 @@ struct cx8802_dev {
 
/* for blackbird only */
struct list_head   devlist;
-#if defined(CONFIG_VIDEO_CX88_BLACKBIRD) || \
-defined(CONFIG_VIDEO_CX88_BLACKBIRD_MODULE)
+#if IS_ENABLED(CONFIG_VIDEO_CX88_BLACKBIRD)
struct video_device*mpeg_dev;
u32mailbox;
intwidth;
@@ -574,13 +573,12 @@ struct cx8802_dev {
struct cx2341x_handler cxhdl;
 #endif
 
-#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
+#if IS_ENABLED(CONFIG_VIDEO_CX88_DVB)
/* for dvb only */
struct videobuf_dvb_frontends frontends;
 #endif
 
-#if defined(CONFIG_VIDEO_CX88_VP3054) || \
-defined(CONFIG_VIDEO_CX88_VP3054_MODULE)
+#if IS_ENABLED(CONFIG_VIDEO_CX88_VP3054)
/* For VP3045 secondary I2C bus support */
struct vp3054_i2c_state*vp3054;
 #endif
-- 
1.7.11.7

--
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 3/3] pci/saa7134: use IS_ENABLED() macro

2013-01-09 Thread Peter Senna Tschudin
replace:
 #if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
with:
 #if IS_ENABLED(CONFIG_VIDEO_CX88_DVB)

This change was made for: CONFIG_VIDEO_SAA7134_DVB

Reported-by: Mauro Carvalho Chehab 
Signed-off-by: Peter Senna Tschudin 
---
 drivers/media/pci/saa7134/saa7134.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/pci/saa7134/saa7134.h 
b/drivers/media/pci/saa7134/saa7134.h
index 0a3feaa..ace44fd 100644
--- a/drivers/media/pci/saa7134/saa7134.h
+++ b/drivers/media/pci/saa7134/saa7134.h
@@ -42,7 +42,7 @@
 #include 
 #include 
 #include 
-#if defined(CONFIG_VIDEO_SAA7134_DVB) || 
defined(CONFIG_VIDEO_SAA7134_DVB_MODULE)
+#if IS_ENABLED(CONFIG_VIDEO_SAA7134_DVB)
 #include 
 #endif
 
@@ -644,7 +644,7 @@ struct saa7134_dev {
struct work_struct empress_workqueue;
intempress_started;
 
-#if defined(CONFIG_VIDEO_SAA7134_DVB) || 
defined(CONFIG_VIDEO_SAA7134_DVB_MODULE)
+#if IS_ENABLED(CONFIG_VIDEO_SAA7134_DVB)
/* SAA7134_MPEG_DVB only */
struct videobuf_dvb_frontends frontends;
int (*original_demod_sleep)(struct dvb_frontend *fe);
-- 
1.7.11.7

--
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 2/3] pci/ttpci/av7110.c: use IS_ENABLED() macro

2013-01-09 Thread Peter Senna Tschudin
replace:
 #if defined(CONFIG_INPUT_EVDEV) || defined(CONFIG_INPUT_EVDEV_MODULE)
with:
 #if IS_ENABLED(CONFIG_INPUT_EVDEV)

This change was made for: CONFIG_INPUT_EVDEV, CONFIG_DVB_SP8870

Reported-by: Mauro Carvalho Chehab 
Signed-off-by: Peter Senna Tschudin 
---
 drivers/media/pci/ttpci/av7110.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/media/pci/ttpci/av7110.c b/drivers/media/pci/ttpci/av7110.c
index 2f54e2b..fc9e7e5 100644
--- a/drivers/media/pci/ttpci/av7110.c
+++ b/drivers/media/pci/ttpci/av7110.c
@@ -235,7 +235,7 @@ static void recover_arm(struct av7110 *av7110)
 
restart_feeds(av7110);
 
-#if defined(CONFIG_INPUT_EVDEV) || defined(CONFIG_INPUT_EVDEV_MODULE)
+#if IS_ENABLED(CONFIG_INPUT_EVDEV)
av7110_check_ir_config(av7110, true);
 #endif
 }
@@ -268,7 +268,7 @@ static int arm_thread(void *data)
if (!av7110->arm_ready)
continue;
 
-#if defined(CONFIG_INPUT_EVDEV) || defined(CONFIG_INPUT_EVDEV_MODULE)
+#if IS_ENABLED(CONFIG_INPUT_EVDEV)
av7110_check_ir_config(av7110, false);
 #endif
 
@@ -1730,7 +1730,7 @@ static int alps_tdlb7_tuner_set_params(struct 
dvb_frontend *fe)
 
 static int alps_tdlb7_request_firmware(struct dvb_frontend* fe, const struct 
firmware **fw, char* name)
 {
-#if defined(CONFIG_DVB_SP8870) || defined(CONFIG_DVB_SP8870_MODULE)
+#if IS_ENABLED(CONFIG_DVB_SP8870)
struct av7110* av7110 = fe->dvb->priv;
 
return request_firmware(fw, name, &av7110->dev->pci->dev);
@@ -2725,7 +2725,7 @@ static int __devinit av7110_attach(struct saa7146_dev* 
dev,
 
mutex_init(&av7110->ioctl_mutex);
 
-#if defined(CONFIG_INPUT_EVDEV) || defined(CONFIG_INPUT_EVDEV_MODULE)
+#if IS_ENABLED(CONFIG_INPUT_EVDEV)
av7110_ir_init(av7110);
 #endif
printk(KERN_INFO "dvb-ttpci: found av7110-%d.\n", av7110_num);
@@ -2768,7 +2768,7 @@ static int __devexit av7110_detach(struct saa7146_dev* 
saa)
struct av7110 *av7110 = saa->ext_priv;
dprintk(4, "%p\n", av7110);
 
-#if defined(CONFIG_INPUT_EVDEV) || defined(CONFIG_INPUT_EVDEV_MODULE)
+#if IS_ENABLED(CONFIG_INPUT_EVDEV)
av7110_ir_exit(av7110);
 #endif
if (budgetpatch || av7110->full_ts) {
-- 
1.7.11.7

--
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] Initial scan files troubles and brainstorming

2013-01-09 Thread Michael Krufky
On Wed, Jan 9, 2013 at 5:41 AM, Mauro Carvalho Chehab
 wrote:
> Em Wed, 09 Jan 2013 10:43:23 +0100
> Oliver Schinagl  escreveu:
>
>> On 08-01-13 21:01, Johannes Stezenbach wrote:
>> > On Mon, Jan 07, 2013 at 01:48:29PM +0100, Oliver Schinagl wrote:
>> >> On 07-01-13 11:46, Jiri Slaby wrote:
>> >>> On 12/18/2012 11:01 PM, Oliver Schinagl wrote:
>>  Unfortunatly, I have had zero replies.
>> >>> Hmm, it's sad there is a silence in this thread from linux-media guys :/.
>> >> In their defense, they are very very busy people ;) chatter on this
>> >> thread does bring it up however.
>> > This is such a nice thing to say :-)
>> > But it might be that Mauro thinks the dvb-apps maintainer should
>> > respond, but apparently there is no dvb-apps maintainer...
>> > Maybe you should ask Mauro directly to create an account for you
>> > to implement what you proposed.
>> Mauro is CC'ed and I'd ask of course for this (I kinda did) but who
>> decides what I suggested is a good idea? I personally obviously think it
>> is ;) and even more so if dvb-apps are unmaintained.
>>
>> I guess the question now becomes 'who okay's this change? Who says
>> 'okay, lets do it this way. Once that is answered we can go from there ;)
>
> If I understood it right, you want to split the scan files into a separate
> git tree and maintain it, right?
>
> I'm ok with that.
>
> Regards,
> Mauro

As a DVB maintainer, I am OK with this as well - It does indeed make
sense to separate the c code sources from the regional frequency
tables, and I'm sure we'll see much benefit from this change.

Regards,

Mike Krufky
--
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] Initial scan files troubles and brainstorming

2013-01-09 Thread Johannes Stezenbach
On Wed, Jan 09, 2013 at 10:43:23AM +0100, Oliver Schinagl wrote:
> On 08-01-13 21:01, Johannes Stezenbach wrote:
> >On Mon, Jan 07, 2013 at 01:48:29PM +0100, Oliver Schinagl wrote:
> >>On 07-01-13 11:46, Jiri Slaby wrote:
> >>>On 12/18/2012 11:01 PM, Oliver Schinagl wrote:
> Unfortunatly, I have had zero replies.
> >>>Hmm, it's sad there is a silence in this thread from linux-media guys :/.
> >>In their defense, they are very very busy people ;) chatter on this
> >>thread does bring it up however.
> >This is such a nice thing to say :-)
> >But it might be that Mauro thinks the dvb-apps maintainer should
> >respond, but apparently there is no dvb-apps maintainer...
> >Maybe you should ask Mauro directly to create an account for you
> >to implement what you proposed.
> Mauro is CC'ed and I'd ask of course for this (I kinda did) but who
> decides what I suggested is a good idea? I personally obviously
> think it is ;) and even more so if dvb-apps are unmaintained.

Well, if you become the dvb-apps maintainer, then _you_ decide
if it's a good idea.  That's part of the defintion of "maintainer" :-)
It doesn't hurt to listen to users, but if no one comments
you can do whatever you want with it.

But I'm only acting as kind of a webmaster, Mauro creates the accounts.
So we have to wait for him to respond.

> I guess the question now becomes 'who okay's this change? Who says
> 'okay, lets do it this way. Once that is answered we can go from
> there ;)

I guess you could ask the maintainer of the dvb-apps package
of your favourite distribution for opinions, and also check
which other packages depend on dvb-apps.


Johannes
--
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 RFCv9 1/4] dvb: Add DVBv5 stats properties for Quality of Service

2013-01-09 Thread Simon Farnsworth
On Tuesday 8 January 2013 18:28:53 Devin Heitmueller wrote:
> On Tue, Jan 8, 2013 at 6:18 PM, Simon Farnsworth
>  wrote:
> > The wireless folk use dBm (reference point 1 milliwatt), as that's the
> > reference point used in the 802.11 standard.
> >
> > Perhaps we need an extra FE_SCALE constant; FE_SCALE_DECIBEL has no 
> > reference
> > point (so suitable for carrier to noise etc, or for when the reference point
> > is unknown), and FE_SCALE_DECIBEL_MILLIWATT for when the reference point is
> > 1mW, so that frontends report in dBm?
> >
> > Note that if the frontend internally uses a different reference point, the
> > conversion is always going to be adding or subtracting a constant.
> 
> Hi Simon,
> 
> Probably the biggest issue you're going to have is that very few of
> the consumer-grade demodulators actually report data in that format.
> And only a small subset of those actually provide the documentation in
> their datasheet.
> 

My specific concern is that we already see people complaining that their cable
system or aerial installer's meter comes up with one number, and our
documentation has completely different numbers. When we dig, this usually
turns out to be because our documentation is in dBm, while their installer is
using dBmV or dBµW, and no-one at the customer site knows the differences.

If consumer demods don't report in a dB scale at all, we should drop dB as a
unit; if they do report in a true dB scale, but the reference point is
normally not documented, we need some way to distinguish demods where the
reference point is unknown, and demods where someone has taken the time to
find the reference point (which can be done with a signal generator).

This is sounding more and more like an argument for adding
FE_SCALE_DECIBEL_MILLIWATT - it gives those applications that care a way to
tell the user that the signal strength reading from the application should
match up to the signal strength reading on your installer's kit. Said
applications could even choose to do the conversions for you, giving you all
four commonly seen units (dBm, dBmV at 50Ω, dBmV at 75Ω, dBµW).

> For that matter, even the SNR field being reported in dB isn't going
> to allow you to reliably compare across different demodulator chips.
> If demod X says 28.3 dB and demod Y says 29.2 dB, that doesn't
> really mean demod Y performs better - just that it's reporting a
> better number.  However it does allow you to compare the demod
> against itself either across multiple frequencies or under different
> signal conditions - which is what typical users really care about.

I'm not expecting people to compare across demods - I only care about the
case where a user has got in a professional installer to help with their
setup. The problem I want to avoid is a Linux application saying "-48 dB
signal strength, 15 dB CNR", and the installer's kit saying "60 dBuV signal
strength, 20 dB CNR", when we have enough information for the Linux
application to say "-48 dBm (60 dBuV at 75Ω), 15 dB CNR", cueing the
professional to remember that not all dB use the same reference point, and
from there into accepting that Linux is reporting a similar signal strength
and CNR to his kit.

This also has implications for things like VDR - if the scale is
FE_SCALE_DECIBEL but the measurement is absolute, the application probably
doesn't want to report the measurement as a dB measure, but as an arbitrary
scale; again, you don't want the application saying "50 dB", when the
professional installer tells you that you have "0 dBuV".
-- 
Simon Farnsworth
Software Engineer
ONELAN Ltd
http://www.onelan.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: [RFC] Initial scan files troubles and brainstorming

2013-01-09 Thread Mauro Carvalho Chehab
Em Wed, 09 Jan 2013 10:43:23 +0100
Oliver Schinagl  escreveu:

> On 08-01-13 21:01, Johannes Stezenbach wrote:
> > On Mon, Jan 07, 2013 at 01:48:29PM +0100, Oliver Schinagl wrote:
> >> On 07-01-13 11:46, Jiri Slaby wrote:
> >>> On 12/18/2012 11:01 PM, Oliver Schinagl wrote:
>  Unfortunatly, I have had zero replies.
> >>> Hmm, it's sad there is a silence in this thread from linux-media guys :/.
> >> In their defense, they are very very busy people ;) chatter on this
> >> thread does bring it up however.
> > This is such a nice thing to say :-)
> > But it might be that Mauro thinks the dvb-apps maintainer should
> > respond, but apparently there is no dvb-apps maintainer...
> > Maybe you should ask Mauro directly to create an account for you
> > to implement what you proposed.
> Mauro is CC'ed and I'd ask of course for this (I kinda did) but who 
> decides what I suggested is a good idea? I personally obviously think it 
> is ;) and even more so if dvb-apps are unmaintained.
> 
> I guess the question now becomes 'who okay's this change? Who says 
> 'okay, lets do it this way. Once that is answered we can go from there ;)

If I understood it right, you want to split the scan files into a separate
git tree and maintain it, right?

I'm ok with that.

Regards,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] [RFC]: video: exynos: Making s6e8ax0 panel driver compliant with CDF

2013-01-09 Thread Vikas C Sajjan
From: Vikas Sajjan 

 Made necessary changes in s6e8ax0 panel driver as per the CDF-T.
 it also removes the dependency on backlight and lcd framework.

Signed-off-by: Vikas Sajjan 
---
 drivers/video/exynos/s6e8ax0.c |  602 ++--
 1 file changed, 328 insertions(+), 274 deletions(-)

diff --git a/drivers/video/exynos/s6e8ax0.c b/drivers/video/exynos/s6e8ax0.c
index 05d080b..5d9be51 100644
--- a/drivers/video/exynos/s6e8ax0.c
+++ b/drivers/video/exynos/s6e8ax0.c
@@ -38,8 +38,7 @@
 #define POWER_IS_OFF(pwr)  ((pwr) == FB_BLANK_POWERDOWN)
 #define POWER_IS_NRM(pwr)  ((pwr) == FB_BLANK_NORMAL)
 
-#define lcd_to_master(a)   (a->dsim_dev->master)
-#define lcd_to_master_ops(a)   ((lcd_to_master(a))->master_ops)
+#define to_panel(p) container_of(p, struct s6e8ax0, entity)
 
 enum {
DSIM_NONE_STATE = 0,
@@ -47,20 +46,34 @@ enum {
DSIM_FRAME_DONE = 2,
 };
 
+/* This structure defines all the properties of a backlight */
+struct backlight_prop {
+   /* Current User requested brightness (0 - max_brightness) */
+   int brightness;
+   /* Maximal value for brightness (read-only) */
+   int max_brightness;
+};
+
+struct panel_platform_data {
+   unsigned intreset_delay;
+   unsigned intpower_on_delay;
+   unsigned intpower_off_delay;
+   const char  *video_source_name;
+};
+
 struct s6e8ax0 {
-   struct device   *dev;
-   unsigned intpower;
-   unsigned intid;
-   unsigned intgamma;
-   unsigned intacl_enable;
-   unsigned intcur_acl;
-
-   struct lcd_device   *ld;
-   struct backlight_device *bd;
-
-   struct mipi_dsim_lcd_device *dsim_dev;
-   struct lcd_platform_data*ddi_pd;
+   struct platform_device  *pdev;
+   struct video_source *src;
+   struct display_entity   entity;
+   unsigned intpower;
+   unsigned intid;
+   unsigned intgamma;
+   unsigned intacl_enable;
+   unsigned intcur_acl;
+   boolpanel_reverse;
+   struct panel_platform_data  *plat_data;
struct mutexlock;
+   struct backlight_prop   bl_prop;
bool  enabled;
 };
 
@@ -70,39 +83,42 @@ static struct regulator_bulk_data supplies[] = {
{ .supply = "vci", },
 };
 
-static void s6e8ax0_regulator_enable(struct s6e8ax0 *lcd)
+static void s6e8ax0_regulator_enable(struct s6e8ax0 *panel)
 {
int ret = 0;
-   struct lcd_platform_data *pd = NULL;
+   struct panel_platform_data *plat_data = NULL;
+
+   plat_data = panel->plat_data;
 
-   pd = lcd->ddi_pd;
-   mutex_lock(&lcd->lock);
-   if (!lcd->enabled) {
+   mutex_lock(&panel->lock);
+
+   if (!panel->enabled) {
ret = regulator_bulk_enable(ARRAY_SIZE(supplies), supplies);
if (ret)
goto out;
 
-   lcd->enabled = true;
+   panel->enabled = true;
}
-   msleep(pd->power_on_delay);
+   msleep(plat_data->power_on_delay);
 out:
-   mutex_unlock(&lcd->lock);
+   mutex_unlock(&panel->lock);
 }
 
-static void s6e8ax0_regulator_disable(struct s6e8ax0 *lcd)
+static void s6e8ax0_regulator_disable(struct s6e8ax0 *panel)
 {
int ret = 0;
 
-   mutex_lock(&lcd->lock);
-   if (lcd->enabled) {
+   mutex_lock(&panel->lock);
+
+   if (panel->enabled) {
ret = regulator_bulk_disable(ARRAY_SIZE(supplies), supplies);
if (ret)
goto out;
 
-   lcd->enabled = false;
+   panel->enabled = false;
}
 out:
-   mutex_unlock(&lcd->lock);
+   mutex_unlock(&panel->lock);
 }
 
 static const unsigned char s6e8ax0_22_gamma_30[] = {
@@ -283,10 +299,8 @@ static const unsigned char *s6e8ax0_22_gamma_table[] = {
s6e8ax0_22_gamma_300,
 };
 
-static void s6e8ax0_panel_cond(struct s6e8ax0 *lcd)
+static void s6e8ax0_panel_cond(struct s6e8ax0 *panel)
 {
-   struct mipi_dsim_master_ops *ops = lcd_to_master_ops(lcd);
-
static const unsigned char data_to_send[] = {
0xf8, 0x3d, 0x35, 0x00, 0x00, 0x00, 0x93, 0x00, 0x3c, 0x7d,
0x08, 0x27, 0x7d, 0x3f, 0x00, 0x00, 0x00, 0x20, 0x04, 0x08,
@@ -300,239 +314,218 @@ static void s6e8ax0_panel_cond(struct s6e8ax0 *lcd)
0xc1, 0x01, 0x41, 0xc1, 0x00, 0xc1, 0xf6, 0xf6, 0xc1
};
 
-   if (lcd->dsim_dev->panel_reverse)
-   ops->cmd_write(lcd_to_master(lcd), MIPI_DSI_DCS_LONG_WRITE,
+   if (panel->panel_reverse)
+   panel->src->ops.dsi->dcs_write(panel->src, 
MIPI_DSI_DCS_LONG_WRITE,
data_to_send_panel_reverse,
ARRAY_SIZE(data_to_send_panel_reverse));
else

[PATCH] Make s6e8ax0 panel driver compliant with CDF

2013-01-09 Thread Vikas C Sajjan
From: Vikas Sajjan 

Have made necessary chanages in s6e8ax0 panel driver, made an effort to remove
dependency on backlight and lcd framework, but its NOT fully done.

s6e8ax0_get_brightness() and s6e8ax0_set_brightness() functionalities have NOT
been modified. as backlight support in CDF are _NOT_ implemented yet.
Thought of adding these "get and set" as part of display_entity_control_ops(), 
but didn't modify as of now. Any thoughts on the same will be helpful.

removed the lcd_ops "set_power and get_power" and added as part of 
panel_set_state.

I _SHALL_ test these modificaions once i get the s6e8ax0 panel.

Vikas Sajjan (1):
  [RFC]: video: exynos: Making s6e8ax0 panel driver compliant with CDF

 drivers/video/exynos/s6e8ax0.c |  582 ++--
 1 file changed, 314 insertions(+), 268 deletions(-)

-- 
1.7.9.5

--
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] Initial scan files troubles and brainstorming

2013-01-09 Thread Oliver Schinagl

On 08-01-13 21:01, Johannes Stezenbach wrote:

On Mon, Jan 07, 2013 at 01:48:29PM +0100, Oliver Schinagl wrote:

On 07-01-13 11:46, Jiri Slaby wrote:

On 12/18/2012 11:01 PM, Oliver Schinagl wrote:

Unfortunatly, I have had zero replies.

Hmm, it's sad there is a silence in this thread from linux-media guys :/.

In their defense, they are very very busy people ;) chatter on this
thread does bring it up however.

This is such a nice thing to say :-)
But it might be that Mauro thinks the dvb-apps maintainer should
respond, but apparently there is no dvb-apps maintainer...
Maybe you should ask Mauro directly to create an account for you
to implement what you proposed.
Mauro is CC'ed and I'd ask of course for this (I kinda did) but who 
decides what I suggested is a good idea? I personally obviously think it 
is ;) and even more so if dvb-apps are unmaintained.


I guess the question now becomes 'who okay's this change? Who says 
'okay, lets do it this way. Once that is answered we can go from there ;)




Thanks,
Johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC v2 0/5] Common Display Framework

2013-01-09 Thread Rahul Sharma
Hi Laurent,

CDF will also be helpful in supporting Panels with integrated
audio (HDMI/DP) if we can add audio related control operations to
display_entity_control_ops. Video controls will be called by crtc
in DRM/V4L and audio controls from Alsa.

Secondly, if I need to support get_modes operation in hdmi/dp
panel, I need to implement edid parser inside the panel driver. It
will be meaningful to add get_edid control operation for hdmi/dp.

regards,
Rahul Sharma.

On Tue, Jan 8, 2013 at 9:43 PM, Rob Clark  wrote:
> On Tue, Jan 8, 2013 at 2:25 AM, Laurent Pinchart
>  wrote:
>> Hi Rob,
>>
>> On Thursday 27 December 2012 09:54:55 Rob Clark wrote:
>>> What I've done to avoid that so far is that the master device registers the
>>> drivers for it's output sub-devices before registering it's own device.
>>
>> I'm not sure to follow you here. The master device doesn't register anything,
>> do you mean the master device driver ? If so, how does the master device
>> driver register its own device ? Devices are not registered by their driver.
>
> sorry, that should have read "master driver registers drivers for it's
> sub-devices.."
>
> BR,
> -R
> ___
> dri-devel mailing list
> dri-de...@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
--
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