Re

2011-09-25 Thread Tong Hao

Hello Friend', I have a transaction which is of mutual benefits and I would 
like to share with you. if interested for more information please get back to 
me via email.Thank you.Yours sincerely,Mr.Tong Hao.


**
 Disclaimer: This e-mail and any files transmitted with it are confidential
 and are intended solely for the use of the individual or entity to whom
 they are addressed. Unauthorized use, disclosure, copying or alteration
 of this message is strictly forbidden. If you have received this e-mail in
 error, please notify the sender and delete the e-mail and any copies of
 it.Please note that Central Restaurants Group Co.,Ltd,is able to,
 and reserves the right to, monitor e-mail communications passing through its 
network. 
**



--
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 v2 2/2] v4l: Add v4l2 subdev driver for S5K6AAFX sensor

2011-09-25 Thread Sakari Ailus
On Fri, Sep 23, 2011 at 12:12:58PM +0200, Sylwester Nawrocki wrote:
 Hi Sakari,

Hi Sylwester,

 On 09/23/2011 12:02 AM, Sakari Ailus wrote:
  Hi Sylwester,
  
  I have a few additional comments below, they don't depend on my earlier
  ones.
 
 Thanks a lot for your follow up review!
 
  
  On Wed, Sep 21, 2011 at 07:45:07PM +0200, Sylwester Nawrocki wrote:
  This driver exposes preview mode operation of the S5K6AAFX sensor with
  embedded SoC ISP. It uses one of the five user predefined configuration
  register sets. There is yet no support for capture (snapshot) operation.
  Following controls are supported:
  manual/auto exposure and gain, power line frequency (anti-flicker),
  saturation, sharpness, brightness, contrast, white balance temperature,
  color effects, horizontal/vertical image flip, frame interval.
 
  Signed-off-by: Sylwester Nawrocki s.nawro...@samsung.com
  Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
  ---
 ...
  +
  +struct s5k6aa_pixfmt {
  +  enum v4l2_mbus_pixelcode code;
  +  u32 colorspace;
  +  /* REG_P_FMT(x) register value */
  +  u16 reg_p_fmt;
  +};
  +
  +struct s5k6aa_preset {
  +  struct v4l2_frmsize_discrete out_size;
  +  struct v4l2_rect in_win;
  +  const struct s5k6aa_pixfmt *pixfmt;
  +  unsigned int inv_hflip:1;
  +  unsigned int inv_vflip:1;
  +  u8 frame_rate_type;
  +  u8 index;
  +};
  +

