lkml.org 
[lkml]   [2012]   [Oct]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v1] i2c-hid: introduce HID over i2c specification implementation
    Hi Benjamin,

    On Fri, 14 Sep 2012 15:41:43 +0200, benjamin.tissoires wrote:
    > From: Benjamin Tissoires <benjamin.tissoires@enac.fr>
    >
    > Microsoft published the protocol specification of HID over i2c:
    > http://msdn.microsoft.com/en-us/library/windows/hardware/hh852380.aspx
    >
    > This patch introduces an implementation of this protocol.
    >
    > This implementation does not includes the ACPI part of the specification.
    > This will come when ACPI 5.0 devices will be available.
    >
    > Once the ACPI part will be done, OEM will not have to declare HID over I2C
    > devices in their platform specific driver.
    >
    > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
    > ---
    >
    > Hi,
    >
    > this is finally my first implementation of HID over I2C.
    >
    > This has been tested on an Elan Microelectronics HID over I2C device, with
    > a Samsung Exynos 4412 board.
    >
    > Any comments are welcome.
    >
    > Cheers,
    > Benjamin
    >
    > drivers/i2c/Kconfig | 8 +
    > drivers/i2c/Makefile | 1 +
    > drivers/i2c/i2c-hid.c | 1027 +++++++++++++++++++++++++++++++++++++++++++
    > include/linux/i2c/i2c-hid.h | 35 ++
    > 4 files changed, 1071 insertions(+)
    > create mode 100644 drivers/i2c/i2c-hid.c
    > create mode 100644 include/linux/i2c/i2c-hid.h

    Looks like the wrong place for this driver. HID-over-USB support lives
    under drivers/hid, so your driver should go there as well. Not only
    this will be more consistent, but it also makes more sense: your driver
    is a user, not an implementer, of the I2C layer, so it doesn't belong
    to drivers/i2c.

    Also, you need to sort out dependencies. Your causes a link failure here:

    ERROR: "hiddev_report_event" [drivers/i2c/i2c-hid.ko] undefined!
    ERROR: "hiddev_disconnect" [drivers/i2c/i2c-hid.ko] undefined!
    ERROR: "hiddev_connect" [drivers/i2c/i2c-hid.ko] undefined!
    ERROR: "hid_pidff_init" [drivers/i2c/i2c-hid.ko] undefined!
    make[1]: *** [__modpost] Erreur 1
    make: *** [modules] Erreur 2

    This is because these functions aren't exported and I tried to build
    i2c-hid as a module.BTW I see that these functions are part of the
    usbhid driver, which looks seriously wrong. If these functions are
    transport layer-independent, they should be moved to the hid-code or
    some sub-module. One should be able to enable HID-over-I2C without
    HID-over-USB.

    --
    Jean Delvare


    \
     
     \ /
      Last update: 2012-10-06 22:21    [W:2.737 / U:0.760 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site