Re: iram pool not available for MX27

2013-10-29 Thread Chris Ruehl

On Monday, September 30, 2013 05:14 PM, Chris Ruehl wrote:

On Monday, September 30, 2013 05:08 PM, Chris Ruehl wrote:

Hi Philipp,

On Monday, September 30, 2013 04:30 PM, Philipp Zabel wrote:

Hi Chris,

Am Montag, den 30.09.2013, 13:40 +0800 schrieb Chris Ruehl:

Hi Phillipp,

hope things doing OK.

I recently update to the 3.12-rc kernel and hit this problem below.

[ 3.377790] coda coda-imx27.0: iram pool not available
[ 3.383363] coda: probe of coda-imx27.0 failed with error -12

I read your comments of the patch-set using platform data rather then
hard coded addresses to get
the ocram from a SoC.

I checked the imx27.dtsi for the iram (coda: coda@..) definition and
compare with the former hard coded address and size it matches.

My .config also has the CONFIG_OF set.

Any Idea what's go wrong?

do you have the mmio-sram driver enabled (CONFIG_SRAM=y)?

regards
Philipp



No, I didn't,  and I found out that my device is not yet ported to 
use Device Tree Support


for the moment I will quick add the CONFIG_SRAM  and see what happen,
but on the long term I move my code (clone of mach-mx27ads.c)
to DTS which makes absolute sense when I see how nice that code works.

Thanks for the reply!
Chris

CONFIG_SRAM not solve my problem, I must port the code to Device Tree 
Support and call the of_ functions to make the iram config available.


thank you.
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


Hi,

almost done but the coda works now with my board :-) and more questions 
coming up

but 1st:
[4.626900] udevd[717]: starting version 175
[7.190348] coda 10023000.coda: Initialized CodaDx6.
[7.195486] coda 10023000.coda: Firmware version: 2.2.5
[7.313178] coda 10023000.coda: codec registered as /dev/video0
[   13.999803] EXT4-fs (mmcblk0p1): re-mounted. Opts: (null)

:-) )))

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: imx27.dtsi usbotg/usbh2 oops in fsl_usb2_mph_dr_of_probe

2013-10-29 Thread Chris Ruehl

On Monday, October 28, 2013 08:42 PM, Chris Ruehl wrote:

On Monday, October 28, 2013 08:25 PM, Fabio Estevam wrote:
On Mon, Oct 28, 2013 at 10:17 AM, Chris Ruehl 
chris.ru...@gtsys.com.hk wrote:

Hi,

when tried to activate the USB-OTG or USBH2 with the FDT the system 
oops

You should have posted this to the linux-usb list instead :-)