[clip]

  +/* Set initial values for all preview presets */
  +static void s5k6aa_presets_data_init(struct s5k6aa *s5k6aa,
  +   int hflip, int vflip)
  +{
  +  struct s5k6aa_preset *preset = s5k6aa-presets[0];
  +  int i;
  +
  +  for (i = 0; i  S5K6AA_MAX_PRESETS; i++) {
  +  preset-pixfmt  = s5k6aa_formats[0];
  +  preset-frame_rate_type = FR_RATE_DYNAMIC;
  +  preset-inv_hflip   = hflip;
  +  preset-inv_vflip   = vflip;
  +  preset-out_size.width  = S5K6AA_OUT_WIDTH_DEF;
  +  preset-out_size.height = S5K6AA_OUT_HEIGHT_DEF;
  +  preset-in_win.width= S5K6AA_WIN_WIDTH_MAX;
  +  preset-in_win.height   = S5K6AA_WIN_HEIGHT_MAX;
  +  preset-in_win.left = 0;
  +  preset-in_win.top  = 0;
  
  Much of this data is static, why is it copied to the presets struct?
  
  What is the intended purpose of these presets?
 
 I agree there is no need to keep inv_hflip/inv_vflip there. It's more a
 leftover from previous driver version. I'll move it to struct s5k6aa.
 And I try to keep copy of each platform_data attribute in driver's
 private struct to make future transition to DT driver probing easier.
 
 inv_[hv]flip variables are used to indicate physical layout of the sensor,
 as it varies across multiple machines. So indeed they're global, not per
 the configuration set.
 
 Preset are there in the s5k6aafx register interface to allow fast transition
 between, for instance, low resolution preview and high resolution snapshot.
 I'm planning to use this driver as an experimental rabbit for the future
 snapshot mode API.

It sounds like that a snapshot mode would be an use case that presets
could support in a way, but what I'd really like to ask is how much
advantage one can get by using this mode, say, vs. re-programming the same
settings over the I2C bus? The bus transfers (I assume) roughly 40 kB/s, so
I imagine a few tens of register writes can be avoided by most, taking
somewhere in the range of a few milliseconds.

I would rather measure and attempt to optimise the register writes in the
driver first before adding complexity to user space interface.

Or do the presets provide other advantages than just storing configurations?

 in_win field is there for cropping support. So for now it's static data,
 but this will change. I've covered pretty much functionality of the device
 in this driver and I'd like to have it in mainline at this stage.
 I've spent pretty much time on this driver, trying to figure out some
 things on trial and error basis.
 

[clip]

  +
  +/* Set horizontal and vertical image flipping */
  +static int s5k6aa_set_mirror(struct s5k6aa *s5k6aa, int horiz_flip)
  +{
  +  struct i2c_client *client = v4l2_get_subdevdata(s5k6aa-sd);
  +  struct s5k6aa_preset *preset = s5k6aa-preset;
  +
  +  unsigned int vflip = s5k6aa-ctrls.vflip-val ^ preset-inv_vflip;
  +  unsigned int hflip = horiz_flip ^ preset-inv_hflip;
  
  I don't see a need to store inv_hflip to presets. Instead, you might just
  have a mirror bit in the platform data.
 
 Agreed, except I'd like to keep that in driver's private data structure,
 not to rely on the platform data after the driver probing.

There's no reason to avoid using platform data after probing that I am aware
of.

  
  +  return s5k6aa_write(client, REG_P_PREV_MIRROR(preset-index),
  +  hflip | (vflip  1));
  +}
  +
 ...
  +
  +static int __s5k6aa_power_enable(struct s5k6aa *s5k6aa)
  +{
  +  int ret;
  +
  +  ret = regulator_bulk_enable(S5K6AA_NUM_SUPPLIES, s5k6aa-supplies);
  +  

Re: [PATCH 1/17]DVB:Siano drivers - Adding LKM for handling SPI connected devices.

2011-09-25 Thread Doron Cohen
On Fri, 2011-09-23 at 17:20 -0300, Mauro Carvalho Chehab wrote:
 Em 20-09-2011 07:30, Doron Cohen escreveu:
  Hi,
  It took a long time to merge all the changes in kernel.org with Siano
  sources which were updated in a different repository for the last couple
  of years.
  I have made all the changes in small steps seperated to functional
  reasons.
  First patch is actually adding new kernel object which handles SPI
  connection and used the spidrv of the kernel.
  module is used mainly in android platforms but is a pure LKM works with
  siano modules stack.
  
  Thanks,
  Doron Cohen
  
  
  -
  
 From 9115d85edbafc38e48ed1fc5f1218da81b7c5a2e Mon Sep 17 00:00:00 2001
  From: Doron Cohen dor...@siano-ms.com
  Date: Mon, 12 Sep 2011 17:41:29 +0300
  Subject: [PATCH 02/21] Add support in generic SPI driver for Siano SPI
  connected devices
  
  ---
   drivers/media/dvb/siano/Kconfig|   45 
   drivers/media/dvb/siano/smsspicommon.c |  408
  
   drivers/media/dvb/siano/smsspicommon.h |   96 +++
   drivers/media/dvb/siano/smsspidrv.c|  455
  
   drivers/media/dvb/siano/smsspiphy.c|  246 +
   drivers/media/dvb/siano/smsspiphy.h|   36 +++
   6 files changed, 1286 insertions(+), 0 deletions(-)
   create mode 100644 drivers/media/dvb/siano/smsspicommon.c
   create mode 100644 drivers/media/dvb/siano/smsspicommon.h
   create mode 100644 drivers/media/dvb/siano/smsspidrv.c
   create mode 100644 drivers/media/dvb/siano/smsspiphy.c
   create mode 100644 drivers/media/dvb/siano/smsspiphy.h
  
  diff --git a/drivers/media/dvb/siano/Kconfig
  b/drivers/media/dvb/siano/Kconfig
  index bc6456e..aeca46f 100644
  --- a/drivers/media/dvb/siano/Kconfig
  +++ b/drivers/media/dvb/siano/Kconfig
  @@ -17,6 +17,37 @@ config SMS_SIANO_MDTV
   if SMS_SIANO_MDTV
   menu Siano module components
   
  +# Kernel sub systems support
  +
  +config SMS_DVB3_SUBSYS
  +   bool DVB v.3 Subsystem support
  +   depends on DVB_CORE
  +   default y if DVB_CORE
  +   ---help---
  +   Choose if you would like to have DVB v.3 kernel sub-system support.
  +
  +config SMS_DVB5_S2API_SUBSYS
  +   bool DVB v.5 (S2 API) Subsystem support
  +   default n
  +   ---help---
  +   Choose if you would like to have DVB v.5 (S2 API) kernel sub-system
  support.
 
 NACK. 
 
 The driver should be able to handle a call for programs that use either
 DVB v3 or DVB v5 calls, and this feature is mandatory for all DVB drivers.
 
  +
  +config SMS_HOSTLIB_SUBSYS
  +   bool Host Library Subsystem support
  +   default n
  +   ---help---
  +   Choose if you would like to have Siano's host library kernel
  sub-system support.
 
 NACK. Proprietary/alternative API support shouldn't be added at the Linux 
 Kernel.
 There's only one API defined to talk with a DTV device, and all drivers should
 implement it only.
 
 If you detect that some API features are missing at the DVB API, please 
 discuss
 what is missing and let's work to add those features at the API.
 
  +
  +if SMS_HOSTLIB_SUBSYS
  +
  +config SMS_NET_SUBSYS
  +   tristate Siano Network Adapter
  +   depends on NET
  +   default n
  +   ---help---
  +   Choose if you would like to have Siano's network adapter support.
  +endif # SMS_HOSTLIB_SUBSYS
  +
   # Hardware interfaces support
   
   config SMS_USB_DRV
  @@ -30,5 +61,19 @@ config SMS_SDIO_DRV
  depends on DVB_CORE  MMC
  ---help---
Choose if you would like to have Siano's support for SDIO interface
  +
  +config SMS_SPI_DRV
  +   tristate SPI interface support
  +   depends on SPI
  +   default y if SPI
  +   ---help---
  +   Choose if you would like to have Siano's support for PXA 310 SPI
  interface
  +
  +config SMS_I2C_DRV
  +   tristate I2C interface support
  +   depends on DVB_CORE  I2C
  +   ---help---
  +   Choose if you would like to have Siano's support for I2C interface
  +
   endmenu
   endif # SMS_SIANO_MDTV
  diff --git a/drivers/media/dvb/siano/smsspicommon.c
  b/drivers/media/dvb/siano/smsspicommon.c
  new file mode 100644
  index 000..d4ef3f8
  --- /dev/null
  +++ b/drivers/media/dvb/siano/smsspicommon.c
  @@ -0,0 +1,408 @@
  +/
  +
  +Siano Mobile Silicon, Inc.
  +MDTV receiver kernel modules.
  +Copyright (C) 2006-2008, Uri Shkolnik
  +
  +This program is free software: you can redistribute it and/or modify
  +it under the terms of the GNU General Public License as published by
  +the Free Software Foundation, either version 2 of the License, or
  +(at your option) any later version.
  +
  + This program is distributed in the hope that it will be useful,
  +but WITHOUT ANY WARRANTY; without even the implied warranty of
  +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  +GNU General Public License for more details.
  +
  +You should have received a copy of the GNU General Public License
  +along with this program.  

Re: [PATCH 4/5] ispccdc: Configure CCDC_SYN_MODE register for UYVY8_2X8 and YUYV8_2X8 formats

2011-09-25 Thread Sakari Ailus
On Wed, Sep 21, 2011 at 11:06:41AM +0200, Laurent Pinchart wrote:
 Hi Deepthy,

Hi,

(Dropped most of people and lists from cc. I don't think Andrew Morton, for
example, has immediate interest towards this topic. Feel free to prome me
wrong.)

 On Wednesday 21 September 2011 07:32:44 Ravi, Deepthy wrote:
  On Wednesday, September 21, 2011 4:56 AM Laurent Pinchart wrote:
   On Tuesday 20 September 2011 16:56:51 Deepthy Ravi wrote:
   Configure INPMOD and PACK8 fileds of CCDC_SYN_MODE
   register for UYVY8_2X8 and YUYV8_2X8 formats.
   
   Signed-off-by: Deepthy Ravi deepthy.r...@ti.com
   ---
   
drivers/media/video/omap3isp/ispccdc.c |   11 ---
1 files changed, 8 insertions(+), 3 deletions(-)
   
   diff --git a/drivers/media/video/omap3isp/ispccdc.c
   b/drivers/media/video/omap3isp/ispccdc.c index 418ba65..1dcf180 100644
   --- a/drivers/media/video/omap3isp/ispccdc.c
   +++ b/drivers/media/video/omap3isp/ispccdc.c
   @@ -985,8 +985,12 @@ static void ccdc_config_sync_if(struct
   isp_ccdc_device
   *ccdc,
   
 syn_mode = ~ISPCCDC_SYN_MODE_INPMOD_MASK;
 if (format-code == V4L2_MBUS_FMT_YUYV8_2X8 ||
   
   - format-code == V4L2_MBUS_FMT_UYVY8_2X8)
   - syn_mode |= ISPCCDC_SYN_MODE_INPMOD_YCBCR8;
   + format-code == V4L2_MBUS_FMT_UYVY8_2X8){
   + if (pdata  pdata-bt656)
   + syn_mode |= ISPCCDC_SYN_MODE_INPMOD_YCBCR8;
   + else
   + syn_mode |= ISPCCDC_SYN_MODE_INPMOD_YCBCR16;
   + }
   
 else if (format-code == V4L2_MBUS_FMT_YUYV8_1X16 ||
 
  format-code == V4L2_MBUS_FMT_UYVY8_1X16)
 
 syn_mode |= ISPCCDC_SYN_MODE_INPMOD_YCBCR16;
   
   @@ -1172,7 +1176,8 @@ static void ccdc_configure(struct isp_ccdc_device
   *ccdc) syn_mode = ~ISPCCDC_SYN_MODE_SDR2RSZ;
   
 /* Use PACK8 mode for 1byte per pixel formats. */
   
   - if (omap3isp_video_format_info(format-code)-width = 8)
   + if ((omap3isp_video_format_info(format-code)-width = 8) 
   + (omap3isp_video_format_info(format-code)-bpp =
   8))
   
   I'm not sure to follow you. This will clear the PACK8 bit for the
   YUYV8_2X8 formats. Those formats are 8 bits wide, shouldn't PACK8 be set
   to store samples on 8 bits instead of 16 bits ?
   
   Is this patch intended to support YUYV8_2X8 sensors in non BT.656 mode
   with the bridge enabled ? In that case, what would you think about setting
   the CCDC input format to YUYV8_1X16 instead ? This would better reflect
   the reality, as the bridge converts YUYV8_2X8 to YUYV8_1X16, and the CCDC
   is then fed with YUYV8_1X16.
  
  Yes this is intended for  YUYV8_2X8 sensors in non BT.656 with 8 to 16 bit
  bridge enabled. So the data has to be stored as 16 bits per sample. Thats
  why PACK8 is cleared . I am not sure about using YUYV8_1X16.
 
 My original idea when I wrote the YV support patches was to implement this 
 use 
 case with YUYV8_2X8 at the sensor output and YUYV8_1X16 at the CCDC input. 
 The 
 ISP driver could then enable the bridge automatically. I'm not sure if that's 
 the best solution though, it might be confusing for the users. What I would 
 like to keep, however, is the idea of enabling the bridge automatically.
 
 Sakari, any opinion on this ?

Are there any complications from the CCDC also listing the 2X8 formats as
supported in its sink pad? I'd rather support them since doing it the other
way might be somewhat confusing to the users. This would also mean media-ctl
users would have to set both sink and source formats rather than just the
source format when configuring the format for the link.

 syn_mode |= ISPCCDC_SYN_MODE_PACK8;
 else
 syn_mode = ~ISPCCDC_SYN_MODE_PACK8;
 
 -- 
 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

-- 
Sakari Ailus
e-mail: sakari.ai...@iki.fi jabber/XMPP/Gmail: sai...@retiisi.org.uk
--
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/17]DVB:Siano drivers - Adding LKM for handling SPI connected devices.

2011-09-25 Thread Mauro Carvalho Chehab
Em 25-09-2011 07:25, Doron Cohen escreveu:
 On Fri, 2011-09-23 at 17:20 -0300, Mauro Carvalho Chehab wrote:
 Em 20-09-2011 07:30, Doron Cohen escreveu:
 Hi,
 It took a long time to merge all the changes in kernel.org with Siano
 sources which were updated in a different repository for the last couple
 of years.
 I have made all the changes in small steps seperated to functional
 reasons.
 First patch is actually adding new kernel object which handles SPI
 connection and used the spidrv of the kernel.
 module is used mainly in android platforms but is a pure LKM works with
 siano modules stack.

 Thanks,
 Doron Cohen

 Hi Mauro,
 Thanks for your response.
 I am going over your comments and changing my patches according to your
 comments. Also running the checkpatch script and remove all errors and
 warnings.

Thanks!
 
 Please advice what would be the right way to continue:
 1. Reply each patch and put the new corrected patch below the old
 commented patch.
 or
 2. Open a new thread with the corrected patch.

What most developers do is to argument against my review when needed, 
using the existing thread. Then, they open a [PATCH v2] thread with
the new patchset.

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


Re: Status of the patches under review at LMML (28 patches)

2011-09-25 Thread Mauro Carvalho Chehab
Em 24-09-2011 15:11, Manu Abraham escreveu:
 On Sat, Sep 24, 2011 at 6:04 PM, Mauro Carvalho Chehab
 mche...@redhat.com wrote:
 Everything at patchwork were reviewed by me, and I've applied all patches
 that I didn't notice any review by the drivers maintainers.

 Driver maintainers:
 Please review the remaining patches.

== Patches for Manu Abraham abraham.m...@gmail.com review ==

 Jun,11 2010: stb0899: Removed an extra byte sent at init on DiSEqC bus   
http://patchwork.linuxtv.org/patch/3639   Florent AUDEBERT 
 florent.audeb...@anevia.com
 
 A single byte doesn't make much of a difference, but well it is still
 a difference. The DiSEqC has some known issues and has some tricky
 workarounds for different Silicon cuts. This patch *might* be good on
 some chips while have an adverse effect. But that said I have not
 tested this patch.
 
 If general users would like to have this patch and is proven good on
 different versions, I have no objection for this patch to go in.
 
 In which case; Acked-by: Manu Abraham m...@linuxtv.org

Ok. Well, let's apply it and see the feedbacks if any.

Thanks for reviewing it!
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


Problems cloning the git repostories

2011-09-25 Thread Patrick Dickey
Hello there,

I tried to follow the steps for cloning both the media_tree.git and
media_build.git repositories, and received errors for both.  The
media_tree repository failed on the first line

 git clone 
 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git v4l-dvb 

which I'm assuming is because kernel.org is down.

The media_build.git repository fails on the first line also

 git clone git://linuxtv.org/media_build.git 

with a fatal: read error: Connection reset by peer.

Is it possible to clone either (or both) repositories at this time, or
are they down?  And in the absence of cloning the kernel for the
media_tree.git repository, is it possible to simply clone the
git://linuxtv.org/media_tree.git repository and work from that?

My interest in this is to install some patches created by Devin
Heitmueller for the Pinnacle PCTV 80e USB tuner (at least the ATSC
portion of the tuner). Once I'm able to determine exactly what changes
are made, I would like to either submit the patches to the repository,
or send them to someone who has more experience in patching the files
for submission.

One other question (totally unrelated to this post though): When I send
emails, normally they are GPG signed. Should I disable that for this
list, or is it acceptable?

Thank you for any information, and have a great day:)
Patrick.

--
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: Status of the patches under review at LMML (28 patches)

2011-09-25 Thread Mauro Carvalho Chehab
Em 24-09-2011 15:29, Manu Abraham escreveu:
 On Sat, Sep 24, 2011 at 6:04 PM, Mauro Carvalho Chehab
 mche...@redhat.com wrote:
 Everything at patchwork were reviewed by me, and I've applied all patches
 that I didn't notice any review by the drivers maintainers.

 Driver maintainers:
 Please review the remaining patches.

== Patches for Manu Abraham abraham.m...@gmail.com review ==


Ok, status updated at all patches, and added the ones that were acked/reviewed.

 Jun, 8 2011: Add remote control support for mantis   
http://patchwork.linuxtv.org/patch/7217   Christoph Pinkl 
 christoph.pi...@gmail.com
 
 Haven't tested this patch. Please hold on with this patch.

Ok.

FYI, this patch looks correct on my eyes, with respect to RC core usage.

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


Re: [PATCH v3] EM28xx - fix deadlock when unplugging and replugging a DVB adapter

2011-09-25 Thread Mauro Carvalho Chehab
Em 24-09-2011 17:54, Chris Rankin escreveu:
 This fixes the deadlock that occurs with either multiple PCTV 290e adapters 
 or when a single PCTV 290e adapter is replugged.
 
 For DVB devices, the device lock must now *not* be held when adding/removing 
 either a device or an extension to the respective lists. (Because 
 em28xx_init_dvb() will want to take the lock instead).
 
 Conversely, for Audio-Only devices, the device lock *must* be held when 
 adding/removing either a device or an extension to the respective lists.
 
 Signed-off-by: Chris Rankin ranki...@yahoo.com

Ok, I've applied it, but it doesn't sound a good idea to me to do:

+   mutex_unlock(dev-lock);
em28xx_init_extension(dev);
+   mutex_lock(dev-lock);

I'll later test it with some hardware and see how well this behaves
in practice.

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


Re: [PATCH v3] EM28xx - fix deadlock when unplugging and replugging a DVB adapter

2011-09-25 Thread Mauro Carvalho Chehab
Em 24-09-2011 17:54, Chris Rankin escreveu:
 This fixes the deadlock that occurs with either multiple PCTV 290e adapters 
 or when a single PCTV 290e adapter is replugged.
 
 For DVB devices, the device lock must now *not* be held when adding/removing 
 either a device or an extension to the respective lists. (Because 
 em28xx_init_dvb() will want to take the lock instead).
 
 Conversely, for Audio-Only devices, the device lock *must* be held when 
 adding/removing either a device or an extension to the respective lists.
 
 Signed-off-by: Chris Rankin ranki...@yahoo.com

Hmm... This would probably work better (not tested). Could you please test it
on your hardware?

From: Mauro Carvalho Chehab mche...@redhat.com
Date: Sat, 24 Sep 2011 16:54:58 -0300
Subject: [media] em28xx: fix deadlock when unplugging and replugging a DVB 
adapter

This fixes the deadlock that occurs with either multiple PCTV 290e
adapters or when a single PCTV 290e adapter is replugged.

For DVB devices, the device lock must now *not* be held when
adding/removing either a device or an extension to the respective lists.
(Because em28xx_init_dvb() will want to take the lock instead).

Conversely, for Audio-Only devices, the device lock *must* be held when
adding/removing either a device or an extension to the respective lists.

Based on a patch from Chris Rankin ranki...@yahoo.com
Signed-off-by: Mauro Carvalho Chehab mche...@redhat.com

diff --git a/drivers/media/video/em28xx/em28xx-cards.c 
b/drivers/media/video/em28xx/em28xx-cards.c
index 7297d90..c92c177 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -3005,7 +3005,8 @@ static int em28xx_init_dev(struct em28xx **devhandle, 
struct usb_device *udev,
goto fail;
}
 
-   em28xx_init_extension(dev);
+   /* dev-lock needs to be holded */
+   __em28xx_init_extension(dev);
 
/* Save some power by putting tuner to sleep */
v4l2_device_call_all(dev-v4l2_dev, 0, core, s_power, 0);
@@ -3301,10 +3302,10 @@ static void em28xx_usb_disconnect(struct usb_interface 
*interface)
em28xx_release_resources(dev);
}
 
