Skip to contentSkip to conversation

V4L/pwc - use usb_interface as parent, not usb_device

PATCH In review Lennart Poettering 2 participants 2 messages Jun 4, 2009 – Jun 7, 2009 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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

---
 drivers/media/video/pwc/pwc-if.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/media/video/pwc/pwc-if.c +1 -1
index 7c542ca..92d4177 100644
@@ -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);
 
Signature · 10 lines
1.6.2.2



Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4
Acked-by on v1 1/1
#1 lore raw

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

Quoted 31 lines · Lennart Poettering

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

---
  drivers/media/video/pwc/pwc-if.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
drivers/media/video/pwc/pwc-if.c +1 -1
index 7c542ca..92d4177 100644
@@ -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);