I hope this message will reach Marcel too, as it identifies bugs in the
upstream code.

On Mon, 6 Jun 2011, Cristian Ionescu-Idbohrn wrote:
>
> I'd like to get this problem out of the way.  What can I do to help?

[snip]

> Secondly, _why_ hid2hci fails:
>
> error: switching device 
> '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3.2/1-3.2.3' failed
>
> strace shows this:
>
> open("/dev/bus/usb/001/006", O_RDWR)  = 3
> ioctl(3, HIDIOCINITREPORT, 0)         = -1 ENOTTY (Inappropriate ioctl for 
> device)
> close(3)                              = 0
> write(2, "error: switching device 
> '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3.2/1-3.2.3' failed.\n", 94) 
> = 94
> exit_group(1)                         = ?

Alright.  It looks like I might have found out the cause for the
"Inappropriate ioctl for device" above.  Seems the opened device file
"/dev/bus/usb/001/006":

        crw-rw-r-- 1 root root 189, 5 Jun  6 09:53 /dev/bus/usb/001/006

_is_ the problem.

Opening "/dev/usb/hiddev0" instead:

        crw------- 1 root root 180, 0 Jun  6 09:51 /dev/usb/hiddev0

enables the device:

        kernel: [162517.412273] usb 1-3.2.1: new full speed USB device number 7 
using ehci_hcd
        kernel: [162517.509507] usb 1-3.2.1: New USB device found, 
idVendor=046d, idProduct=c709
        kernel: [162517.509514] usb 1-3.2.1: New USB device strings: Mfr=1, 
Product=2, SerialNumber=3
        bluetoothd[2700]: HCI dev 0 registered
        bluetoothd[2700]: Listening for HCI events on hci0
        bluetoothd[2700]: HCI dev 0 up
        bluetoothd[2700]: Adapter /org/bluez/2700/hci0 has been enabled

        # hcitool dev
        Devices:
                hci0    00:1F:20:11:22:33

and strace confirms that:

        open("/dev/usb/hiddev0", O_RDWR)  = 3
        ioctl(3, HIDIOCINITREPORT, 0)     = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSREPORT, 0xbfe96aa4) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSREPORT, 0xbfe96aa4) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSUSAGE, 0xbfe96a8c) = 0
        ioctl(3, HIDIOCSREPORT, 0xbfe96aa4) = 0
        close(3)                          = 0

Still, hid2hci returns status code failure:

        exit_group(1)                     = ?

This is another bug :(

        int rc = 1;

is declared in 'main', never changes during the course of the program and
is returned on exit:

exit:
        udev_device_unref(udev_dev);
        udev_unref(udev);
        return rc;
}


Cheers,

-- 
Cristian



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to