-   em28xx_close_extension(dev);
-
mutex_unlock(dev-lock);
 
+   em28xx_close_extension(dev);
+
if (!dev-users) {
kfree(dev-alt_max_pkt_size);
kfree(dev);
diff --git a/drivers/media/video/em28xx/em28xx-core.c 
b/drivers/media/video/em28xx/em28xx-core.c
index 804a4ab..afddfea 100644
--- a/drivers/media/video/em28xx/em28xx-core.c
+++ b/drivers/media/video/em28xx/em28xx-core.c
@@ -1218,16 +1218,22 @@ void em28xx_unregister_extension(struct em28xx_ops *ops)
 }
 EXPORT_SYMBOL(em28xx_unregister_extension);
 
-void em28xx_init_extension(struct em28xx *dev)
+/* Need to take the mutex lock before calling it */
+void __em28xx_init_extension(struct em28xx *dev)
 {
const struct em28xx_ops *ops = NULL;
 
-   mutex_lock(em28xx_devlist_mutex);
list_add_tail(dev-devlist, em28xx_devlist);
list_for_each_entry(ops, em28xx_extension_devlist, next) {
if (ops-init)
ops-init(dev);
}
+}
+
+void em28xx_init_extension(struct em28xx *dev)
+{
+   mutex_lock(em28xx_devlist_mutex);
+   __em28xx_init_extension(dev);
mutex_unlock(em28xx_devlist_mutex);
 }
 
