diff mbox

soc_camera: Add soc_camera_match function

Message ID uzlf2uscy.wl%morimoto.kuninori@renesas.com (mailing list archive)
State RFC
Headers show

Commit Message

Kuninori Morimoto March 31, 2009, 5:34 a.m. UTC
${LINUX}/drivers/base/dd.c :: __device_attach
use driver_match_device function.
It needs bus->match function.

Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com>
---

> Guennadi

I tried latest Linux 2.6.29 from Paul's git
 git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.git

Then, soc_camera doesn't works.
please check 49b420a13ff95b449947181190b08367348e3e1b
But I'm not sure is this patch correct fix ? 

 drivers/media/video/soc_camera.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

Comments

Guennadi Liakhovetski March 31, 2009, 6:39 a.m. UTC | #1
On Tue, 31 Mar 2009, Kuninori Morimoto wrote:

> 
> ${LINUX}/drivers/base/dd.c :: __device_attach
> use driver_match_device function.
> It needs bus->match function.
> 
> Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com>
> ---
> 
> > Guennadi
> 
> I tried latest Linux 2.6.29 from Paul's git
>  git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.git
> 
> Then, soc_camera doesn't works.
> please check 49b420a13ff95b449947181190b08367348e3e1b
> But I'm not sure is this patch correct fix ? 

Please, see http://marc.info/?t=123245859800006&r=1&w=2

Thanks
Guennadi

> 
>  drivers/media/video/soc_camera.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c
> index 6d8bfd4..a10828b 100644
> --- a/drivers/media/video/soc_camera.c
> +++ b/drivers/media/video/soc_camera.c
> @@ -929,12 +929,21 @@ static int soc_camera_resume(struct device *dev)
>  	return ret;
>  }
>  
> +int soc_camera_match(struct device *dev, struct device_driver *drv)
> +{
> +	struct soc_camera_device *icd = to_soc_camera_dev(dev);
> +	struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
> +
> +	return ici->nr == icd->iface;
> +}
> +
>  static struct bus_type soc_camera_bus_type = {
>  	.name		= "soc-camera",
>  	.probe		= soc_camera_probe,
>  	.remove		= soc_camera_remove,
>  	.suspend	= soc_camera_suspend,
>  	.resume		= soc_camera_resume,
> +	.match		= soc_camera_match,
>  };
>  
>  static struct device_driver ic_drv = {
> -- 
> 1.5.6.3
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
--
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
Kuninori Morimoto March 31, 2009, 9:22 a.m. UTC | #2
Dear Guennadi

> > Then, soc_camera doesn't works.
> > please check 49b420a13ff95b449947181190b08367348e3e1b
> > But I'm not sure is this patch correct fix ? 
> 
> Please, see http://marc.info/?t=123245859800006&r=1&w=2

wow !!
Thank you

Best regards
--
Kuninori Morimoto
 
--
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
diff mbox

Patch

diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c
index 6d8bfd4..a10828b 100644
--- a/drivers/media/video/soc_camera.c
+++ b/drivers/media/video/soc_camera.c
@@ -929,12 +929,21 @@  static int soc_camera_resume(struct device *dev)
 	return ret;
 }
 
+int soc_camera_match(struct device *dev, struct device_driver *drv)
+{
+	struct soc_camera_device *icd = to_soc_camera_dev(dev);
+	struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
+
+	return ici->nr == icd->iface;
+}
+
 static struct bus_type soc_camera_bus_type = {
 	.name		= "soc-camera",
 	.probe		= soc_camera_probe,
 	.remove		= soc_camera_remove,
 	.suspend	= soc_camera_suspend,
 	.resume		= soc_camera_resume,
+	.match		= soc_camera_match,
 };
 
 static struct device_driver ic_drv = {