config: (imx27.dtsi)

 usbotg: usb@10024000 {
 compatible = fsl-usb2-dr;

You should use compatible =fsl,imx27-usb so that it uses the
chipidea usb driver.

I didn't get USB detected with

compatible =fsl,imx27-usb

nothing happen.

The ChipIdea was not selected in the .config  and this is why nothing 
come out.

(only if someone read the thread and wondering why)


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


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


Re: [PATCH 3/7] video: exynos_mipi_dsim: Use the generic PHY driver

2013-10-29 Thread Donghwa Lee
Hi Tomasz,
On Tue, OCT 28, 2013 21:24, Tomasz Figa wrote:
 Hi Donghwa,

 On Monday 28 of October 2013 15:12:08 Donghwa Lee wrote:
 On Fri, OCT 25, 2013 06:57, Sylwester Nawrocki wrote:
 On 10/24/2013 05:57 PM, Kishon Vijay Abraham I wrote:
 On Thursday 24 October 2013 09:12 PM, Sachin Kamat wrote:
 On 24 October 2013 20:00, Olof Johanssono...@lixom.net  wrote:
 On Wed, Oct 16, 2013 at 9:28 AM, Kishon Vijay Abraham Ikis...@ti.com  
 wrote:
 diff --git a/drivers/video/exynos/exynos_mipi_dsi.c 
 b/drivers/video/exynos/exynos_mipi_dsi.c
 index 32e5406..00b3a52 100644
 --- a/drivers/video/exynos/exynos_mipi_dsi.c
 +++ b/drivers/video/exynos/exynos_mipi_dsi.c
 @@ -156,8 +157,7 @@ static int exynos_mipi_dsi_blank_mode(struct 
 mipi_dsim_device *dsim, int power)
  exynos_mipi_regulator_enable(dsim);

  /* enable MIPI-DSI PHY. */
 -   if (dsim-pd-phy_enable)
 -   dsim-pd-phy_enable(pdev, true);
 +   phy_power_on(dsim-phy);

  clk_enable(dsim-clock);

 This introduces the below with exynos_defconfig:

 ../../drivers/video/exynos/exynos_mipi_dsi.c: In function
 'exynos_mipi_dsi_blank_mode':
 ../../drivers/video/exynos/exynos_mipi_dsi.c:144:26: warning: unused
 variable 'pdev' [-Wunused-variable]
struct platform_device *pdev = to_platform_device(dsim-dev);
 Sorry about missing that, I only noticed this warning recently and didn't
 get around to submit a patch.

 I have already submitted a patch to fix this [1]
 Thanks a lot guys for fixing this.

 [1] http://marc.info/?l=linux-fbdevm=138233359617936w=2
 Sorry, missed that :-(
 This MIPI DSIM driver is affectively a dead code in the mainline now, once
 Exynos become a dt-only platform. I guess it can be deleted for 3.14, once
 S5P gets converted to the device tree. The new driver using CDF is basically
 a complete rewrite. Or device tree support should be added to that driver,
 but I believe it doesn't make sense without CDF.

 MIPI DSIM driver is not a dead code. There is a steady trickle of patches.
 It's kind of late, but, I will update it as DT based drivers as soon as 
 possible.
 And Why do you think that DT support of existing MIPI DSIM is something less
 than great?
 First of all, the exynos_mipi_dsim driver has currently no users in
 mainline kernel, so it is essentially dead code. In addition, on
 a platform that is the primary candidate for using it, which is Exynos,
 there is no way to use it, due to no DT support.
As I mentioned above, patches are submitted sometimes and I will update
this driver as soon as possible to support DT.
 As for the driver itself, it is not really a great example of good code.
 It contains a hacks, like calling msleep() without any clear reason and
 also many coding style issues. I'd prefer to replace it with the new
 exynos-dsi driver rewritten completely in SRPOL, when CDF is finished.

Yes, I know this drivers had been changed about only minor issues and
it is not really good code style. And CDF is more good and light.
But discussion for CDF is still remaining a kind of requests. If it is merged
into linux kernel and many users use it, existing MIPI DSI drivers will be
replaced with the new drivers naturally, isn't it?
Until that, I and quite a few users will update and code re-factory for
this drivers to be more better.

BR,
Donghwa Lee
 Best regards,
 Tomasz



--
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] videobuf2: Add missing lock held on vb2_fop_relase

2013-10-29 Thread Ricardo Ribalda Delgado
Hello

Anybody has a comment here? If not I will post a patch with the
modifications propossed by Sylwester.


Thanks!

On Sat, Oct 19, 2013 at 10:08 PM, Ricardo Ribalda Delgado
ricardo.riba...@gmail.com wrote:
 Hello Sylwester


 On Sat, Oct 19, 2013 at 8:27 PM, Sylwester Nawrocki
 sylvester.nawro...@gmail.com wrote:
 On 10/19/2013 06:07 PM, Ricardo Ribalda wrote:
 [...]

 ---
   drivers/media/platform/exynos4-is/fimc-capture.c |  2 +-
   drivers/media/platform/exynos4-is/fimc-lite.c|  2 +-
   drivers/media/usb/em28xx/em28xx-video.c  |  2 +-
   drivers/media/v4l2-core/videobuf2-core.c | 18 +-
   include/media/videobuf2-core.h   |  2 ++
   5 files changed, 22 insertions(+), 4 deletions(-)

 diff --git a/drivers/media/platform/exynos4-is/fimc-capture.c
 b/drivers/media/platform/exynos4-is/fimc-capture.c
 index fb27ff7..c38d247c 100644
 --- a/drivers/media/platform/exynos4-is/fimc-capture.c
 +++ b/drivers/media/platform/exynos4-is/fimc-capture.c
 @@ -549,7 +549,7 @@ static int fimc_capture_release(struct file *file)
 vc-streaming = false;
 }

 -   ret = vb2_fop_release(file);
 +   ret = __vb2_fop_release(file, true);

 if (close) {
 clear_bit(ST_CAPT_BUSY,fimc-state);

 diff --git a/drivers/media/platform/exynos4-is/fimc-lite.c
 b/drivers/media/platform/exynos4-is/fimc-lite.c
 index e5798f7..021d804 100644
 --- a/drivers/media/platform/exynos4-is/fimc-lite.c
 +++ b/drivers/media/platform/exynos4-is/fimc-lite.c
 @@ -546,7 +546,7 @@ static int fimc_lite_release(struct file *file)
 mutex_unlock(entity-parent-graph_mutex);
 }

 -   vb2_fop_release(file);
 +   __vb2_fop_release(file, true);
 pm_runtime_put(fimc-pdev-dev);
 clear_bit(ST_FLITE_SUSPENDED,fimc-state);


 diff --git a/drivers/media/usb/em28xx/em28xx-video.c
 b/drivers/media/usb/em28xx/em28xx-video.c
 index 9d10334..6a5c147 100644
 --- a/drivers/media/usb/em28xx/em28xx-video.c
 +++ b/drivers/media/usb/em28xx/em28xx-video.c
 @@ -1664,7 +1664,7 @@ static int em28xx_v4l2_close(struct file *filp)
 em28xx_videodbg(users=%d\n, dev-users);

 mutex_lock(dev-lock);
 -   vb2_fop_release(filp);
 +   __vb2_fop_release(filp, false);


 I believe no modifications are needed for this driver.


 if (dev-users == 1) {
 /* the device is already disconnect,
 diff --git a/drivers/media/v4l2-core/videobuf2-core.c
 b/drivers/media/v4l2-core/videobuf2-core.c
 index 594c75e..ce309a8 100644
 --- a/drivers/media/v4l2-core/videobuf2-core.c
 +++ b/drivers/media/v4l2-core/videobuf2-core.c
 @@ -2619,16 +2619,32 @@ int vb2_fop_mmap(struct file *file, struct
 vm_area_struct *vma)
   }
   EXPORT_SYMBOL_GPL(vb2_fop_mmap);

 -int vb2_fop_release(struct file *file)
 +int __vb2_fop_release(struct file *file, bool lock_is_held)
   {
 struct video_device *vdev = video_devdata(file);
 +   struct mutex *lock;

 if (file-private_data == vdev-queue-owner) {
 +   if (lock_is_held)
 +   lock = NULL;
 +   else
 +   lock = vdev-queue-lock ?
 +   vdev-queue-lock : vdev-lock;
 +   if (lock)
 +   mutex_lock(lock);
 vb2_queue_release(vdev-queue);
 vdev-queue-owner = NULL;
 +   if (lock)
 +   mutex_unlock(lock);
 }
 return v4l2_fh_release(file);
   }
 +EXPORT_SYMBOL_GPL(__vb2_fop_release);
 +
 +int vb2_fop_release(struct file *file)
 +{
 +   return __vb2_fop_release(file, false);
 +}
   EXPORT_SYMBOL_GPL(vb2_fop_release);


 It might be better to make it something like:


 The rationale behind my patch (and probably not properly commented) is
 that the vb2_fop_release must be used ONLY as a file operantion
 handler.

 If the user makes its own function for relase the __vb2_fop_release
 function must be used and the infrastructure must be notified about
 the status of he lock (he is on his own).

 I believe my approach is simpler because It has only two functions
 (instead of 3) and the user understand the difference of the two
 functions just by looking at the arguments. In the future we could
 even check statically that  vb2_fop_release is not called inside a
 driver.

 Anyway, this is just a detail :), the most important part is that the
 oops is fixed, and that all the drivers that worked keep working.

 Lets wait for more comments and then lets post a new patch (with two
 functions and better documentation, or three functions).

 Thank you very much for you comments!!!

 static int _vb2_fop_release(struct file *file, bool locked)

 {
 struct video_device *vdev = video_devdata(file);
 struct mutex *lock;

 if (file-private_data == vdev-queue-owner) {
 lock = vdev-queue-lock ?
 vdev-queue-lock : vdev-lock;

   

Re: [GIT PULL FOR 3.13] Exynos5 SoC FIMC-IS imaging subsystem driver

2013-10-29 Thread Mauro Carvalho Chehab
Em Tue, 29 Oct 2013 01:06:30 +0100
Sylwester Nawrocki sylvester.nawro...@gmail.com escreveu:

 Hi Mauro,
 
 On 10/28/2013 11:11 PM, Mauro Carvalho Chehab wrote:
  The following changes since commit 
  8ca5d2d8e58df7235b77ed435e63c484e123fede:
  
   [media] uvcvideo: Fix data type for pan/tilt control (2013-10-17 
   06:55:29 -0300)
  
are available in the git repository at:
  
   git://linuxtv.org/snawrocki/samsung.git for-v3.13-2
  
for you to fetch changes up to 6eb89d71b27e6731755ab5722f3cdc0f6e8273f2:
  
   V4L: Add s5k4e5 sensor driver (2013-10-18 21:36:42 +0200)
  

Arun Kumar K (12):
   exynos5-fimc-is: Add Exynos5 FIMC-IS device tree bindings 
   documentation
 
  As agreed during KS, the subsystem maintainers should wait for a 
  documentation
  review on DT by the DT maintainers, at least for a while.
 
  So, I'd like to see either their reviews on this patch:
  https://patchwork.linuxtv.org/patch/20439/
 
  Or their ack for us to apply it.
 
 I agree with you on that. Just please note the first version of this patch
 has been posted *5 months* ago https://patchwork.linuxtv.org/patch/18684
 
 Stephen has reviewed subsequent version about 3 months ago:
 https://patchwork.linuxtv.org/patch/19521
 
 Then we got no more comments from DT maintainers, I have reviewed this patch
 multiple times on the mailing lists:
 https://patchwork.linuxtv.org/patch/19715
 https://patchwork.linuxtv.org/patch/19749
 
 And explicitly asked for an Ack:
 https://patchwork.linuxtv.org/patch/19832
 
 Then those 2 versions passed silently:
 https://patchwork.linuxtv.org/patch/20055
 https://patchwork.linuxtv.org/patch/20225
 
 And...huh...we got another review, I didn't notice it until now:
 https://patchwork.linuxtv.org/patch/20439 Thanks Mark.
 
 Arun, care to address those review comments and send us an updated
 binding documentation patch ?
 
 Hence I think we have waited for a while. ;)
 
   exynos5-fimc-is: Add driver core files
   exynos5-fimc-is: Add common driver header files
   exynos5-fimc-is: Add register definition and context header
   exynos5-fimc-is: Add isp subdev
   exynos5-fimc-is: Add scaler subdev
   exynos5-fimc-is: Add sensor interface
   exynos5-fimc-is: Add the hardware pipeline control
   exynos5-fimc-is: Add the hardware interface module
   exynos5-is: Add Kconfig and Makefile
   V4L: Add DT binding doc for s5k4e5 image sensor
 
  Same applies to this patch:
  https://patchwork.linuxtv.org/patch/20448/
 
 This one also have been on the mailing list for quite some time and it
 uses already standard bindings, so I assumed it is OK to merge it.
 
 https://patchwork.linuxtv.org/project/linux-media/list/?state=*q=s5k4e5
 
 But if there must be an Ack then we shall wait, it will probably won't
 make a big difference now, if this patch is postponed by 3 more months.

Yeah, it seems that we've waited for a long time to get an ack there.

So, let's do this:

Please send a new version with Mark's comments. Also, please split Doc 
changes from the code changes on the new series. I'll wait for a couple
days for DT people to review it. If we don't have any reply, I'll review
and apply it for Kernel 3.13, if I don't see anything really weird on it.

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: ov3640 driver tested with media-ctl and yavta

2013-10-29 Thread Tom
Tom Bassai_Dai at gmx.net writes:

 
 Hello,
 I tried to use the ov3640 camera driver from Laurent Pinchart with the
 media-ctl and the yavta tools. I configured the pipeline as sensor - ccdc
 -memory. First I got problems with the CCDC module. it always said that the
 ccdc won't become idle!, but it didn't restart by itself. So for testing I
 removed the waiting function which waits for the ccdc to become idle and
 tried again. Now I received some data from the buffers but the image is just
 black.
 Any idea what my problem could be?
 
 Best Regards, Tom
 
 


Hello,

I still have the problem that I don't receive any image data when the
waiting function is commented in. I just get the ccdc won't become idle
output. when this function is commented out and the polarities within the
board-overo.c file are correct. I get some image data on which I can see the
right structure but wrong colors. 

Does anyone have an idea what the problem could be when the color is incorrect?

http://imageshack.us/photo/my-images/707/wkjf.png/

Regrads, 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] rtl2830: add parent for I2C adapter

2013-10-29 Thread Antti Palosaari

Wolfram,

Phil email address was not valid anymore, so could you Wolfram, as a I2C 
subsystem maintainer, look and comment that. The fact is that my driver 
has a 3.12 regression and I want to know where it is coming from to make 
decision what to do!


regards
Antti


On 21.10.2013 23:20, Antti Palosaari wrote:

Hello Phil and Wolfram,

I found one of my drivers was crashing when DTV USB stick was plugged.
Patch in that mail patch fixes the problem.

I quickly looked possible I2C patches causing the problem and saw that
one as most suspicions:

commit 3923172b3d700486c1ca24df9c4c5405a83e2309
i2c: reduce parent checking to a NOOP in non-I2C_MUX case

My config has no CONFIG_I2C_MUX set currently, but I am not sure how it
has been earlier.

Any idea?

regards
Antti


On 21.10.2013 23:12, Antti Palosaari wrote:

i2c i2c-6: adapter [RTL2830 tuner I2C adapter] registered
BUG: unable to handle kernel NULL pointer dereference at 0220
IP: [a0002900] i2c_register_adapter+0x130/0x390 [i2c_core]

Signed-off-by: Antti Palosaari cr...@iki.fi
---
  drivers/media/dvb-frontends/rtl2830.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/media/dvb-frontends/rtl2830.c
b/drivers/media/dvb-frontends/rtl2830.c
index 362d26d..68ee70b 100644
--- a/drivers/media/dvb-frontends/rtl2830.c
+++ b/drivers/media/dvb-frontends/rtl2830.c
@@ -700,6 +700,7 @@ struct dvb_frontend *rtl2830_attach(const struct
rtl2830_config *cfg,
  sizeof(priv-tuner_i2c_adapter.name));
  priv-tuner_i2c_adapter.algo = rtl2830_tuner_i2c_algo;
  priv-tuner_i2c_adapter.algo_data = NULL;
+priv-tuner_i2c_adapter.dev.parent = i2c-dev;
  i2c_set_adapdata(priv-tuner_i2c_adapter, priv);
  if (i2c_add_adapter(priv-tuner_i2c_adapter)  0) {
  dev_err(i2c-dev,







--
http://palosaari.fi/
--
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 v3] [RFC] v4l2: Support for multiple selections

2013-10-29 Thread Sakari Ailus
Hi Tomasz,

(Please also see the notes from the Media summit Hans posted.)

Tomasz Stanislawski wrote:
 Hi Ricardo,
 I am the designer of selection API. I hope I can help you a little.
 I think that there are two issues mixed in 'Mulitple selections' topic.
 
 Firstly, you described that you program a piece of hardware that is
 capable of selecting 8 areas for scanning. Now you
 are looking for userspace API to support such a feature.
 The feature of posting multiple rectangle was proposed in this RFC.
 
 Secondly, You introduced struct v4l2_ext_rect which is a future-proof
 version of v4l2_rect.
 
 
 I think that both issues should be solved in two separate patchsets.
 
 Ad 1.
 The selection of multiple scanning areas is a very driver-specific
 feature, isn't it? I think that you do not need to introduce any abstract
 interface. What would be other applications of the proposed interface?
 Do you know other drivers that may need it? Sakari mentioned introduction
 of private targets for selections. I like this idea. Just define:
 
 #define V4L2_SEL_TGT_PRIVATE 0x8000

I think a private target would definitely make sense if this was
functionality that was present on a single sensor or two --- that's what
I actually proposed for this originally. But as far as I understand, it
is more common but just not present on sensors used in mobile devices.
So standardising this makes sense.

 All targets that are = V4L2_SEL_TGT_PRIVATE are driver-specific.
 Generic applications must not use them. Non-generic application
 must check out the driver of video node before using selections
 from private set. If some target becomes more useful and accepted
 by more then one driver then it can be moved to generic API.
 The good thing about private target is that enums from different
 drivers can collide so the target space is not going to be trashed.
 
 But how to deal with multiple rectangles?
 I have an auxiliary question. Do you have to set all rectangles
 at once? can you set up them one by one?
 
 Anyway, first try to define something like this:
 
 #define V4L2_SEL_TGT_XXX_SCANOUT0  V4L2_SEL_TGT_PRIVATE
 #define V4L2_SEL_TGT_XXX_SCANOUT0_DEFAULT  (V4L2_SEL_TGT_XXX_SCANOUT0 + 1)
 #define V4L2_SEL_TGT_XXX_SCANOUT0_BOUNDS  (V4L2_SEL_TGT_XXX_SCANOUT0 + 2)
 
 #define V4L2_SEL_TGT_XXX_SCANOUT0  (V4L2_SEL_TGT_PRIVATE + 16)
 ...
 
 -- OR-- parametrized macros similar to one below:
 
 #define V4L2_SEL_TGT_XXX_SCANOUT(n) (V4L2_SEL_TGT_PRIVATE + 16 * (n))
 
 The application could setup all scanout areas one-by-one.
 By default V4L2_SEL_TGT_XXX_SCANOUT0 would be equal to the whole array.
 The height of all consecutive area would be 0. This means disabling
 them effectively.
 
 The change of V4L2_SEL_TGT_XXX_SCANOUT0 would influence all consequtive
 rectangle by shifting them down or resetting them to height 0.
 Notice that as long as targets are driver specific you are free do define
 interaction between the targets.
 
 I hope that proposed solution is satisfactory.
 
 BTW. I think that the HW trick you described is not cropping.
 By cropping you select which part of sensor area is going
 to be processed into compose rectangle in a buffer.
 
 So technicaly you still insert the whole sensor area into the buffer.
 Only part of the buffer is actually updated. So there is no cropping
 (cropping area is equal to the whole array).
 
 Notice, that every 'cropping' area goes to different part of a buffer.
 So you would need also muliple targets for composing (!!!) and very long
 chapter in V4L2 doc describing interactions between muliple-rectangle
 crops and compositions. Good luck !!! :).

Multiple crop rectangles shouldn't make that more difficult than it was
since for the next step the image size is still a rectangle (it is just
composed of several smaller ones). Drivers supporting this will suffer,
though, but others shouldn't need to care.

The documentation must thus also be changed to say that the crop
rectangles must together form a rectangle if multiple rectangle support
is added.

I reckon Ricardo is looking forward to using this on V4L2 interface, but
I think support should also be added to the V4L2 sub-device interface.

 Currently it is a hell to understand and define interaction between
 single crop, and compose and unfamous VIDIOC_S_FMT and m2m madness.
 
 I strongly recommend to use private selections.
 It will be much simpler to define, implement, and modify if needed.
 
 BTW2. I think that the mulitple scanout areas can be modelled using
 media device API. Sakari may know how to do this.

The media device plays no part in subsystem specific matters such as
formats. This is relevant in the scope of V4L2 only, IMHO.

-- 
Kind regards,

Sakari Ailus
sakari.ai...@iki.fi
--
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 v2 07/19] v4l: sh_vou: Enable the driver on all ARM platforms

2013-10-29 Thread Laurent Pinchart
Renesas ARM platforms are transitioning from single-platform to
multi-platform kernels using the new ARCH_SHMOBILE_MULTI. Make the
driver available on all ARM platforms to enable it on both ARCH_SHMOBILE
and ARCH_SHMOBILE_MULTI, and increase build testing coverage with
COMPILE_TEST.

Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de
Cc: Mauro Carvalho Chehab m.che...@samsung.com
Cc: linux-media@vger.kernel.org
Signed-off-by: Laurent Pinchart laurent.pinchart+rene...@ideasonboard.com
---
 drivers/media/platform/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index c7caf94..399ef1c 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -36,7 +36,7 @@ source drivers/media/platform/blackfin/Kconfig
 config VIDEO_SH_VOU
tristate SuperH VOU video output driver
depends on MEDIA_CAMERA_SUPPORT
-   depends on VIDEO_DEV  ARCH_SHMOBILE  I2C
+   depends on VIDEO_DEV  (ARM || COMPILE_TEST)  I2C
select VIDEOBUF_DMA_CONTIG
help
  Support for the Video Output Unit (VOU) on SuperH SoCs.
-- 
1.8.1.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: [PATCH v7 1/5] omap3isp: Modify clocks registration to avoid circular references

2013-10-29 Thread Sylwester Nawrocki

Hi Laurent,

(adding Mauro and LMML at Cc)

On 10/29/2013 11:28 PM, Laurent Pinchart wrote:

Hi Sylwester,

Thank you for the patch.

On Tuesday 29 October 2013 20:51:04 Sylwester Nawrocki wrote:

The clock core code is going to be modified so clk_get() takes
reference on the clock provider module. Until the potential circular
reference issue is properly addressed, we pass NULL as as the first
argument to clk_register(), in order to disallow sub-devices taking
a reference on the ISP module back trough clk_get(). This should
prevent locking the modules in memory.

Cc: Laurent Pinchartlaurent.pinch...@ideasonboard.com
Signed-off-by: Sylwester Nawrockis.nawro...@samsung.com
Signed-off-by: Kyungmin Parkkyungmin.p...@samsung.com


Acked-by: Laurent Pinchartlaurent.pinch...@ideasonboard.com

Do you plan to push this to mainline as part of this patch series ? I don't
have pending patches for the omap3isp that would conflict with this patch, so
that would be fine with me.


Thanks, yes I thought this patch might be merged together through the clk
tree, if Mike is willing to take it and we get yours and Mauro's Ack on it.


---
This patch has been compile tested only.

---
  drivers/media/platform/omap3isp/isp.c |   22 --
  drivers/media/platform/omap3isp/isp.h |1 +
  2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/drivers/media/platform/omap3isp/isp.c
b/drivers/media/platform/omap3isp/isp.c index df3a0ec..286027a 100644
--- a/drivers/media/platform/omap3isp/isp.c
+++ b/drivers/media/platform/omap3isp/isp.c
@@ -290,9 +290,11 @@ static int isp_xclk_init(struct isp_device *isp)
struct clk_init_data init;
unsigned int i;

+   for (i = 0; i  ARRAY_SIZE(isp-xclks); ++i)
+   isp-xclks[i].clk = ERR_PTR(-EINVAL);
+
for (i = 0; i  ARRAY_SIZE(isp-xclks); ++i) {
struct isp_xclk *xclk =isp-xclks[i];
-   struct clk *clk;

xclk-isp = isp;
xclk-id = i == 0 ? ISP_XCLK_A : ISP_XCLK_B;
@@ -305,10 +307,15 @@ static int isp_xclk_init(struct isp_device *isp)
init.num_parents = 1;

xclk-hw.init =init;
-
-   clk = devm_clk_register(isp-dev,xclk-hw);
-   if (IS_ERR(clk))
-   return PTR_ERR(clk);
+   /*
+* The first argument is NULL in order to avoid circular
+* reference, as this driver takes reference on the
+* sensor subdevice modules and the sensors would take
+* reference on this module through clk_get().
+*/
+   xclk-clk = clk_register(NULL,xclk-hw);
+   if (IS_ERR(xclk-clk))
+   return PTR_ERR(xclk-clk);

if (pdata-xclks[i].con_id == NULL
pdata-xclks[i].dev_id == NULL)
@@ -320,7 +327,7 @@ static int isp_xclk_init(struct isp_device *isp)

xclk-lookup-con_id = pdata-xclks[i].con_id;
xclk-lookup-dev_id = pdata-xclks[i].dev_id;
-   xclk-lookup-clk = clk;
+   xclk-lookup-clk = xclk-clk;

clkdev_add(xclk-lookup);
}
@@ -335,6 +342,9 @@ static void isp_xclk_cleanup(struct isp_device *isp)
for (i = 0; i  ARRAY_SIZE(isp-xclks); ++i) {
struct isp_xclk *xclk =isp-xclks[i];

+   if (!IS_ERR(xclk-clk))
+   clk_unregister(xclk-clk);
+
if (xclk-lookup)
clkdev_drop(xclk-lookup);
}
diff --git a/drivers/media/platform/omap3isp/isp.h
b/drivers/media/platform/omap3isp/isp.h index cd3eff4..1498f2b 100644
--- a/drivers/media/platform/omap3isp/isp.h
+++ b/drivers/media/platform/omap3isp/isp.h
@@ -135,6 +135,7 @@ struct isp_xclk {
struct isp_device *isp;
struct clk_hw hw;
struct clk_lookup *lookup;
+   struct clk *clk;
enum isp_xclk_id id;

spinlock_t lock;/* Protects enabled and divider */


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


Re: [GIT PULL FOR 3.13] Exynos5 SoC FIMC-IS imaging subsystem driver

2013-10-29 Thread Sylwester Nawrocki

On 10/29/2013 01:54 PM, Mauro Carvalho Chehab wrote:
[...]

Yeah, it seems that we've waited for a long time to get an ack there.

So, let's do this:

Please send a new version with Mark's comments. Also, please split Doc
changes from the code changes on the new series. I'll wait for a couple
days for DT people to review it. If we don't have any reply, I'll review
and apply it for Kernel 3.13, if I don't see anything really weird on it.


Ok, I will make sure all DT binding documentation is in separate patches,
actually only one patch needs to be reworked.

Since Mark already reviewed the FIMC-IS and the S5K4E5 image sensor DT
binding patches the only one which may need further review is this one:
https://patchwork.linuxtv.org/patch/20237

Arun, could you send us the updated series ? Unfortunately I might not be
able to find time to address those comments myself until Friday.

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


Re: [PATCH 3/7] video: exynos_mipi_dsim: Use the generic PHY driver

2013-10-29 Thread Sylwester Nawrocki

On 10/29/2013 09:38 AM, Donghwa Lee wrote:

On Tue, OCT 28, 2013 21:24, Tomasz Figa wrote:

On Monday 28 of October 2013 15:12:08 Donghwa Lee wrote:

[...]

First of all, the exynos_mipi_dsim driver has currently no users in
mainline kernel, so it is essentially dead code. In addition, on
a platform that is the primary candidate for using it, which is Exynos,
there is no way to use it, due to no DT support.


As I mentioned above, patches are submitted sometimes and I will update
this driver as soon as possible to support DT.


As for the driver itself, it is not really a great example of good code.
It contains a hacks, like calling msleep() without any clear reason and
also many coding style issues. I'd prefer to replace it with the new
exynos-dsi driver rewritten completely in SRPOL, when CDF is finished.


Yes, I know this drivers had been changed about only minor issues and
it is not really good code style. And CDF is more good and light.
But discussion for CDF is still remaining a kind of requests. If it is merged
into linux kernel and many users use it, existing MIPI DSI drivers will be
replaced with the new drivers naturally, isn't it?


Not necessarily. Our goal should be to have fairly stable DT binding at the
SoC side so all available panels can possibly be used with any SoC without
problems.

Then please refrain for a while from pushing entirely vendor specific DT
bindings upstream. Let's focus instead on an as much as possible common
framework and the DT bindings. Whether the CDF will be part of DRM or not
the DT bindings are supposed to be generic, so they work with whatever
driver architecture.

I guess you could try to come up with an unstable DT binding for the
MIPI DSIM and display panels it is used with, but at this stage it seems
just a waste of time.
If there were no SoC specific panel drivers in the kernel there would be
now much less trouble with DT support.

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


[PATCH -next] [media] v4l: ti-vpe: use module_platform_driver to simplify the code

2013-10-29 Thread Wei Yongjun
From: Wei Yongjun yongjun_...@trendmicro.com.cn

module_platform_driver() makes the code simpler by eliminating
boilerplate code.

Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn
---
 drivers/media/platform/ti-vpe/vpe.c | 13 +
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/media/platform/ti-vpe/vpe.c 
b/drivers/media/platform/ti-vpe/vpe.c
index 4e58069..89658a3 100644
--- a/drivers/media/platform/ti-vpe/vpe.c
+++ b/drivers/media/platform/ti-vpe/vpe.c
@@ -2081,18 +2081,7 @@ static struct platform_driver vpe_pdrv = {
},
 };
 
