linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Patch to add NOGET for DMI/Acomdata
@ 2008-03-19 22:43 Pete Zaitcev
  2008-03-19 23:11 ` Jiri Kosina
  0 siblings, 1 reply; 4+ messages in thread
From: Pete Zaitcev @ 2008-03-19 22:43 UTC (permalink / raw)
  To: linux-input; +Cc: zaitcev

This must be the weirdest failure yet. My external disk stops processing
the storage commands the moment it receives a GET_REPORT. The firmware
does not crash; if I do rmmod hid, then SET-INTERFACE restores normal
operations. Still, I cannot live without the keyboard when I want backup
my files. Adding the NOGET quirk fixes this problem for me.

Signed-Off-By: Pete Zaitcev <zaitcev@redhat.com>

diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index e29a057..d1ac267 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -124,6 +124,9 @@
 #define USB_DEVICE_ID_DELORME_EARTHMATE 0x0100
 #define USB_DEVICE_ID_DELORME_EM_LT20	0x0200
 
+#define USB_VENDOR_ID_DMI		0x0c0b	/* Found in Acomdata */
+#define USB_DEVICE_ID_DMI_ENC		0x5fab
+
 #define USB_VENDOR_ID_ELO		0x04E7
 #define USB_DEVICE_ID_ELO_TS2700	0x0020
 
@@ -601,6 +604,7 @@ static const struct hid_blacklist {
 	{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET },
 	{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET },
 	{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET },
+	{ USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC,    HID_QUIRK_NOGET },
 	{ USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
 	{ USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D, HID_QUIRK_NOGET },
 	{ USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL, HID_QUIRK_NOGET },

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: Patch to add NOGET for DMI/Acomdata
  2008-03-19 22:43 Patch to add NOGET for DMI/Acomdata Pete Zaitcev
@ 2008-03-19 23:11 ` Jiri Kosina
  2008-03-19 23:51   ` Pete Zaitcev
  0 siblings, 1 reply; 4+ messages in thread
From: Jiri Kosina @ 2008-03-19 23:11 UTC (permalink / raw)
  To: Pete Zaitcev; +Cc: linux-input

On Wed, 19 Mar 2008, Pete Zaitcev wrote:

> This must be the weirdest failure yet. My external disk stops processing 
> the storage commands the moment it receives a GET_REPORT. The firmware 
> does not crash; if I do rmmod hid, then SET-INTERFACE restores normal 
> operations. Still, I cannot live without the keyboard when I want backup 
> my files. Adding the NOGET quirk fixes this problem for me.

Hi Pete,

uhm ... how does the GET_REPORT get delivered to the external disk? Does 
it have any interface that claims itself to be HID class?

Thanks,

-- 
Jiri Kosina
SUSE Labs


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Patch to add NOGET for DMI/Acomdata
  2008-03-19 23:11 ` Jiri Kosina
@ 2008-03-19 23:51   ` Pete Zaitcev
  2008-03-20  8:58     ` Jiri Kosina
  0 siblings, 1 reply; 4+ messages in thread
From: Pete Zaitcev @ 2008-03-19 23:51 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-input, zaitcev

On Thu, 20 Mar 2008 00:11:05 +0100 (CET), Jiri Kosina <jkosina@suse.cz> wrote:
> On Wed, 19 Mar 2008, Pete Zaitcev wrote:

> > This must be the weirdest failure yet. My external disk stops processing 
> > the storage commands the moment it receives a GET_REPORT. The firmware 
> > does not crash; if I do rmmod hid, then SET-INTERFACE restores normal 
> > operations. Still, I cannot live without the keyboard when I want backup 
> > my files. Adding the NOGET quirk fixes this problem for me.

> uhm ... how does the GET_REPORT get delivered to the external disk? Does 
> it have any interface that claims itself to be HID class?

It is very common for them to have a "one-touch backup" button.
Here's how its summary looks:

T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 13 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0c0b ProdID=5fab Rev= 3.53
S:  Manufacturer=DMI     
S:  Product=WD5000AAKB-00UKA
S:  SerialNumber=001010055008053D0
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=ub
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=64ms

To tell you the truth, I just now noticed that the button does not
work. Kernel prints this:

hiddev96hidraw0: USB HID v1.10 Device [DMI      WD5000AAKB-00UKA] on usb-0000:00:13.5-3

But then the events do not get delivered. This is what happens
with DEBUG enabled in hid-core.c:

usb 2-3.2: new high speed USB device using address 3
  INPUT[INPUT]
    Field(0)
      Usage(2)
        ffa0.00a6
        ffa0.00a7
      Logical Minimum(-128)
      Logical Maximum(127)
      Report Size(8)
      Report Count(2)
      Report Offset(0)
      Flags( Variable Absolute )
  OUTPUT[OUTPUT]
    Field(0)
      Usage(2)
        ffa0.00a9
        ffa0.00a9
      Logical Minimum(-128)
      Logical Maximum(127)
      Report Size(8)
      Report Count(2)
      Report Offset(0)
      Flags( Variable Absolute )
hiddev96: USB HID v1.10 Device [DMI      WD5000AAKB-00UKA] on usb-0000:05:04.3-3.2

I dunno, maybe the button is just broken somehow. But I'm only
interested in the storage function.

-- Pete

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Patch to add NOGET for DMI/Acomdata
  2008-03-19 23:51   ` Pete Zaitcev
@ 2008-03-20  8:58     ` Jiri Kosina
  0 siblings, 0 replies; 4+ messages in thread
From: Jiri Kosina @ 2008-03-20  8:58 UTC (permalink / raw)
  To: Pete Zaitcev; +Cc: linux-input

On Wed, 19 Mar 2008, Pete Zaitcev wrote:

> To tell you the truth, I just now noticed that the button does not
> work. Kernel prints this:
> hiddev96hidraw0: USB HID v1.10 Device [DMI      WD5000AAKB-00UKA] on usb-0000:00:13.5-3
> But then the events do not get delivered. This is what happens
> with DEBUG enabled in hid-core.c:
> usb 2-3.2: new high speed USB device using address 3
>   INPUT[INPUT]
>     Field(0)
>       Usage(2)
>         ffa0.00a6
>         ffa0.00a7
>       Logical Minimum(-128)
>       Logical Maximum(127)
>       Report Size(8)
>       Report Count(2)
>       Report Offset(0)
>       Flags( Variable Absolute )

Hi Pete,

yes, so the device doesn't provide any application we handle in HID <-> 
input mapping, it contains only vendor-speicific usages from 0xffa0 page.

hiddev/hidraw device surely is created for this device (as it is not 
handled by hid-input), so a userspace driver can be written easily to 
handle this button.

So your patch makes sense, I will apply it to my tree, thanks.

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-03-20  8:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-19 22:43 Patch to add NOGET for DMI/Acomdata Pete Zaitcev
2008-03-19 23:11 ` Jiri Kosina
2008-03-19 23:51   ` Pete Zaitcev
2008-03-20  8:58     ` Jiri Kosina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).