USB ACPI namespace mapping.
    Hans Petter Selasky 
    hselasky at c2i.net
       
    Tue Jul 31 20:08:43 UTC 2012
    
    
  
On Tuesday 31 July 2012 05:19:12 Takanori Watanabe wrote:
> I'm trying to map USB devices and hub into acpi handle,
> and I want ideas to cope with a problem.
> 
> The problem is that there is no easy way to get port number from
> child usb device in hub device.
> usb_attach_arg structure have one, but invalidate after probe and attach.
> 
> And, furthermore, which device_t instance should I register to acpi
> device handle to cope with ACPI docking station framework.
> 
> The code I wrote is as follows.
> 
Hi,
In userspace there is:
man libusb20_dev_get_parent_port
Most of the information you need is supplied via either devd, or an IOCTL 
request on the ugen device: 
#define USB_DEVICEINFO          _IOWR('U', 4, struct usb_device_info)
...
        uint8_t udi_hubaddr;            /* parent HUB address */
        uint8_t udi_hubindex;           /* parent HUB device index */
        uint8_t udi_hubport;            /* parent HUB port */
...
Check how the DEVICEINFO IOCTL is implemented and you will see how the current 
port numbers are computed.
Important: Don't forget that the USB stack is multithreaded! And that you need 
to lock resources before accessing them!
Do you need more info than this?
--HPS
    
    
More information about the freebsd-acpi
mailing list