All of lore.kernel.org
 help / color / mirror / Atom feed
From: Axel Lin <axel.lin@gmail.com>
To: linux-input@vger.kernel.org
Cc: Jiri Kosina <jkosina@suse.cz>, Dmitry Torokhov <dtor@mail.ru>
Subject: Questions about implementing hid driver or input driver
Date: Fri, 07 Sep 2012 13:24:41 +0800	[thread overview]
Message-ID: <1346995481.3769.4.camel@phoenix> (raw)

Hi list,
I have a tablet that shows it is a HID device.
But the report descriptor looks broken.

Below shows the device information:

lsusb -v:

Bus 002 Device 004: ID 04b4:3045 Cypress Semiconductor Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x04b4 Cypress Semiconductor Corp.
  idProduct          0x3045
  bcdDevice            1.00
  iManufacturer           1 Ping-IT
  iProduct                2 RS232_USB
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          3 Bus power
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              4 HID
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      26
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)

And below is the report descriptor ( by usbhid-dump / hidrd-convert )

0x05, 0x0D, /*  Usage Page (Digitizer),         */
0x09, 0x08, /*  Usage (3D Digitizer),           */
0xA1, 0x01, /*  Collection (Application),       */
0x09, 0x01, /*      Usage (Digitizer),          */
0xA1, 0x00, /*      Collection (Physical),      */
0x05, 0x01, /*          Usage Page (Desktop),   */
0x09, 0x3B, /*          Usage (Byte Count),     */
0x15, 0x00, /*          Logical Minimum (0),    */
0x25, 0x7F, /*          Logical Maximum (127),  */
0x75, 0x08, /*          Report Size (8),        */
0x95, 0x07, /*          Report Count (7),       */
0x81, 0x02, /*          Input (Variable),       */
0xC0,       /*      End Collection,             */
0xC0        /*  End Collection                  */

The report descriptor looks broken to me:
 1. The report descriptor does not have Usage for TOOL_PEN/STYLUS/STYLUS2/PRESSURE,
    so evdev doest not recognized it as a tablet.
    Actually, the report descriptor does not define any detail of the data.
    It only shows a 7 bytes report content.
 2. It does not have Report ID field. 
    (Does it make sense to have a report descriptor without Report ID field?)

So in this case, should I implement a HID (special device) driver or
a input driver (in drivers/input/tablet folder) for this device?

Regards,
Axel




             reply	other threads:[~2012-09-07  5:24 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-07  5:24 Axel Lin [this message]
2012-09-07  6:43 ` Questions about implementing hid driver or input driver Dmitry Torokhov
2012-09-07  7:21   ` Jiri Kosina

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1346995481.3769.4.camel@phoenix \
    --to=axel.lin@gmail.com \
    --cc=dtor@mail.ru \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.