-static void __exit vpe_exit(void)
-{
-   platform_driver_unregister(vpe_pdrv);
-}
-
-static int __init vpe_init(void)
-{
-   return platform_driver_register(vpe_pdrv);
-}
-
-module_init(vpe_init);
-module_exit(vpe_exit);
+module_platform_driver(vpe_pdrv);
 
 MODULE_DESCRIPTION(TI VPE driver);
 MODULE_AUTHOR(Dale Farnsworth, d...@farnsworth.org);

--
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 -next] [media] v4l: ti-vpe: fix error return code in vpe_probe()

2013-10-29 Thread Wei Yongjun
From: Wei Yongjun yongjun_...@trendmicro.com.cn

Fix to return a negative error code from the error handling
case instead of 0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn
---
 drivers/media/platform/ti-vpe/vpe.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/ti-vpe/vpe.c 
b/drivers/media/platform/ti-vpe/vpe.c
index 4e58069..0dbfd52 100644
--- a/drivers/media/platform/ti-vpe/vpe.c
+++ b/drivers/media/platform/ti-vpe/vpe.c
@@ -2007,8 +2007,10 @@ static int vpe_probe(struct platform_device *pdev)
vpe_top_vpdma_reset(dev);
 
dev-vpdma = vpdma_create(pdev);
-   if (IS_ERR(dev-vpdma))
+   if (IS_ERR(dev-vpdma)) {
+   ret = PTR_ERR(dev-vpdma);
goto runtime_put;
+   }
 
