diff mbox

[RFC,00/24] Make Nokia N900 cameras working

Message ID 20160429174559.GA6431@earth (mailing list archive)
State New, archived
Headers show

Commit Message

Sebastian Reichel April 29, 2016, 5:45 p.m. UTC
Hi,

On Fri, Apr 29, 2016 at 02:05:52AM +0200, Sebastian Reichel wrote:
> On Wed, Apr 27, 2016 at 08:12:50PM +0300, ?????? ???????? wrote:
> > > The zImage + initrd works with the steps you described below.
> > 
> > Great!
> 
> I also got it working with the previously referenced branch with the
> following built as modules:
> 
> CONFIG_VIDEOBUF2_CORE=m
> CONFIG_VIDEOBUF2_MEMOPS=m
> CONFIG_VIDEOBUF2_DMA_CONTIG=m
> CONFIG_VIDEO_OMAP3=m
> CONFIG_VIDEO_BUS_SWITCH=m
> CONFIG_VIDEO_SMIAPP_PLL=m
> CONFIG_VIDEO_SMIAPP=m
> CONFIG_VIDEO_SMIAREGS=m
> CONFIG_VIDEO_ET8EK8=m

Ok, I found the problem. CONFIG_VIDEO_OMAP3=y does not work,
due to missing -EPROBE_DEFER handling for vdds_csib. I added
it and just got a test image with builtin CONFIG_VIDEO_OMAP3.
The below patch fixes the problem.

commit 9d8333b29207de3a9b6ac99db2dfd91e2f8c0216
Author: Sebastian Reichel <sre@kernel.org>
Date:   Fri Apr 29 19:23:02 2016 +0200

    omap3isp: handle -EPROBE_DEFER for vdds_csib
    
    omap3isp may be initialized before the regulator's driver has been
    loaded resulting in vdds_csib=NULL. Fix this by handling -EPROBE_DEFER
    for vdds_csib.
    
    Signed-Off-By: Sebastian Reichel <sre@kernel.org>


-- Sebastian

Comments

Ivaylo Dimitrov April 29, 2016, 6:44 p.m. UTC | #1
Hi,

On 29.04.2016 20:45, Sebastian Reichel wrote:
> Hi,
>
> On Fri, Apr 29, 2016 at 02:05:52AM +0200, Sebastian Reichel wrote:
>> On Wed, Apr 27, 2016 at 08:12:50PM +0300, ?????? ???????? wrote:
>>>> The zImage + initrd works with the steps you described below.
>>>
>>> Great!
>>
>> I also got it working with the previously referenced branch with the
>> following built as modules:
>>
>> CONFIG_VIDEOBUF2_CORE=m
>> CONFIG_VIDEOBUF2_MEMOPS=m
>> CONFIG_VIDEOBUF2_DMA_CONTIG=m
>> CONFIG_VIDEO_OMAP3=m
>> CONFIG_VIDEO_BUS_SWITCH=m
>> CONFIG_VIDEO_SMIAPP_PLL=m
>> CONFIG_VIDEO_SMIAPP=m
>> CONFIG_VIDEO_SMIAREGS=m
>> CONFIG_VIDEO_ET8EK8=m
>
> Ok, I found the problem. CONFIG_VIDEO_OMAP3=y does not work,
> due to missing -EPROBE_DEFER handling for vdds_csib. I added
> it and just got a test image with builtin CONFIG_VIDEO_OMAP3.
> The below patch fixes the problem.
>

Cool :)

vdd-csiphy1/2 will need the same handling, but lets have what is done so 
far rolling, those can be fixed later on.

