All of lore.kernel.org
 help / color / mirror / Atom feed
From: Corentin Chary <corentin.chary@gmail.com>
To: Bastien Nocera <hadess@hadess.net>
Cc: Jiri Kosina <jkosina@suse.cz>, linux-input@vger.kernel.org
Subject: Re: MX5000 support in hid-logitech
Date: Tue, 15 Sep 2009 15:52:11 +0200	[thread overview]
Message-ID: <200909151552.11811.corentin.chary@gmail.com> (raw)
In-Reply-To: <200909151444.29108.corentin.chary@gmail.com>

On Tuesday 15 September 2009 14:44:28 Corentin Chary wrote:
> On Tuesday 15 September 2009 13:03:53 Bastien Nocera wrote:
> > On Tue, 2009-09-15 at 12:40 +0200, Corentin Chary wrote:
> > > Hi,
> > > I'm trying to add support for MX5000 keyboard in hid-lg.c, and it's the
> > > first time I'm playing with hid drivers.
> > >
> > > I added the keys in lg_wireless_mapping()
> > >
> > >         case 0x01b8: lg_map_key_clear(KEY_VIDEO);               break;
> > >         case 0x01b7: lg_map_key_clear(KEY_AUDIO);               break;
> > >         case 0x01bc: lg_map_key_clear(KEY_MESSENGER);           break;
> > >         case 0x0183: lg_map_key_clear(KEY_MEDIA);               break;
> > >         case 0x0230: lg_map_key_clear(KEY_ZOOMRESET);           break;
> > >         case 0x022e: lg_map_key_clear(KEY_ZOOMOUT);             break;
> > >         case 0x022d: lg_map_key_clear(KEY_ZOOMIN);              break;
> > >         case 0x0184: lg_map_key_clear(KEY_WORDPROCESSOR);       break;
> > >         case 0x0186: lg_map_key_clear(KEY_SPREADSHEET);         break;
> > >         case 0x0188: lg_map_key_clear(KEY_PRESENTATION);        break;
> > >
> > > And that line in static const struct hid_device_id lg_devices[]
> > >
> > >         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xc70a),
> > >                 .driver_data = LG_RDESC | LG_WIRELESS },
> > >
> > > I also added a printk lg_event() to find usage->hid and check
> > > if the device was correctly probed.
> > >
> > > I use xev to detect keystrocks.
> > >
> > > But Adding the code in lg_wireless_mapping() didn't change anything,
> > > keys are not reported in xev.
> > >
> > > I added a printk between case 0x01b8: and lg_map_key_clear(KEY_VIDEO);
> > > to check if the branch was taken, and it is.
> > >
> > > Did I do something wrong ?
> > > Any suggestion ?
> >
> > This won't be enough, check the archives for more details (around 10th
> > February this year)
> >
> > You'll need to poke at the receiver using the same kind of code that
> > mx5000lib does. Your best bet is probably to start with Jiri's
> > recommendations and get debugging info from the kernel before going any
> > further.
> 
> It seems to work without poking the receiver.
> As I said, these keys can be seen in lg_event().
> 
> So, I tried that code in lg_event() (with the previous code in
> lg_wireless_mapping()):
> 
>  unsigned int key = 0;
>  struct input_dev *input = field->hidinput->input;
> 
>  switch (usage->hid & HID_USAGE) {
>   case 0x01b8: key = KEY_VIDEO;           break;
>   case 0x01b7: key = KEY_AUDIO;           break;
>   case 0x01bc: key = KEY_MESSENGER;       break;
>   case 0x0183: key = KEY_MEDIA;           break;
>   case 0x0230: key = KEY_ZOOMRESET;       break;
>   case 0x022e: key = KEY_ZOOMOUT;         break;
>   case 0x022d: key = KEY_ZOOMIN;          break;
>   case 0x0184: key = KEY_WORDPROCESSOR;   break;
>   case 0x0186: key = KEY_SPREADSHEET;     break;
>   case 0x0188: key = KEY_PRESENTATION;    break;
>   default: return 0;
>  }
>  printk(KERN_WARNING "%x %x %x\n", usage->hid, usage->type, value);
>  if (key) {
>   input_event(input, usage->type, key, value);
>   return 1;
>  }
> 
> And it worked (with showkey in a terminal, not with xev, maybe I need to
> restart X for that ?).
> 
> But adding that code in lg_event() doesn't look right :/
> 

In fact .. my first patch works with showkey, not with xev ...
I'll try to figure out why.

-- 
Corentin Chary
http://xf.iksaif.net

  reply	other threads:[~2009-09-15 13:52 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-15 10:40 MX5000 support in hid-logitech Corentin Chary
2009-09-15 11:03 ` Bastien Nocera
2009-09-15 12:44   ` Corentin Chary
2009-09-15 13:52     ` Corentin Chary [this message]
2009-09-15 14:34       ` Jiri Kosina
2009-09-15 16:04         ` Corentin Chary

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=200909151552.11811.corentin.chary@gmail.com \
    --to=corentin.chary@gmail.com \
    --cc=hadess@hadess.net \
    --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.