diff --git a/drivers/media/video/em28xx/em28xx.h 
b/drivers/media/video/em28xx/em28xx.h
index 1626e4a..a5c1ba2 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -682,6 +682,7 @@ void em28xx_remove_from_devlist(struct em28xx *dev);
 void em28xx_add_into_devlist(struct em28xx *dev);
 int em28xx_register_extension(struct em28xx_ops *dev);
 void em28xx_unregister_extension(struct em28xx_ops *dev);
+void __em28xx_init_extension(struct em28xx *dev);
 void em28xx_init_extension(struct em28xx *dev);
 void em28xx_close_extension(struct em28xx *dev);
 
--
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 v3] EM28xx - fix deadlock when unplugging and replugging a DVB adapter

2011-09-25 Thread Chris Rankin

On 25/09/11 13:49, Mauro Carvalho Chehab wrote:

Ok, I've applied it, but it doesn't sound a good idea to me to do:

+   mutex_unlock(dev-lock);
em28xx_init_extension(dev);
+   mutex_lock(dev-lock);

I'll later test it with some hardware and see how well this behaves
in practice.


No, I don't like it either. But since a kernel mutex isn't recursive, I can't 
think of a better solution at the moment.


Cheers,
Chris

--
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 v3] EM28xx - fix deadlock when unplugging and replugging a DVB adapter

2011-09-25 Thread Chris Rankin

On 25/09/11 14:00, Mauro Carvalho Chehab wrote:

Hmm... This would probably work better (not tested). Could you please test it
on your hardware?


Hmm, I don't understand this. The deadlock isn't about taking 
em28xx_devlist_mutex, but happens because em28xx_dvb_init() tries to retake 
dev-lock when em28xx_usb_probe() is already holding it. That's why I unlocked 
dev-lock before calling em28xx_init_extension().


So why are you avoiding locking em28xx_devlist_mutex?

Cheers,
Chris


diff --git a/drivers/media/video/em28xx/em28xx-cards.c 
b/drivers/media/video/em28xx/em28xx-cards.c
index 7297d90..c92c177 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -3005,7 +3005,8 @@ static int em28xx_init_dev(struct em28xx **devhandle, 
struct usb_device *udev,
goto fail;
}

-   em28xx_init_extension(dev);
+   /* dev-lock needs to be holded */
+   __em28xx_init_extension(dev);

/* Save some power by putting tuner to sleep */
v4l2_device_call_all(dev-v4l2_dev, 0, core, s_power, 0);
@@ -3301,10 +3302,10 @@ static void em28xx_usb_disconnect(struct usb_interface 
*interface)
em28xx_release_resources(dev);
}

-   em28xx_close_extension(dev);
-
mutex_unlock(dev-lock);

+   em28xx_close_extension(dev);
+
if (!dev-users) {
kfree(dev-alt_max_pkt_size);
kfree(dev);
diff --git a/drivers/media/video/em28xx/em28xx-core.c 
b/drivers/media/video/em28xx/em28xx-core.c
index 804a4ab..afddfea 100644
--- a/drivers/media/video/em28xx/em28xx-core.c
+++ b/drivers/media/video/em28xx/em28xx-core.c
@@ -1218,16 +1218,22 @@ void em28xx_unregister_extension(struct em28xx_ops *ops)
  }
  EXPORT_SYMBOL(em28xx_unregister_extension);

-void em28xx_init_extension(struct em28xx *dev)
+/* Need to take the mutex lock before calling it */
+void __em28xx_init_extension(struct em28xx *dev)
  {
const struct em28xx_ops *ops = NULL;

-   mutex_lock(em28xx_devlist_mutex);
list_add_tail(dev-devlist,em28xx_devlist);
list_for_each_entry(ops,em28xx_extension_devlist, next) {
if (ops-init)
ops-init(dev);
}
+}
+
+void em28xx_init_extension(struct em28xx *dev)
+{
+   mutex_lock(em28xx_devlist_mutex);
+   __em28xx_init_extension(dev);
mutex_unlock(em28xx_devlist_mutex);
  }

diff --git a/drivers/media/video/em28xx/em28xx.h 
b/drivers/media/video/em28xx/em28xx.h
index 1626e4a..a5c1ba2 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -682,6 +682,7 @@ void em28xx_remove_from_devlist(struct em28xx *dev);
  void em28xx_add_into_devlist(struct em28xx *dev);
  int em28xx_register_extension(struct em28xx_ops *dev);
  void em28xx_unregister_extension(struct em28xx_ops *dev);
+void __em28xx_init_extension(struct em28xx *dev);
  void em28xx_init_extension(struct em28xx *dev);
  void em28xx_close_extension(struct em28xx *dev);



--
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] EM28xx - remove unused prototypes

2011-09-25 Thread Chris Rankin

Mauro,

This patch just removes the prototypes for the two functions that I've already 
deleted in my previous patches.


Cheers,
Chris

Signed-off-by: Chris Rankin ranki...@yahoo.com
--- linux/drivers/media/video/em28xx/em28xx.h.orig	2011-09-25 14:46:02.0 +0100
+++ linux/drivers/media/video/em28xx/em28xx.h	2011-09-25 14:46:10.0 +0100
@@ -678,8 +678,6 @@
 int em28xx_set_mode(struct em28xx *dev, enum em28xx_mode set_mode);
 int em28xx_gpio_set(struct em28xx *dev, struct em28xx_reg_seq *gpio);
 void em28xx_wake_i2c(struct em28xx *dev);
-void em28xx_remove_from_devlist(struct em28xx *dev);
-void em28xx_add_into_devlist(struct em28xx *dev);
 int em28xx_register_extension(struct em28xx_ops *dev);
 void em28xx_unregister_extension(struct em28xx_ops *dev);
 void em28xx_init_extension(struct em28xx *dev);


Re: Problems cloning the git repostories

2011-09-25 Thread Devin Heitmueller
On Sun, Sep 25, 2011 at 8:33 AM, Patrick Dickey pdickeyb...@gmail.com wrote:
 Hello there,

 I tried to follow the steps for cloning both the media_tree.git and
 media_build.git repositories, and received errors for both.  The
 media_tree repository failed on the first line

 git clone 
 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git v4l-dvb

 which I'm assuming is because kernel.org is down.

 The media_build.git repository fails on the first line also

 git clone git://linuxtv.org/media_build.git

 with a fatal: read error: Connection reset by peer.

 Is it possible to clone either (or both) repositories at this time, or
 are they down?  And in the absence of cloning the kernel for the
 media_tree.git repository, is it possible to simply clone the
 git://linuxtv.org/media_tree.git repository and work from that?

 My interest in this is to install some patches created by Devin
 Heitmueller for the Pinnacle PCTV 80e USB tuner (at least the ATSC
 portion of the tuner). Once I'm able to determine exactly what changes
 are made, I would like to either submit the patches to the repository,
 or send them to someone who has more experience in patching the files
 for submission.

 One other question (totally unrelated to this post though): When I send
 emails, normally they are GPG signed. Should I disable that for this
 list, or is it acceptable?

 Thank you for any information, and have a great day:)
 Patrick.

Hi Patrick,

As I said on the blog, the issue isn't getting the driver to work
against current kernels.  Merging the driver against the current tree
is a trivial exercise (the patch series should apply trivially against
the current code, with only a few minor conflicts related to board
numbers, etc).

The bigger issue though is once you do that and have the driver
running, you now have a body of code  10,000 lines which doesn't meet
the coding standards.  Doing such a refactoring is a relatively
straightforward exercise but very time consuming (you already have a
working driver, so you just have to make sure you don't break
anything).

The more I think about this, the more it annoys me.  I did all the hard parts:

* I worked with the product vendor to get the details for the design
* I got Hauppauge/PCTV to compel the chipset vendor to release the
reference code under a GPL compatible license
* I worked out redistribution terms on the firmware
* I ported the driver to Linux
* I integrated the driver and debugged it to achieve signal lock

And why is it not in the mainline?  Because none of the above matters
if I didn't waste a bunch of my time removing a bunch of #ifdef
WINDOWS lines and converting whitespace from tabs to spaces.

It's crap like this that's the reason why some of the best LinuxTV
driver authors still have a bunch of stuff that isn't merged upstream.
 We just don't have time for this sort of bullshit that any monkey
could do if he/she was willing to invest the effort.  We're just too
busy doing *actual* driver work.

Five years ago the hard part was finding competent developers, getting
access to datasheets, getting access to reference driver code, and
getting access to the details for a hardware design.  Now most of
those problems are not the issue - we have access to all the data but
we want to waste the time of the few competent developers out there
making them do coding style cleanup before perfectly good code gets
merged upstream.  There has been more than one case where I've
considered doing a driver for a new board and decided against it
because the barrier to getting it upstream is not worth my time.

Want to see more device support upstream?  Optimize the process to
make it easy for the people who know the hardware and how to write the
drivers to get code upstream, and leave it to the janitors to work
out the codingstyle issues.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Problems cloning the git repostories

2011-09-25 Thread Anca Emanuel
On Sun, Sep 25, 2011 at 3:33 PM, Patrick Dickey pdickeyb...@gmail.com wrote:
 Hello there,

 I tried to follow the steps for cloning both the media_tree.git and
 media_build.git repositories, and received errors for both.  The
 media_tree repository failed on the first line

 git clone 
 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git v4l-dvb

 which I'm assuming is because kernel.org is down.

 The media_build.git repository fails on the first line also

 git clone git://linuxtv.org/media_build.git

 with a fatal: read error: Connection reset by peer.


The linux tree is at: https://github.com/torvalds/linux
git clone git://github.com/torvalds/linux.git

The Mauro's media tree is at: http://git.linuxtv.org/mchehab/media-next.git
--
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] Fix to qt1010 tuner frequency selection (media/dvb)

2011-09-25 Thread Jyrki Kuoppala
I haven't gotten any feedback, and didn't see any comments on the lists 
(though I've checked them only occasionally), so I think you're probably 
right it fell between the cracks.


Jyrki


25.09.2011 19:13, Carlos Corbacho kirjoitti:

On Monday 22 Aug 2011 20:19:42 Jyrki Kuoppala wrote:

The patch fixes frequency selection for some UHF frequencies e.g.
channel 32 (562 MHz) on the qt1010 tuner. The tuner is used e.g. in the
MSI Mega Sky dvb-t stick (MSI Mega Sky 55801 DVB-T USB2.0)

One example of problem reports of the bug this fixes can be read at
http://www.freak-search.com/de/thread/330303/linux-dvb_tuning_problem_with_s
ome_frequencies_qt1010,_dvb

Applies to kernel versions 2.6.38.8, 2.6.39.4, 3.0.3 and 3.1-rc2.

Signed-off-by: Jyrki Kuoppalaj...@iki.fi

Cc: sta...@kernel.org
Tested-by: Carlos Corbachocar...@strangeworlds.co.uk

This patch means I can now finally tune to all the BBC channels (which are on
channel 31 (554 MHz) in my area). This should definitely go to stable, as I've
also seen other similar reports for users who can't tune to various channels
in the affected ranges here using qt1010.

Mauro - I don't see this one in your git tree in the 3.2 branch, or in the
temporary linuxtv patchwork, so I'm assuming this one fell between the cracks?

-Carlos


diff -upr linux-source-2.6.38.orig/drivers/media/common/tuners/qt1010.c
linux-source-2.6.38/drivers/media/common/tuners/qt1010.c
--- linux-source-2.6.38.orig/drivers/media/common/tuners/qt1010.c
2011-03-15 03:20:32.0 +0200
+++ linux-source-2.6.38/drivers/media/common/tuners/qt1010.c
2011-08-21 23:16:38.209580365 +0300
@@ -198,9 +198,10 @@ static int qt1010_set_params(struct dvb_

   /* 22 */
   if  (freq  45000) rd[15].val = 0xd0; /* 450 MHz */
-else if (freq  48200) rd[15].val = 0xd1; /* 482 MHz */
+else if (freq  48200) rd[15].val = 0xd2; /* 482 MHz */
   else if (freq  51400) rd[15].val = 0xd4; /* 514 MHz */
-else if (freq  54600) rd[15].val = 0xd7; /* 546 MHz */
+else if (freq  54600) rd[15].val = 0xd6; /* 546 MHz */
+else if (freq  57800) rd[15].val = 0xd8; /* 578 MHz */
   else if (freq  61000) rd[15].val = 0xda; /* 610 MHz */
   else   rd[15].val = 0xd0;


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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


cron job: media_tree daily build: ERRORS

2011-09-25 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:Sun Sep 25 19:00:15 CEST 2011
git hash:d7222e7d6fb06ca3e7aa7a1ab07f8e6c6adb1d22
gcc version:  i686-linux-gcc (GCC) 4.6.1
host hardware:x86_64
host os:  3.0-4.slh.3-amd64

linux-git-armv5: WARNINGS
linux-git-armv5-davinci: WARNINGS
linux-git-armv5-ixp: WARNINGS
linux-git-armv5-omap2: WARNINGS
linux-git-i686: WARNINGS
linux-git-m32r: OK
linux-git-mips: WARNINGS
linux-git-powerpc64: WARNINGS
linux-git-x86_64: WARNINGS
linux-2.6.31.12-i686: ERRORS
linux-2.6.32.6-i686: ERRORS
linux-2.6.33-i686: ERRORS
linux-2.6.34-i686: ERRORS
linux-2.6.35.3-i686: ERRORS
linux-2.6.36-i686: ERRORS
linux-2.6.37-i686: ERRORS
linux-2.6.38.2-i686: ERRORS
linux-2.6.39.1-i686: ERRORS
linux-3.0-i686: ERRORS
linux-3.1-rc1-i686: ERRORS
linux-2.6.31.12-x86_64: ERRORS
linux-2.6.32.6-x86_64: ERRORS
linux-2.6.33-x86_64: ERRORS
linux-2.6.34-x86_64: ERRORS
linux-2.6.35.3-x86_64: ERRORS
linux-2.6.36-x86_64: ERRORS
linux-2.6.37-x86_64: ERRORS
linux-2.6.38.2-x86_64: ERRORS
linux-2.6.39.1-x86_64: ERRORS
linux-3.0-x86_64: ERRORS
linux-3.1-rc1-x86_64: ERRORS
spec-git: WARNINGS
sparse: ERRORS

Detailed results are available here:

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

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Sunday.tar.bz2

The V4L-DVB specification from this daily build is here:

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


Re: af9015/tda18218: Multiples (separates) usb devices errors/conflicts

2011-09-25 Thread Josu Lazkano
2011/9/24 Jin Kazama jin...@skynet.fr:
 On 9/24/11 12:06 AM, Antti Palosaari wrote:

 On 09/24/2011 12:06 AM, Jin Kazama wrote:

 Hello,
 I've been testing af9015/tda18218 based usb DVB-T tuners on a 2.6.39.4
 kernel with the latest v4l drivers avaiable (from git).
 When I'm using a single USB module, (listed as /dev/dvb/adapter0),
 everything works fine.
 When I'm plugging another module, at first it looks like everything's ok
 (/dev/dvb/adapter1) and if I try to use this module while the adapter0
 is not been used, it works - but if try to use both modules at the same
 time, I get garbage output on both cards (error: warning: discontinuity
 for PID... with dvblast on both cards.
 Does anyone have any idea on how to fix this problem?

 Feel free to fix it. I am too busy currently.

 Well, it looks like if I put 2 devices on different USB buses (on the same
 machine), they work fine, but if they're on the same USB bus, I get the
 problem...
 I think the driver may get raw data from the USB bus - and the way it
 identifies the device is not the proper way (I have 2 exactly identical
 devices) = when both devices send data, the driver catches all the data
 from the bus, which is a corrupt mix of both streams...)
 Unfortunately, I don't think that I'm capable of fixing the problem by
 myself, I don't even know which part of the driver to look for... if someone
 can give me a hint, I might *try* to *attempt* to fix it :)...
 --
 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


Hello, I have similar problem, I have a dual tuner and they don't work together:

# i2cdetect -l
i2c-0   smbus   SMBus nForce2 adapter at 4d00   SMBus adapter
i2c-1   i2c cx23885[0]  I2C adapter
i2c-2   i2c cx23885[0]  I2C adapter
i2c-3   i2c cx23885[0]  I2C adapter
i2c-4   i2c NVIDIA i2c adapter 0 at 3:00.0  I2C adapter
i2c-5   i2c NVIDIA i2c adapter 2 at 3:00.0  I2C adapter
i2c-6   i2c NVIDIA i2c adapter 3 at 3:00.0  I2C adapter
i2c-7   i2c KWorld PlusTV Dual DVB-T Stick (DVB-T 399U) I2C 
adapter
i2c-8   i2c KWorld PlusTV Dual DVB-T Stick (DVB-T 399U) I2C 
adapter

I can not change the USB bus, because they are on the same physical
device.I have no idea how to fix it but I am ready to test all fixes.
I read some Antti posts on how to is designed the af9015 dual demod:

http://www.mail-archive.com/linux-media@vger.kernel.org/msg36821.html
http://palosaari.fi/linux/v4l-dvb/controlling_tuner_af9015_dual_demod.txt

Is there any tool to check the i2c errors?

Thanks for all your work and best regards.

-- 
Josu Lazkano
--
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 v3] EM28xx - fix deadlock when unplugging and replugging a DVB adapter

2011-09-25 Thread Mauro Carvalho Chehab
Em 25-09-2011 10:32, Chris Rankin escreveu:
 On 25/09/11 14:00, Mauro Carvalho Chehab wrote:
 Hmm... This would probably work better (not tested). Could you please test it
 on your hardware?
 
 Hmm, I don't understand this.
 The deadlock isn't about taking em28xx_devlist_mutex, but happens because 
 em28xx_dvb_init() tries to retake dev-lock when em28xx_usb_probe() is 
 already holding it. That's why I unlocked dev-lock before calling 
 em28xx_init_extension().
 
 So why are you avoiding locking em28xx_devlist_mutex?

Yeah, I realized it just after sending it. I didn't have time to re-post another
email, as I was about to leave.

I'm still not comfortable on releasing the mutex too early, as this may cause 
driver
hungup, due to udev early access. I'll try to do some tests with it here, and 
think on
a better solution.

 
 Cheers,
 Chris
 
 diff --git a/drivers/media/video/em28xx/em28xx-cards.c 
 b/drivers/media/video/em28xx/em28xx-cards.c
 index 7297d90..c92c177 100644
 --- a/drivers/media/video/em28xx/em28xx-cards.c
 +++ b/drivers/media/video/em28xx/em28xx-cards.c
 @@ -3005,7 +3005,8 @@ static int em28xx_init_dev(struct em28xx **devhandle, 
 struct usb_device *udev,
   goto fail;
   }

 -em28xx_init_extension(dev);
 +/* dev-lock needs to be holded */
 +__em28xx_init_extension(dev);

   /* Save some power by putting tuner to sleep */
   v4l2_device_call_all(dev-v4l2_dev, 0, core, s_power, 0);
 @@ -3301,10 +3302,10 @@ static void em28xx_usb_disconnect(struct 
 usb_interface *interface)
   em28xx_release_resources(dev);
   }

 -em28xx_close_extension(dev);
 -
   mutex_unlock(dev-lock);

 +em28xx_close_extension(dev);
 +
   if (!dev-users) {
   kfree(dev-alt_max_pkt_size);
   kfree(dev);
 diff --git a/drivers/media/video/em28xx/em28xx-core.c 
 b/drivers/media/video/em28xx/em28xx-core.c
 index 804a4ab..afddfea 100644
 --- a/drivers/media/video/em28xx/em28xx-core.c
 +++ b/drivers/media/video/em28xx/em28xx-core.c
 @@ -1218,16 +1218,22 @@ void em28xx_unregister_extension(struct em28xx_ops 
 *ops)
   }
   EXPORT_SYMBOL(em28xx_unregister_extension);

 -void em28xx_init_extension(struct em28xx *dev)
 +/* Need to take the mutex lock before calling it */
 +void __em28xx_init_extension(struct em28xx *dev)
   {
   const struct em28xx_ops *ops = NULL;

 -mutex_lock(em28xx_devlist_mutex);
   list_add_tail(dev-devlist,em28xx_devlist);
   list_for_each_entry(ops,em28xx_extension_devlist, next) {
   if (ops-init)
   ops-init(dev);
   }
 +}
 +
 +void em28xx_init_extension(struct em28xx *dev)
 +{
 +mutex_lock(em28xx_devlist_mutex);
 +__em28xx_init_extension(dev);
   mutex_unlock(em28xx_devlist_mutex);
   }

 diff --git a/drivers/media/video/em28xx/em28xx.h 
 b/drivers/media/video/em28xx/em28xx.h
 index 1626e4a..a5c1ba2 100644
 --- a/drivers/media/video/em28xx/em28xx.h
 +++ b/drivers/media/video/em28xx/em28xx.h
 @@ -682,6 +682,7 @@ void em28xx_remove_from_devlist(struct em28xx *dev);
   void em28xx_add_into_devlist(struct em28xx *dev);
   int em28xx_register_extension(struct em28xx_ops *dev);
   void em28xx_unregister_extension(struct em28xx_ops *dev);
 +void __em28xx_init_extension(struct em28xx *dev);
   void em28xx_init_extension(struct em28xx *dev);
   void em28xx_close_extension(struct em28xx *dev);

 

--
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 v3] EM28xx - fix deadlock when unplugging and replugging a DVB adapter

2011-09-25 Thread Mauro Carvalho Chehab
Em 25-09-2011 16:28, Chris Rankin escreveu:
 --- On Sun, 25/9/11, Mauro Carvalho Chehab mche...@redhat.com wrote:
 Ok, I've applied it, but it doesn't sound a good idea to me
 to do:

 +mutex_unlock(dev-lock);
  em28xx_init_extension(dev);
 +mutex_lock(dev-lock);

 
 Yes, I suppose it's the logical equivalent of moving the 
 em28xx_init_extension(dev) call from em28xx_init_dev(), and placing it 
 immediately after the final mutex_unlock(dev-lock) call in 
 em28xx_usb_probe() instead. Which would be cleaner, quite frankly.
 
 Which stage of the v4l2 initialisation triggers the race with udev? 
 v4l2_device_register()? 

Yes. Just after creating a device, udev tries to access it. This bug is more 
sensitive on
multi-CPU machines, as udev may run on another CPU.

 
 Cheers,
 Chris
 

--
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: Status of the patches under review at LMML (28 patches)

2011-09-25 Thread Pawel Osciak
Hi Mauro,

On Sat, Sep 24, 2011 at 05:34, Mauro Carvalho Chehab mche...@redhat.com wrote:
 Everything at patchwork were reviewed by me, and I've applied all patches
 that I didn't notice any review by the drivers maintainers.

 Driver maintainers:
 Please review the remaining patches.
(...)
                == Waiting for Pawel Osiak pa...@osciak.com review ==

 Jul,12 2011: v4l: mem2mem: add wait_{prepare,finish} ops to m2m_testdev       
       http://patchwork.linuxtv.org/patch/7431   Michael Olbrich 
 m.olbr...@pengutronix.de


This is an ack from me.

-- 
Best regards,
Pawel Osciak
--
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] EM28xx - replug locking cleanup

2011-09-25 Thread Chris Rankin

Mauro,

This patch simplifies the locking by moving the em28xx_init_extension() call 
until em28xx_usb_probe() has finished with the dev-lock mutex. It therefore 
makes the second and subsequent plugging events logically identical to the 
first plugging event when the em28xx-dvb and em28xx-alsa modules must be 
loaded (i.e. registered).


Basically, em28xx_usb_probe() requests that em28xx-dvb be loaded and also 
triggers udev to initialise the V4L2 devices. These two events are serialised by 
the dev-lock mutex but the order that they happen in is undefined. But this has 
always been the case anyway.


Signed-off-by: Chris Rankin ranki...@yahoo.com

Cheers,
Chris
--- linux/drivers/media/video/em28xx/em28xx-cards.c.orig	2011-09-25 22:51:59.0 +0100
+++ linux/drivers/media/video/em28xx/em28xx-cards.c	2011-09-25 23:24:06.0 +0100
@@ -3005,10 +3005,6 @@
 		goto fail;
 	}
 
-	mutex_unlock(dev-lock);
-	em28xx_init_extension(dev);
-	mutex_lock(dev-lock);
-
 	/* Save some power by putting tuner to sleep */
 	v4l2_device_call_all(dev-v4l2_dev, 0, core, s_power, 0);
 
@@ -3243,6 +3239,13 @@
 	 */
 	mutex_unlock(dev-lock);
 
+	/*
+	 * These extensions can be modules. If the modules are already
+	 * loaded then we can initialise the device now, otherwise we
+	 * will initialise it when the modules load instead.
+	 */
+	em28xx_init_extension(dev);
+
 	return 0;
 
 err:


Re: Problems cloning the git repostories

2011-09-25 Thread Mauro Carvalho Chehab
Em 25-09-2011 15:03, Johannes Stezenbach escreveu:
 On Sun, Sep 25, 2011 at 07:33:57AM -0500, Patrick Dickey wrote:

 I tried to follow the steps for cloning both the media_tree.git and
 media_build.git repositories, and received errors for both.  The
 media_tree repository failed on the first line

 git clone 
 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 
 v4l-dvb 

 which I'm assuming is because kernel.org is down.

 The media_build.git repository fails on the first line also

 git clone git://linuxtv.org/media_build.git 

 with a fatal: read error: Connection reset by peer.
 
 The git error should be fixed now.
 
 But please don't clone from linuxtv.org, intead use
 git clone git://github.com/torvalds/linux.git
 and then add linuxtv to your repo like described on
 http://git.linuxtv.org/media_tree.git

I've updated the instructions together with the git tree to point to the
github tree.

Btw, the media_build had an issue due to the move of tm6000 and altera-stapl
out of staging. I've fixed it. At least here with 3.0 kernel, everything
is compiling fine.

Cheers,
Mauro
 
 
 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: Problems cloning the git repostories

2011-09-25 Thread Mauro Carvalho Chehab
Em 25-09-2011 10:55, Devin Heitmueller escreveu:
 On Sun, Sep 25, 2011 at 8:33 AM, Patrick Dickey pdickeyb...@gmail.com wrote:
 Hello there,

 I tried to follow the steps for cloning both the media_tree.git and
 media_build.git repositories, and received errors for both.  The
 media_tree repository failed on the first line

 git clone 
 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git v4l-dvb

 which I'm assuming is because kernel.org is down.

 The media_build.git repository fails on the first line also

 git clone git://linuxtv.org/media_build.git

 with a fatal: read error: Connection reset by peer.

 Is it possible to clone either (or both) repositories at this time, or
 are they down?  And in the absence of cloning the kernel for the
 media_tree.git repository, is it possible to simply clone the
 git://linuxtv.org/media_tree.git repository and work from that?

 My interest in this is to install some patches created by Devin
 Heitmueller for the Pinnacle PCTV 80e USB tuner (at least the ATSC
 portion of the tuner). Once I'm able to determine exactly what changes
 are made, I would like to either submit the patches to the repository,
 or send them to someone who has more experience in patching the files
 for submission.

 One other question (totally unrelated to this post though): When I send
 emails, normally they are GPG signed. Should I disable that for this
 list, or is it acceptable?

 Thank you for any information, and have a great day:)
 Patrick.
 
 Hi Patrick,
 
 As I said on the blog, the issue isn't getting the driver to work
 against current kernels.  Merging the driver against the current tree
 is a trivial exercise (the patch series should apply trivially against
 the current code, with only a few minor conflicts related to board
 numbers, etc).
 
 The bigger issue though is once you do that and have the driver
 running, you now have a body of code  10,000 lines which doesn't meet
 the coding standards.  Doing such a refactoring is a relatively
 straightforward exercise but very time consuming (you already have a
 working driver, so you just have to make sure you don't break
 anything).
 
 The more I think about this, the more it annoys me.  I did all the hard parts:
 
 * I worked with the product vendor to get the details for the design
 * I got Hauppauge/PCTV to compel the chipset vendor to release the
 reference code under a GPL compatible license
 * I worked out redistribution terms on the firmware
 * I ported the driver to Linux
 * I integrated the driver and debugged it to achieve signal lock
 
 And why is it not in the mainline?  Because none of the above matters
 if I didn't waste a bunch of my time removing a bunch of #ifdef
 WINDOWS lines and converting whitespace from tabs to spaces.

 It's crap like this that's the reason why some of the best LinuxTV
 driver authors still have a bunch of stuff that isn't merged upstream.
  We just don't have time for this sort of bullshit that any monkey
 could do if he/she was willing to invest the effort.  We're just too
 busy doing *actual* driver work.
 
 Five years ago the hard part was finding competent developers, getting
 access to datasheets, getting access to reference driver code, and
 getting access to the details for a hardware design.  Now most of
 those problems are not the issue - we have access to all the data but
 we want to waste the time of the few competent developers out there
 making them do coding style cleanup before perfectly good code gets
 merged upstream.  There has been more than one case where I've
 considered doing a driver for a new board and decided against it
 because the barrier to getting it upstream is not worth my time.
 

I fail to see any trial from your side to send the patches upstream:
no pull requests and no patches for this driver were _ever_ sent to
the ML. I can only guess that maybe submitting it upstream were not
part of your contract with the vendor.

Coding Style fixes are generally trivial, and they can be done very quickly
with some scripting. I took only a few hours to convert drx-d and drx-k
to the Linux Coding Style, on my spare time. The scripts I wrote for that
are together with the commits (they're generally a few lines perl scripting
doing some replacements). I usually do this with other drivers, when people
submit me them with those troubles and I have some time, and never asked
or earned a single penny for doing that.

Also, as I've told you several times before, code with broken coding styles
can be submitted as-is, without any changes to drivers/staging, where they're
fixed by kernel newbies with more time to work on that.

So, please don't use weak arguments like that as an excuse for you to not 
submit your drivers.

 Want to see more device support upstream?  Optimize the process to
 make it easy for the people who know the hardware and how to write the
 drivers to get code upstream, and leave it to the janitors to work
 out the codingstyle issues.

The 

Re: [PATCH 2/5] [media]: OMAP_VOUT: CLEANUP: Remove redundant code from omap_vout_isr

2011-09-25 Thread Archit Taneja

Hi,

On Wednesday 21 September 2011 04:15 PM, Taneja, Archit wrote:

Hi,

On Wednesday 21 September 2011 03:35 PM, Hiremath, Vaibhav wrote:



-Original Message-
From: Taneja, Archit
Sent: Friday, September 16, 2011 3:31 PM
To: Hiremath, Vaibhav
Cc: Valkeinen, Tomi; linux-o...@vger.kernel.org; Semwal, Sumit; linux-
me...@vger.kernel.org; Taneja, Archit
Subject: [PATCH 2/5] [media]: OMAP_VOUT: CLEANUP: Remove redundant code
from omap_vout_isr

Currently, there is a lot of redundant code is between DPI and VENC panels,
this
can be made common by moving out field/interlace specific code to a
separate
function called omapvid_handle_interlace_display(). There is no functional
change made.

Signed-off-by: Archit Tanejaarc...@ti.com
---
   drivers/media/video/omap/omap_vout.c |  172 -
-




[Hiremath, Vaibhav]
Have you tested TV out functionality?


I haven't checked it yet to be totally honest. Its hard to find a VENC
TV! I wanted to anyway get some kind of Ack from you before starting to
test this. Since you also feel that this clean up is needed, I'll start
testing this out :)


I tested the TV out functionality. It works fine. I have left the extra 
fid == 0 check so that the code is more clear. Will post out the new 
patch soon.


Archit
--
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