> commit 9d8333b29207de3a9b6ac99db2dfd91e2f8c0216
> Author: Sebastian Reichel <sre@kernel.org>
> Date:   Fri Apr 29 19:23:02 2016 +0200
>
>      omap3isp: handle -EPROBE_DEFER for vdds_csib
>
>      omap3isp may be initialized before the regulator's driver has been
>      loaded resulting in vdds_csib=NULL. Fix this by handling -EPROBE_DEFER
>      for vdds_csib.
>
>      Signed-Off-By: Sebastian Reichel <sre@kernel.org>
>
> diff --git a/drivers/media/platform/omap3isp/ispccp2.c b/drivers/media/platform/omap3isp/ispccp2.c
> index 833eed411886..2d1463a72d6a 100644
> --- a/drivers/media/platform/omap3isp/ispccp2.c
> +++ b/drivers/media/platform/omap3isp/ispccp2.c
> @@ -1167,6 +1167,8 @@ int omap3isp_ccp2_init(struct isp_device *isp)
>   	if (isp->revision == ISP_REVISION_2_0) {
>   		ccp2->vdds_csib = devm_regulator_get(isp->dev, "vdds_csib");
>   		if (IS_ERR(ccp2->vdds_csib)) {
> +			if (PTR_ERR(ccp2->vdds_csib) == -EPROBE_DEFER)
> +				return -EPROBE_DEFER;
>   			dev_dbg(isp->dev,
>   				"Could not get regulator vdds_csib\n");
>   			ccp2->vdds_csib = NULL;
>

Sakari, how we're going to proceed, it seems there are a couple of 
patches in the series which can be directly upstreamed, how's that gonna 
happen? IOW - I don't know how this RFC stuff works, are there any docs 
I can use to educate myself?

Thanks,
Ivo
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Pavel Machek May 1, 2016, 9:03 a.m. UTC | #2
On Fri 2016-04-29 19:45:59, Sebastian Reichel wrote:

> Ok, I found the problem. CONFIG_VIDEO_OMAP3=y does not work,
> due to missing -EPROBE_DEFER handling for vdds_csib. I added
> it and just got a test image with builtin CONFIG_VIDEO_OMAP3.
> The below patch fixes the problem.
> 
> commit 9d8333b29207de3a9b6ac99db2dfd91e2f8c0216
> Author: Sebastian Reichel <sre@kernel.org>
> Date:   Fri Apr 29 19:23:02 2016 +0200
> 
>     omap3isp: handle -EPROBE_DEFER for vdds_csib
>     
>     omap3isp may be initialized before the regulator's driver has been
>     loaded resulting in vdds_csib=NULL. Fix this by handling -EPROBE_DEFER
>     for vdds_csib.
>     
>     Signed-Off-By: Sebastian Reichel <sre@kernel.org>

Tested-by: Pavel Machek <pavel@ucw.cz>
Acked-by: Pavel Machek <pavel@ucw.cz>

...and... thanks :-).
									Pavel
Sakari Ailus May 1, 2016, 10:37 a.m. UTC | #3
Hi Ivaylo,

On Fri, Apr 29, 2016 at 09:44:25PM +0300, Ivaylo Dimitrov wrote:
> Hi,
> 
> On 29.04.2016 20:45, Sebastian Reichel wrote:
> >Hi,
> >
> >On Fri, Apr 29, 2016 at 02:05:52AM +0200, Sebastian Reichel wrote:
> >>On Wed, Apr 27, 2016 at 08:12:50PM +0300, ?????? ???????? wrote:
> >>>>The zImage + initrd works with the steps you described below.
> >>>
> >>>Great!
> >>
> >>I also got it working with the previously referenced branch with the
> >>following built as modules:
> >>
> >>CONFIG_VIDEOBUF2_CORE=m
> >>CONFIG_VIDEOBUF2_MEMOPS=m
> >>CONFIG_VIDEOBUF2_DMA_CONTIG=m
> >>CONFIG_VIDEO_OMAP3=m
> >>CONFIG_VIDEO_BUS_SWITCH=m
> >>CONFIG_VIDEO_SMIAPP_PLL=m
> >>CONFIG_VIDEO_SMIAPP=m
> >>CONFIG_VIDEO_SMIAREGS=m
> >>CONFIG_VIDEO_ET8EK8=m
> >
> >Ok, I found the problem. CONFIG_VIDEO_OMAP3=y does not work,
> >due to missing -EPROBE_DEFER handling for vdds_csib. I added
> >it and just got a test image with builtin CONFIG_VIDEO_OMAP3.
> >The below patch fixes the problem.
> >
> 
> Cool :)
> 
> vdd-csiphy1/2 will need the same handling, but lets have what is done so far
> rolling, those can be fixed later on.
> 
> >commit 9d8333b29207de3a9b6ac99db2dfd91e2f8c0216
> >Author: Sebastian Reichel <sre@kernel.org>
> >Date:   Fri Apr 29 19:23:02 2016 +0200
> >
> >     omap3isp: handle -EPROBE_DEFER for vdds_csib
> >
> >     omap3isp may be initialized before the regulator's driver has been
> >     loaded resulting in vdds_csib=NULL. Fix this by handling -EPROBE_DEFER
> >     for vdds_csib.
> >
> >     Signed-Off-By: Sebastian Reichel <sre@kernel.org>
> >
> >diff --git a/drivers/media/platform/omap3isp/ispccp2.c b/drivers/media/platform/omap3isp/ispccp2.c
> >index 833eed411886..2d1463a72d6a 100644
> >--- a/drivers/media/platform/omap3isp/ispccp2.c
> >+++ b/drivers/media/platform/omap3isp/ispccp2.c
> >@@ -1167,6 +1167,8 @@ int omap3isp_ccp2_init(struct isp_device *isp)
> >  	if (isp->revision == ISP_REVISION_2_0) {
> >  		ccp2->vdds_csib = devm_regulator_get(isp->dev, "vdds_csib");
> >  		if (IS_ERR(ccp2->vdds_csib)) {
> >+			if (PTR_ERR(ccp2->vdds_csib) == -EPROBE_DEFER)
> >+				return -EPROBE_DEFER;
> >  			dev_dbg(isp->dev,
> >  				"Could not get regulator vdds_csib\n");
> >  			ccp2->vdds_csib = NULL;
> >
> 
> Sakari, how we're going to proceed, it seems there are a couple of patches
> in the series which can be directly upstreamed, how's that gonna happen? IOW
> - I don't know how this RFC stuff works, are there any docs I can use to
> educate myself?

If there are just a few, then they could be picked up individually, but
otherwise I'd propose to split up the set into two, those that can go to
upstream now and those that are still understood to require some work.

I'll try to spend some time in the near future for reviewing the entire set.
diff mbox

Patch

diff --git a/drivers/media/platform/omap3isp/ispccp2.c b/drivers/media/platform/omap3isp/ispccp2.c
index 833eed411886..2d1463a72d6a 100644
--- a/drivers/media/platform/omap3isp/ispccp2.c
+++ b/drivers/media/platform/omap3isp/ispccp2.c
@@ -1167,6 +1167,8 @@  int omap3isp_ccp2_init(struct isp_device *isp)
 	if (isp->revision == ISP_REVISION_2_0) {
 		ccp2->vdds_csib = devm_regulator_get(isp->dev, "vdds_csib");
 		if (IS_ERR(ccp2->vdds_csib)) {
+			if (PTR_ERR(ccp2->vdds_csib) == -EPROBE_DEFER)
+				return -EPROBE_DEFER;
 			dev_dbg(isp->dev,
 				"Could not get regulator vdds_csib\n");
 			ccp2->vdds_csib = NULL;