Re: usb_control_msg for devices without an OUT endpoint.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Apr 11, 2008 at 6:11 AM, Scott Lovenberg
<scott.lovenberg@xxxxxxxxx> wrote:
>
> Ribamar Santarosa de Sousa wrote:
>
> >
> >
> >
> > Hello,
> >
> > There are some USB interfaces (such some kinds of HID) that don't have
> > OUT endpoints and the unique manner to send them data is through
> > control msg like Set_Report requests (chapter 7 of HID 1.1
> > specification).
> >
> > However, in the kernel interface for usb_control_msg() we need to pass
> > a pipe which is obtained through usb_sndcrtlpipe(), which in turn
> > requires an endpoint address. What endpoint should be passed to
> > usb_sndctrlpipe() in these cases?
> >
> > Libusb's interface for usb_control_msg() doesn't require this pipe as
> > parameter[1]. How is this pipe discovered before the calling of the
> > kernel's usb_control_msg()?
> >
> > [1] http://libusb.sourceforge.net/doc/function.usbcontrolmsg.html
> >
> > --
> > To unsubscribe from this list: send an email with
> > "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
> > Please read the FAQ at http://kernelnewbies.org/FAQ
> >
> >
> >
>  http://www.lrr.in.tum.de/Par/arch/usb/usbdoc/
>
>  http://www.lrr.in.tum.de/Par/arch/usb/usbdoc/node16.html
>  Looks like it's a minor number (such that num % 16 == 0)
>

thanks for trying, but endPoints and their address are general usb
issues and have nothing to do with the interfaces linux offers to
access devices from userspace (as dev entries). these documents seem
to be too introductory to cover this more specific issue.

the correct answer is that the control out has the address zero, so a
pipe can be obtained with:
 usb_sndctrlpipe(ud, 0)

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux