2009-06-04 19:18:45

by Lennart Poettering

[permalink] [raw]
Subject: [PATCH] V4L/pwc - use usb_interface as parent, not usb_device

The current code creates a sysfs device path where the video4linux
device is child of the usb device itself instead of the interface it
belongs to. That is evil and confuses udev.

This patch does basically the same thing as Kay's similar patch for the
ov511 driver:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ce96d0a44a4f8d1bb3dc12b5e98cb688c1bc730d

(Resent 2nd time, due to missing Signed-off-by)

Lennart

Signed-off-by: Lennart Poettering <[email protected]>
---
drivers/media/video/pwc/pwc-if.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
index 7c542ca..92d4177 100644
--- a/drivers/media/video/pwc/pwc-if.c
+++ b/drivers/media/video/pwc/pwc-if.c
@@ -1783,7 +1783,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
return -ENOMEM;
}
memcpy(pdev->vdev, &pwc_template, sizeof(pwc_template));
- pdev->vdev->parent = &(udev->dev);
+ pdev->vdev->parent = &intf->dev;
strcpy(pdev->vdev->name, name);
video_set_drvdata(pdev->vdev, pdev);

--
1.6.2.2



Lennart

--
Lennart Poettering Red Hat, Inc.
lennart [at] poettering [dot] net ICQ# 11060553
http://0pointer.net/lennart/ GnuPG 0x1A015CC4


2009-06-07 13:52:10

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] V4L/pwc - use usb_interface as parent, not usb_device

Looks good, we recently fixed the same issue in the gspca driver to,

Acked-by: Hans de Goede <[email protected]>

On 06/04/2009 09:18 PM, Lennart Poettering wrote:
> The current code creates a sysfs device path where the video4linux
> device is child of the usb device itself instead of the interface it
> belongs to. That is evil and confuses udev.
>
> This patch does basically the same thing as Kay's similar patch for the
> ov511 driver:
>
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ce96d0a44a4f8d1bb3dc12b5e98cb688c1bc730d
>
> (Resent 2nd time, due to missing Signed-off-by)
>
> Lennart
>
> Signed-off-by: Lennart Poettering<[email protected]>
> ---
> drivers/media/video/pwc/pwc-if.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
> index 7c542ca..92d4177 100644
> --- a/drivers/media/video/pwc/pwc-if.c
> +++ b/drivers/media/video/pwc/pwc-if.c
> @@ -1783,7 +1783,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
> return -ENOMEM;
> }
> memcpy(pdev->vdev,&pwc_template, sizeof(pwc_template));
> - pdev->vdev->parent =&(udev->dev);
> + pdev->vdev->parent =&intf->dev;
> strcpy(pdev->vdev->name, name);
> video_set_drvdata(pdev->vdev, pdev);
>