Re: cups backend/usb ioctl call goes wrong on sparc64

2004-11-29 Thread Martin
 I've found a problem with the cups usb backend on sparc64 systems. The
 ioctl32 code isn't translating LPIOC_GET_DEVICE_ID ioctl calls
 properly. This means that backend/usb cannot identify which printer is
 actually registered as a particular usb device.
 
 The giveaway message from the kernel is
 
 Sep  7 13:22:12 shirehall kernel: ioctl32(usb:1729): Unknown cmd fd(0)
 cmd(44005001){04} arg(efffec48) on /dev/usb/lp0
snip
 Now ideally I would say that the way to fix this would be to correct
 the ioctl32 code in the kernel but it seems that the
 LPIOC_GET_DEVICE_ID ioctl number is dependent upon the structure
 passed in.
snip
 I'm not sure what the correct way to fix this is. Anyone have any
 suggestions.
I ran into a similar problem trying to get a USB ADSL modem working. 
The driver used usbdevfs and ioctl's to submit URBs to the modem.  It
appears that a section of the code for translating ioctl's from 32 bit
code into 64 bit are unfinished, with some of the USB ioctls not being
translated.  As I understand it the `correct' way to fix it is to
implement these translations.  It shouldn't be too difficult as there
are a number of similar functions already written and all of the data
structures are quite clearly defined - als I haven't had time to attempt
it myself.  If you do think of attempting this I'll see if I can find
the notes on it saying exactly where the code needed to go.

HTH

Cheers,
 - Martin
 
-- 
Martin
[EMAIL PROTECTED]
Seasons change, things come to pass



Re: cups backend/usb ioctl call goes wrong on sparc64

2004-11-28 Thread Clint Adams
 I'm not sure what the correct way to fix this is. Anyone have any
 suggestions.

You may get more responses if you ask on the ultralinux mailing list.