On Mar 18, 2011, at 2:31 PM, Ludovic Rousseau wrote:

2011/3/18 Martin Preuss <[email protected]>:
Hi,

On Freitag 18 März 2011, Ludovic Rousseau wrote:
[...]
Hotplug is the business of pcsc-lite, not the reader driver.
Or you have a special need?
[...]
You driver should not depend on the way pcsc-lite is configured.
[...]

Yes, with recent versions of pcsc-lite it doesn't. But the version shipped with e.g. Ubuntu 9.04 only works if the driver is able to handle a device name using the libHAL scheme. It doesn't try again with the libusb path (which,
granted, later versions do).

[...]
Your driver will be called using IFDHCreateChannelByName() [1] (if
available, or IFDHCreateChannel()) and the driver will parse the name
passed by pcscd. As documented [1] if your driver does not undersand
part of the naming scheme it should just ignore the unsupported part.
[...]

As a driver maintainer I know that of course ;-) but that only holds for more recent versions of pcsc-lite (as described above). But unfortunately we also
have to support Linux distributions even as old as Ubuntu 9.04 ;-)

The constant changing of hotplugging in Linux in fact *does* influence the driver since it has to implementent the predominant naming scheme used by
pcsc-lite.

I really appreciate that current versions of pcsc-lite try again initializing the driver with a different naming scheme (e.g. "libusb:") if the driver doesn't support the "libhal:" name, but that's something you added later.

Yes. I added that because some drivers do not follow the specification
(or the specification is not clear enough).

The driver is called with a name like "usb:08e6/3437:libusb:001:042"
or "usb:08e6/3437:libhal:/org/freedesktop/Hal/devices/ usb_device_8e6_3437_noserial_if0"
or something else.

As written in the specification:
" If the driver does not understand the :libusb: or :libhal: scheme or
if a new scheme is used, the driver should ignore the part it does not
understand instead of failing. "

So if the driver is called with "usb:08e6/3437:foobar:xyz:123" the
driver should just ignore the part it can't parse and just use
"usb:08e6/3437" or even nothing at all. But the driver should not fail
just because it does not know the naming scheme.

Why should the CCID driver be responsible for knowing about all the different USB access methods? How about if pcscd provided an abstraction that would give the CCID driver access to do basic I/O to USB and let pcscd manage whatever
the current USB access scheme is at the moment?

mike


_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle

Reply via email to