vfd = dev-vfd;
*vfd = vpe_videodev;

--
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 -next] [media] v4l: ti-vpe: fix return value check in vpe_probe()

2013-10-29 Thread Wei Yongjun
From: Wei Yongjun yongjun_...@trendmicro.com.cn

In case of error, the function devm_kzalloc() and devm_ioremap()
returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return
value check should be replaced with NULL test.

Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn
---
 drivers/media/platform/ti-vpe/vpe.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/media/platform/ti-vpe/vpe.c 
b/drivers/media/platform/ti-vpe/vpe.c
index 4e58069..90cf369 100644
--- a/drivers/media/platform/ti-vpe/vpe.c
+++ b/drivers/media/platform/ti-vpe/vpe.c
@@ -1942,8 +1942,8 @@ static int vpe_probe(struct platform_device *pdev)
int ret, irq, func;
 
dev = devm_kzalloc(pdev-dev, sizeof(*dev), GFP_KERNEL);
-   if (IS_ERR(dev))
-   return PTR_ERR(dev);
+   if (!dev)
+   return -ENOMEM;
 
spin_lock_init(dev-lock);
 
@@ -1962,8 +1962,8 @@ static int vpe_probe(struct platform_device *pdev)
 * registers based on the sub block base addresses
 */
dev-base = devm_ioremap(pdev-dev, res-start, SZ_32K);
-   if (IS_ERR(dev-base)) {
-   ret = PTR_ERR(dev-base);
+   if (!dev-base) {
+   ret = -ENOMEM;
goto v4l2_dev_unreg;
}
 

--
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: WARNINGS

2013-10-29 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 Oct 30 04:00:36 CET 2013
git branch: for-v3.13c
git hash:   3adeac2c34cc28e05d0ec52f38f009dcce278555
gcc version:i686-linux-gcc (GCC) 4.8.1
sparse version: 0.4.5-rc1
host hardware:  x86_64
host os:3.11-4.slh.2-amd64

linux-git-arm-at91: OK
linux-git-arm-davinci: OK
linux-git-arm-exynos: OK
linux-git-arm-mx: OK
linux-git-arm-omap: OK
linux-git-arm-omap1: OK
linux-git-arm-pxa: OK
linux-git-blackfin: OK
linux-git-i686: OK
linux-git-m32r: OK
linux-git-mips: OK
linux-git-powerpc64: OK
linux-git-sh: OK
linux-git-x86_64: OK
linux-2.6.31.14-i686: OK
linux-2.6.32.27-i686: OK
linux-2.6.33.7-i686: OK
linux-2.6.34.7-i686: OK
linux-2.6.35.9-i686: OK
linux-2.6.36.4-i686: OK
linux-2.6.37.6-i686: OK
linux-2.6.38.8-i686: OK
linux-2.6.39.4-i686: OK
linux-3.0.60-i686: OK
linux-3.1.10-i686: OK
linux-3.2.37-i686: OK
linux-3.3.8-i686: OK
linux-3.4.27-i686: OK
linux-3.5.7-i686: OK
linux-3.6.11-i686: OK
linux-3.7.4-i686: OK
linux-3.8-i686: OK
linux-3.9.2-i686: OK
linux-3.10.1-i686: OK
linux-3.11.1-i686: OK
linux-3.12-rc1-i686: OK
linux-2.6.31.14-x86_64: OK
linux-2.6.32.27-x86_64: OK
linux-2.6.33.7-x86_64: OK
linux-2.6.34.7-x86_64: OK
linux-2.6.35.9-x86_64: OK
linux-2.6.36.4-x86_64: OK
linux-2.6.37.6-x86_64: OK
linux-2.6.38.8-x86_64: OK
linux-2.6.39.4-x86_64: OK
linux-3.0.60-x86_64: OK
linux-3.1.10-x86_64: OK
linux-3.2.37-x86_64: OK
linux-3.3.8-x86_64: OK
linux-3.4.27-x86_64: OK
linux-3.5.7-x86_64: OK
linux-3.6.11-x86_64: OK
linux-3.7.4-x86_64: OK
linux-3.8-x86_64: OK
linux-3.9.2-x86_64: OK
linux-3.10.1-x86_64: OK
linux-3.11.1-x86_64: OK
linux-3.12-rc1-x86_64: OK
apps: WARNINGS
spec-git: OK
sparse version: 0.4.5-rc1
sparse: ERRORS

Detailed results are available here:

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

Full logs are available here:

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

The Media Infrastructure API from this daily build is here:

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


[PATCH 4/4] rtl28xxu: add 15f4:0131 Astrometa DVB-T2

2013-10-29 Thread Antti Palosaari
Components are RTL2832P + R828D + MN88472.

Currently support only DVB-T as there is no driver for MN88472 demod.

Signed-off-by: Antti Palosaari cr...@iki.fi
---
 drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 
b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index 8c600b7..ecca036 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -1427,6 +1427,9 @@ static const struct usb_device_id rtl28xxu_id_table[] = {
rtl2832u_props, Leadtek WinFast DTV Dongle mini, NULL) },
{ DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_CPYTO_REDI_PC50A,
rtl2832u_props, Crypto ReDi PC 50 A, NULL) },
+
+   { DVB_USB_DEVICE(USB_VID_HANFTEK, 0x0131,
+   rtl2832u_props, Astrometa DVB-T2, NULL) },
{ }
 };
 MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);
-- 
1.8.3.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 1/4] r820t: add support for R828D

2013-10-29 Thread Antti Palosaari
Small changes in order to support tuner version R828D @ 16 MHz clock.

There was 'vco_fine_tune' check, which seems to adjust synthesizer
output divider (mixer dix / LO div / Rout) by one. R828D seems to
return vco_fine_tune=1 every time and that condition causes tuning
fail as output divider was increased by one.
Resolve problem by skipping whole condition in case of R828D tuner.
Just to mention, other tuner, R820T, seems to return 2 here.

Synthesizer maximum frequency check was hard coded to check synthesizer N
and thus worked correctly only for clock frequencies around 30 MHz.
As whole test is quite useless in any case, I removed it totally.

Signed-off-by: Antti Palosaari cr...@iki.fi
---
 drivers/media/tuners/r820t.c | 22 +-
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/drivers/media/tuners/r820t.c b/drivers/media/tuners/r820t.c
index 1c23666..d9ee43f 100644
--- a/drivers/media/tuners/r820t.c
+++ b/drivers/media/tuners/r820t.c
@@ -612,10 +612,19 @@ static int r820t_set_pll(struct r820t_priv *priv, enum 
v4l2_tuner_type type,
 
vco_fine_tune = (data[4]  0x30)  4;
 
-   if (vco_fine_tune  VCO_POWER_REF)
-   div_num = div_num - 1;
-   else if (vco_fine_tune  VCO_POWER_REF)
-   div_num = div_num + 1;
+   tuner_dbg(mix_div=%d div_num=%d vco_fine_tune=%d\n,
+   mix_div, div_num, vco_fine_tune);
+
+   /*
+* XXX: R828D/16MHz seems to have always vco_fine_tune=1.
+* Due to that, this calculation goes wrong.
+*/
+   if (priv-cfg-rafael_chip != CHIP_R828D) {
+   if (vco_fine_tune  VCO_POWER_REF)
+   div_num = div_num - 1;
+   else if (vco_fine_tune  VCO_POWER_REF)
+   div_num = div_num + 1;
+   }
 
rc = r820t_write_reg_mask(priv, 0x10, div_num  5, 0xe0);
if (rc  0)
@@ -637,11 +646,6 @@ static int r820t_set_pll(struct r820t_priv *priv, enum 
v4l2_tuner_type type,
vco_fra = pll_ref * 129 / 128;
}
 
-   if (nint  63) {
-   tuner_info(No valid PLL values for %u kHz!\n, freq);
-   return -EINVAL;
-   }
-
ni = (nint - 13) / 4;
si = nint - 4 * ni - 13;
 
-- 
1.8.3.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 3/4] rtl28xxu: add RTL2832P + R828D support

2013-10-29 Thread Antti Palosaari
RTL2832P is version of RTL2832U with extra TS interface.
As for now, we support only integrated RTL2832 demod.

Signed-off-by: Antti Palosaari cr...@iki.fi
---
 drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 39 +
 drivers/media/usb/dvb-usb-v2/rtl28xxu.h |  1 +
 2 files changed, 40 insertions(+)

diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 
b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index c0cd084..8c600b7 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -377,6 +377,7 @@ static int rtl2832u_read_config(struct dvb_usb_device *d)
struct rtl28xxu_req req_e4000 = {0x02c8, CMD_I2C_RD, 1, buf};
struct rtl28xxu_req req_tda18272 = {0x00c0, CMD_I2C_RD, 2, buf};
struct rtl28xxu_req req_r820t = {0x0034, CMD_I2C_RD, 1, buf};
+   struct rtl28xxu_req req_r828d = {0x0074, CMD_I2C_RD, 1, buf};
 
dev_dbg(d-udev-dev, %s:\n, __func__);
 
@@ -489,6 +490,15 @@ static int rtl2832u_read_config(struct dvb_usb_device *d)
goto found;
}
 
+   /* check R828D ID register; reg=00 val=69 */
+   ret = rtl28xxu_ctrl_msg(d, req_r828d);
+   if (ret == 0  buf[0] == 0x69) {
+   priv-tuner = TUNER_RTL2832_R828D;
+   priv-tuner_name = R828D;
+   goto found;
+   }
+
+
 found:
dev_dbg(d-udev-dev, %s: tuner=%s\n, __func__, priv-tuner_name);
 
@@ -745,6 +755,7 @@ static int rtl2832u_frontend_attach(struct dvb_usb_adapter 
*adap)
rtl2832_config = rtl28xxu_rtl2832_e4000_config;
break;
case TUNER_RTL2832_R820T:
+   case TUNER_RTL2832_R828D:
rtl2832_config = rtl28xxu_rtl2832_r820t_config;
break;
default:
@@ -866,6 +877,13 @@ static const struct r820t_config rtl2832u_r820t_config = {
.rafael_chip = CHIP_R820T,
 };
 
+static const struct r820t_config rtl2832u_r828d_config = {
+   .i2c_addr = 0x3a,
+   .xtal = 1600,
+   .max_i2c_msg_len = 2,
+   .rafael_chip = CHIP_R828D,
+};
+
 static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
 {
int ret;
@@ -923,6 +941,27 @@ static int rtl2832u_tuner_attach(struct dvb_usb_adapter 
*adap)
adap-fe[0]-ops.read_signal_strength =
adap-fe[0]-ops.tuner_ops.get_rf_strength;
break;
+   case TUNER_RTL2832_R828D:
+   /* power off mn88472 demod on GPIO0 */
+   ret = rtl28xx_wr_reg_mask(d, SYS_GPIO_OUT_VAL, 0x00, 0x01);
+   if (ret)
+   goto err;
+
+   ret = rtl28xx_wr_reg_mask(d, SYS_GPIO_DIR, 0x00, 0x01);
+   if (ret)
+   goto err;
+
+   ret = rtl28xx_wr_reg_mask(d, SYS_GPIO_OUT_EN, 0x01, 0x01);
+   if (ret)
+   goto err;
+
+   fe = dvb_attach(r820t_attach, adap-fe[0], d-i2c_adap,
+   rtl2832u_r828d_config);
+
+   /* Use tuner to get the signal strength */
+   adap-fe[0]-ops.read_signal_strength =
+   adap-fe[0]-ops.tuner_ops.get_rf_strength;
+   break;
default:
fe = NULL;
dev_err(d-udev-dev, %s: unknown tuner=%d\n, KBUILD_MODNAME,
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.h 
b/drivers/media/usb/dvb-usb-v2/rtl28xxu.h
index 729b354..2142bcb 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.h
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.h
@@ -83,6 +83,7 @@ enum rtl28xxu_tuner {
TUNER_RTL2832_TDA18272,
TUNER_RTL2832_FC0013,
TUNER_RTL2832_R820T,
+   TUNER_RTL2832_R828D,
 };
 
 struct rtl28xxu_req {
-- 
1.8.3.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 2/4] rtl2832: add new tuner R828D

2013-10-29 Thread Antti Palosaari
Use R820T config for R828D too as those are about same tuner.

Signed-off-by: Antti Palosaari cr...@iki.fi
---
 drivers/media/dvb-frontends/rtl2832.c | 1 +
 drivers/media/dvb-frontends/rtl2832.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/media/dvb-frontends/rtl2832.c 
b/drivers/media/dvb-frontends/rtl2832.c
index facb848..a95dfe0 100644
--- a/drivers/media/dvb-frontends/rtl2832.c
+++ b/drivers/media/dvb-frontends/rtl2832.c
@@ -489,6 +489,7 @@ static int rtl2832_init(struct dvb_frontend *fe)
init = rtl2832_tuner_init_e4000;
break;
case RTL2832_TUNER_R820T:
+   case RTL2832_TUNER_R828D:
len = ARRAY_SIZE(rtl2832_tuner_init_r820t);
init = rtl2832_tuner_init_r820t;
break;
diff --git a/drivers/media/dvb-frontends/rtl2832.h 
b/drivers/media/dvb-frontends/rtl2832.h
index 91b2dcf..2cfbb6a 100644
--- a/drivers/media/dvb-frontends/rtl2832.h
+++ b/drivers/media/dvb-frontends/rtl2832.h
@@ -53,6 +53,7 @@ struct rtl2832_config {
 #define RTL2832_TUNER_E4000 0x27
 #define RTL2832_TUNER_FC00130x29
 #define RTL2832_TUNER_R820T0x2a
+#define RTL2832_TUNER_R828D0x2b
u8 tuner;
 };
 
-- 
1.8.3.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