Re: Exposing vendor-specific ACM channels to userspace as tty devices

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

 



Am Dienstag, 17. November 2009 18:35:11 schrieb Adrian Taylor:
> Hi,
> 
> Nokia S60 phones expose two CDC ACM channels. The first is a modem and
> is properly detected by the current cdc-acm driver. The second has a
> protocol ID of 0xff ('vendor specific') and /dev/ttyACM* is NOT
> currently created for it.
> 
> This second channel is useful, since it's freely usable by third-party
> S60 application developers. It's sometimes used for debuggers or, in our
> case, remote control tools. At the S60 end, it just acts as a serial
> port (as it does on Windows and MacOS X). We should expose it as
> a /dev/ttyACM* device so that user-space tools can use it on Linux, too.

If it is a serial port, why not as a serial port /dev/ttyUSBx ?

> I attach a simple patch which does just that.
> 
> However! It's not that simple.
> 
> The reason is that some Windows Mobile/Windows CE devices support a
> remote ethernet protocol called RNDIS, which is build atop CDC ACM. This
> sadly uses the same class, subclass and protocol IDs.
> 
> So currently drivers/net/usb/rndis_host.c tries to register for exactly
> the same devices. It eventually fails (when usbnet_generic_cdc_bind

Where is the problem?

> determines that it's not a suitable ethernet interface after all). But,
> if we create a serial port in cdc-acm, rndis_host doesn't even get a
> chance to try.
> 
> What's the best way to allow each driver to have a crack at this
> particular interface?
> 
> My plan would be:
>       * No longer attempt to bind to this sort of interface from
>         rndis_host.

How should this be possible? We must support real rndis devices.

>       * Export a function from the rndis_host driver to request for it
>         to try to bind to a particular interface.
>       * Call that function from cdc-acm, for the relevant interfaces.
>       * If it fails, fall back to exposing it as a tty device.

Absolutely no. We must support kernel configurations with only the
rndis host driver compiled.

> But this would introduce a dependency from cdc-acm on rndis_host, which
> doesn't sound right. Can anyone suggest a better way?

Please post "lsusb -v" for this device.

	Regards
		Oliver
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux