<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/hid, branch v3.3</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/hid?h=v3.3</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/hid?h=v3.3'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-03-05T09:28:58Z</updated>
<entry>
<title>HID: hid-input: allow array fields out of range</title>
<updated>2012-03-05T09:28:58Z</updated>
<author>
<name>Nikolai Kondrashov</name>
<email>spbnick@gmail.com</email>
</author>
<published>2012-03-02T20:13:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=883e0e366209067e690356e58e19bb2e6693b839'/>
<id>urn:sha1:883e0e366209067e690356e58e19bb2e6693b839</id>
<content type='text'>
Allow array field values out of range as per HID 1.11 specification,
section 6.2.25:

	Rather than returning a single bit for each button in the group, an
	array returns an index in each field that corresponds to the pressed
	button (like keyboard scan codes). An out-of range value in and array
	field is considered no controls asserted.

Apparently, "and" above is a typo and should be "an".

This fixes at least Waltop tablet pen clicks - otherwise BTN_TOUCH is never
released.

The relevant part of Waltop tablet report descriptors is this:

	0x09, 0x42,         /*          Usage (Tip Switch),         */
	0x09, 0x44,         /*          Usage (Barrel Switch),      */
	0x09, 0x46,         /*          Usage (Tablet Pick),        */
	0x15, 0x01,         /*          Logical Minimum (1),        */
	0x25, 0x03,         /*          Logical Maximum (3),        */
	0x75, 0x04,         /*          Report Size (4),            */
	0x95, 0x01,         /*          Report Count (1),           */
	0x80,               /*          Input,                      */

This is a regression fix for commit b4b583d ("HID: be more strict when
ignoring out-of-range fields").

Signed-off-by: Nikolai Kondrashov &lt;spbnick@gmail.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>HID: usbhid: Add NOGET quirk for the AIREN Slim+ keyboard</title>
<updated>2012-02-27T16:35:43Z</updated>
<author>
<name>Alan Stern</name>
<email>stern@rowland.harvard.edu</email>
</author>
<published>2012-02-27T16:23:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=37891abc8464637964a26ae4b61d307fef831f80'/>
<id>urn:sha1:37891abc8464637964a26ae4b61d307fef831f80</id>
<content type='text'>
This patch (as1531) adds a NOGET quirk for the Slim+ keyboard marketed
by AIREN.  This keyboard seems to have a lot of bugs; NOGET works
around only one of them.

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Reported-by: okias &lt;d.okias@gmail.com&gt;
CC: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>HID: wiimote: fix invalid power_supply_powers call</title>
<updated>2012-02-07T12:40:56Z</updated>
<author>
<name>Jiri Kosina</name>
<email>jkosina@suse.cz</email>
</author>
<published>2012-02-07T12:40:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=217c8b2b1978aa4a02ce040a99c59ed3b6418fe5'/>
<id>urn:sha1:217c8b2b1978aa4a02ce040a99c59ed3b6418fe5</id>
<content type='text'>
Analogically to d7cb3dbd1 ("HID: wacom: Fix invalid power_supply_powers
calls"), fix also the same occurence in wiimote driver.

Reported-by: przemo@firszt.eu
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>HID: wacom: Fix invalid power_supply_powers calls</title>
<updated>2012-02-06T15:14:20Z</updated>
<author>
<name>Przemo Firszt</name>
<email>przemo@firszt.eu</email>
</author>
<published>2012-02-05T22:35:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d7cb3dbd10c09081fafd05fcbef590ce04e402ff'/>
<id>urn:sha1:d7cb3dbd10c09081fafd05fcbef590ce04e402ff</id>
<content type='text'>
power_supply_powers calls added in 35b4c01e2 ("power_supply: add "powers" links
to self-powered HID devices") have to be called after power device is created.
This patch also fixes the second call - it has to be "ac" instead of "battery"

Signed-off-by: Przemo Firszt &lt;przemo@firszt.eu&gt;
Signed-off-by: Chris Bagwell &lt;chris@cnpbagwell.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into upstream-fixes</title>
<updated>2012-02-06T15:12:16Z</updated>
<author>
<name>Jiri Kosina</name>
<email>jkosina@suse.cz</email>
</author>
<published>2012-02-06T15:11:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d4730ace0c7dbb64513e35b6fc5fd7e7f381e490'/>
<id>urn:sha1:d4730ace0c7dbb64513e35b6fc5fd7e7f381e490</id>
<content type='text'>
Sync with Linus' tree. This is necessary to have a base for
patch that fixes commit 35b4c01e29b ("power_supply: add "powers"
links to self-powered HID devices") which went in through Anton's
tree.
</content>
</entry>
<entry>
<title>HID: hyperv: Properly disconnect the input device</title>
<updated>2012-02-02T09:56:11Z</updated>
<author>
<name>K. Y. Srinivasan</name>
<email>kys@microsoft.com</email>
</author>
<published>2012-01-18T16:57:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c1c454b8691cc95aa83f19273ed7845914c70e83'/>
<id>urn:sha1:c1c454b8691cc95aa83f19273ed7845914c70e83</id>
<content type='text'>
When we unload the mouse driver, properly disconnect the input device.

Signed-off-by: K. Y. Srinivasan &lt;kys@microsoft.com&gt;
Signed-off-by: Haiyang Zhang &lt;haiyangz@microsoft.com&gt;
Reported-by: Fuzhou Chen &lt;fuzhouch@microsoft.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>HID: usbhid: fix dead lock between open and disconect</title>
<updated>2012-02-02T08:48:00Z</updated>
<author>
<name>Ming Lei</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2012-01-12T09:42:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ba18311dff7933ccb9c41bbbb1ad3d70840069b5'/>
<id>urn:sha1:ba18311dff7933ccb9c41bbbb1ad3d70840069b5</id>
<content type='text'>
There is no reason to hold hiddev-&gt;existancelock before
calling usb_deregister_dev, so move it out of the lock.

The patch fixes the lockdep warning below.

[ 5733.386271] ======================================================
[ 5733.386274] [ INFO: possible circular locking dependency detected ]
[ 5733.386278] 3.2.0-custom-next-20120111+ #1 Not tainted
[ 5733.386281] -------------------------------------------------------
[ 5733.386284] khubd/186 is trying to acquire lock:
[ 5733.386288]  (minor_rwsem){++++.+}, at: [&lt;ffffffffa0011a04&gt;] usb_deregister_dev+0x37/0x9e [usbcore]
[ 5733.386311]
[ 5733.386312] but task is already holding lock:
[ 5733.386315]  (&amp;hiddev-&gt;existancelock){+.+...}, at: [&lt;ffffffffa0094d17&gt;] hiddev_disconnect+0x26/0x87 [usbhid]
[ 5733.386328]
[ 5733.386329] which lock already depends on the new lock.
[ 5733.386330]
[ 5733.386333]
[ 5733.386334] the existing dependency chain (in reverse order) is:
[ 5733.386336]
[ 5733.386337] -&gt; #1 (&amp;hiddev-&gt;existancelock){+.+...}:
[ 5733.386346]        [&lt;ffffffff81082d26&gt;] lock_acquire+0xcb/0x10e
[ 5733.386357]        [&lt;ffffffff813df961&gt;] __mutex_lock_common+0x60/0x465
[ 5733.386366]        [&lt;ffffffff813dfe4d&gt;] mutex_lock_nested+0x36/0x3b
[ 5733.386371]        [&lt;ffffffffa0094ad6&gt;] hiddev_open+0x113/0x193 [usbhid]
[ 5733.386378]        [&lt;ffffffffa0011971&gt;] usb_open+0x66/0xc2 [usbcore]
[ 5733.386390]        [&lt;ffffffff8111a8b5&gt;] chrdev_open+0x12b/0x154
[ 5733.386402]        [&lt;ffffffff811159a8&gt;] __dentry_open.isra.16+0x20b/0x355
[ 5733.386408]        [&lt;ffffffff811165dc&gt;] nameidata_to_filp+0x43/0x4a
[ 5733.386413]        [&lt;ffffffff81122ed5&gt;] do_last+0x536/0x570
[ 5733.386419]        [&lt;ffffffff8112300b&gt;] path_openat+0xce/0x301
[ 5733.386423]        [&lt;ffffffff81123327&gt;] do_filp_open+0x33/0x81
[ 5733.386427]        [&lt;ffffffff8111664d&gt;] do_sys_open+0x6a/0xfc
[ 5733.386431]        [&lt;ffffffff811166fb&gt;] sys_open+0x1c/0x1e
[ 5733.386434]        [&lt;ffffffff813e7c79&gt;] system_call_fastpath+0x16/0x1b
[ 5733.386441]
[ 5733.386441] -&gt; #0 (minor_rwsem){++++.+}:
[ 5733.386448]        [&lt;ffffffff8108255d&gt;] __lock_acquire+0xa80/0xd74
[ 5733.386454]        [&lt;ffffffff81082d26&gt;] lock_acquire+0xcb/0x10e
[ 5733.386458]        [&lt;ffffffff813e01f5&gt;] down_write+0x44/0x77
[ 5733.386464]        [&lt;ffffffffa0011a04&gt;] usb_deregister_dev+0x37/0x9e [usbcore]
[ 5733.386475]        [&lt;ffffffffa0094d2d&gt;] hiddev_disconnect+0x3c/0x87 [usbhid]
[ 5733.386483]        [&lt;ffffffff8132df51&gt;] hid_disconnect+0x3f/0x54
[ 5733.386491]        [&lt;ffffffff8132dfb4&gt;] hid_device_remove+0x4e/0x7a
[ 5733.386496]        [&lt;ffffffff812c0957&gt;] __device_release_driver+0x81/0xcd
[ 5733.386502]        [&lt;ffffffff812c09c3&gt;] device_release_driver+0x20/0x2d
[ 5733.386507]        [&lt;ffffffff812c0564&gt;] bus_remove_device+0x114/0x128
[ 5733.386512]        [&lt;ffffffff812bdd6f&gt;] device_del+0x131/0x183
[ 5733.386519]        [&lt;ffffffff8132def3&gt;] hid_destroy_device+0x1e/0x3d
[ 5733.386525]        [&lt;ffffffffa00916b0&gt;] usbhid_disconnect+0x36/0x42 [usbhid]
[ 5733.386530]        [&lt;ffffffffa000fb60&gt;] usb_unbind_interface+0x57/0x11f [usbcore]
[ 5733.386542]        [&lt;ffffffff812c0957&gt;] __device_release_driver+0x81/0xcd
[ 5733.386547]        [&lt;ffffffff812c09c3&gt;] device_release_driver+0x20/0x2d
[ 5733.386552]        [&lt;ffffffff812c0564&gt;] bus_remove_device+0x114/0x128
[ 5733.386557]        [&lt;ffffffff812bdd6f&gt;] device_del+0x131/0x183
[ 5733.386562]        [&lt;ffffffffa000de61&gt;] usb_disable_device+0xa8/0x1d8 [usbcore]
[ 5733.386573]        [&lt;ffffffffa0006bd2&gt;] usb_disconnect+0xab/0x11f [usbcore]
[ 5733.386583]        [&lt;ffffffffa0008aa0&gt;] hub_thread+0x73b/0x1157 [usbcore]
[ 5733.386593]        [&lt;ffffffff8105dc0f&gt;] kthread+0x95/0x9d
[ 5733.386601]        [&lt;ffffffff813e90b4&gt;] kernel_thread_helper+0x4/0x10
[ 5733.386607]
[ 5733.386608] other info that might help us debug this:
[ 5733.386609]
[ 5733.386612]  Possible unsafe locking scenario:
[ 5733.386613]
[ 5733.386615]        CPU0                    CPU1
[ 5733.386618]        ----                    ----
[ 5733.386620]   lock(&amp;hiddev-&gt;existancelock);
[ 5733.386625]                                lock(minor_rwsem);
[ 5733.386630]                                lock(&amp;hiddev-&gt;existancelock);
[ 5733.386635]   lock(minor_rwsem);
[ 5733.386639]
[ 5733.386640]  *** DEADLOCK ***
[ 5733.386641]
[ 5733.386644] 6 locks held by khubd/186:
[ 5733.386646]  #0:  (&amp;__lockdep_no_validate__){......}, at: [&lt;ffffffffa00084af&gt;] hub_thread+0x14a/0x1157 [usbcore]
[ 5733.386661]  #1:  (&amp;__lockdep_no_validate__){......}, at: [&lt;ffffffffa0006b77&gt;] usb_disconnect+0x50/0x11f [usbcore]
[ 5733.386677]  #2:  (hcd-&gt;bandwidth_mutex){+.+.+.}, at: [&lt;ffffffffa0006bc8&gt;] usb_disconnect+0xa1/0x11f [usbcore]
[ 5733.386693]  #3:  (&amp;__lockdep_no_validate__){......}, at: [&lt;ffffffff812c09bb&gt;] device_release_driver+0x18/0x2d
[ 5733.386704]  #4:  (&amp;__lockdep_no_validate__){......}, at: [&lt;ffffffff812c09bb&gt;] device_release_driver+0x18/0x2d
[ 5733.386714]  #5:  (&amp;hiddev-&gt;existancelock){+.+...}, at: [&lt;ffffffffa0094d17&gt;] hiddev_disconnect+0x26/0x87 [usbhid]
[ 5733.386727]
[ 5733.386727] stack backtrace:
[ 5733.386731] Pid: 186, comm: khubd Not tainted 3.2.0-custom-next-20120111+ #1
[ 5733.386734] Call Trace:
[ 5733.386741]  [&lt;ffffffff81062881&gt;] ? up+0x34/0x3b
[ 5733.386747]  [&lt;ffffffff813d9ef3&gt;] print_circular_bug+0x1f8/0x209
[ 5733.386752]  [&lt;ffffffff8108255d&gt;] __lock_acquire+0xa80/0xd74
[ 5733.386756]  [&lt;ffffffff810808b4&gt;] ? trace_hardirqs_on_caller+0x15d/0x1a3
[ 5733.386763]  [&lt;ffffffff81043a3f&gt;] ? vprintk+0x3f4/0x419
[ 5733.386774]  [&lt;ffffffffa0011a04&gt;] ? usb_deregister_dev+0x37/0x9e [usbcore]
[ 5733.386779]  [&lt;ffffffff81082d26&gt;] lock_acquire+0xcb/0x10e
[ 5733.386789]  [&lt;ffffffffa0011a04&gt;] ? usb_deregister_dev+0x37/0x9e [usbcore]
[ 5733.386797]  [&lt;ffffffff813e01f5&gt;] down_write+0x44/0x77
[ 5733.386807]  [&lt;ffffffffa0011a04&gt;] ? usb_deregister_dev+0x37/0x9e [usbcore]
[ 5733.386818]  [&lt;ffffffffa0011a04&gt;] usb_deregister_dev+0x37/0x9e [usbcore]
[ 5733.386825]  [&lt;ffffffffa0094d2d&gt;] hiddev_disconnect+0x3c/0x87 [usbhid]
[ 5733.386830]  [&lt;ffffffff8132df51&gt;] hid_disconnect+0x3f/0x54
[ 5733.386834]  [&lt;ffffffff8132dfb4&gt;] hid_device_remove+0x4e/0x7a
[ 5733.386839]  [&lt;ffffffff812c0957&gt;] __device_release_driver+0x81/0xcd
[ 5733.386844]  [&lt;ffffffff812c09c3&gt;] device_release_driver+0x20/0x2d
[ 5733.386848]  [&lt;ffffffff812c0564&gt;] bus_remove_device+0x114/0x128
[ 5733.386854]  [&lt;ffffffff812bdd6f&gt;] device_del+0x131/0x183
[ 5733.386859]  [&lt;ffffffff8132def3&gt;] hid_destroy_device+0x1e/0x3d
[ 5733.386865]  [&lt;ffffffffa00916b0&gt;] usbhid_disconnect+0x36/0x42 [usbhid]
[ 5733.386876]  [&lt;ffffffffa000fb60&gt;] usb_unbind_interface+0x57/0x11f [usbcore]
[ 5733.386882]  [&lt;ffffffff812c0957&gt;] __device_release_driver+0x81/0xcd
[ 5733.386886]  [&lt;ffffffff812c09c3&gt;] device_release_driver+0x20/0x2d
[ 5733.386890]  [&lt;ffffffff812c0564&gt;] bus_remove_device+0x114/0x128
[ 5733.386895]  [&lt;ffffffff812bdd6f&gt;] device_del+0x131/0x183
[ 5733.386905]  [&lt;ffffffffa000de61&gt;] usb_disable_device+0xa8/0x1d8 [usbcore]
[ 5733.386916]  [&lt;ffffffffa0006bd2&gt;] usb_disconnect+0xab/0x11f [usbcore]
[ 5733.386921]  [&lt;ffffffff813dff82&gt;] ? __mutex_unlock_slowpath+0x130/0x141
[ 5733.386929]  [&lt;ffffffffa0008aa0&gt;] hub_thread+0x73b/0x1157 [usbcore]
[ 5733.386935]  [&lt;ffffffff8106a51d&gt;] ? finish_task_switch+0x78/0x150
[ 5733.386941]  [&lt;ffffffff8105e396&gt;] ? __init_waitqueue_head+0x4c/0x4c
[ 5733.386950]  [&lt;ffffffffa0008365&gt;] ? usb_remote_wakeup+0x56/0x56 [usbcore]
[ 5733.386955]  [&lt;ffffffff8105dc0f&gt;] kthread+0x95/0x9d
[ 5733.386961]  [&lt;ffffffff813e90b4&gt;] kernel_thread_helper+0x4/0x10
[ 5733.386966]  [&lt;ffffffff813e24b8&gt;] ? retint_restore_args+0x13/0x13
[ 5733.386970]  [&lt;ffffffff8105db7a&gt;] ? __init_kthread_worker+0x55/0x55
[ 5733.386974]  [&lt;ffffffff813e90b0&gt;] ? gs_change+0x13/0x13

Signed-off-by: Ming Lei &lt;ming.lei@canonical.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>module_param: make bool parameters really bool (drivers &amp; misc)</title>
<updated>2012-01-12T23:02:20Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2012-01-12T23:02:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=90ab5ee94171b3e28de6bb42ee30b527014e0be7'/>
<id>urn:sha1:90ab5ee94171b3e28de6bb42ee30b527014e0be7</id>
<content type='text'>
module_param(bool) used to counter-intuitively take an int.  In
fddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy
trick.

It's time to remove the int/unsigned int option.  For this version
it'll simply give a warning, but it'll break next kernel version.

Acked-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>Merge git://git.infradead.org/battery-2.6</title>
<updated>2012-01-12T02:53:05Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-01-12T02:53:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b24ca57e7625bc304e77bc429693ad32a691eb16'/>
<id>urn:sha1:b24ca57e7625bc304e77bc429693ad32a691eb16</id>
<content type='text'>
* git://git.infradead.org/battery-2.6: (68 commits)
  power_supply: Mark da9052 driver as broken
  power_supply: Drop usage of nowarn variant of sysfs_create_link()
  s3c_adc_battery: Average over more than one adc sample
  power_supply: Add DA9052 battery driver
  isp1704_charger: Fix missing check
  jz4740-battery: Fix signedness bug
  power_supply: Assume mains power by default
  sbs-battery: Fix devicetree match table
  ARM: rx51: Add bq27200 i2c board info
  sbs-battery: Change power supply name
  devicetree-bindings: Propagate bq20z75-&gt;sbs rename to dt bindings
  devicetree-bindings: Add vendor entry for Smart Battery Systems
  sbs-battery: Rename internals to new name
  bq20z75: Rename to sbs-battery
  wm97xx_battery: Use DEFINE_MUTEX() for work_lock
  max8997_charger: Remove duplicate module.h
  lp8727_charger: Some minor fixes for the header
  lp8727_charger: Add header file
  power_supply: Convert drivers/power/* to use module_platform_driver()
  power_supply: Add "unknown" in power supply type
  ...
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid</title>
<updated>2012-01-10T18:48:28Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-01-10T18:48:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f62f61917d72c1fb0101ad405664f6fc868d676b'/>
<id>urn:sha1:f62f61917d72c1fb0101ad405664f6fc868d676b</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (68 commits)
  hid-input/battery: add FEATURE quirk
  hid-input/battery: remove battery_val
  hid-input/battery: power-supply type really *is* a battery
  hid-input/battery: make the battery setup common for INPUTs and FEATUREs
  hid-input/battery: deal with both FEATURE and INPUT report batteries
  hid-input/battery: add quirks for battery
  hid-input/battery: remove apparently redundant kmalloc
  hid-input: add support for HID devices reporting Battery Strength
  HID: hid-multitouch: add support 9 new Xiroku devices
  HID: multitouch: add support for 3M 32"
  HID: multitouch: add support of Atmel multitouch panels
  HID: usbhid: defer LED setting to a workqueue
  HID: usbhid: hid-core: submit queued urbs before suspend
  HID: usbhid: remove LED_ON
  HID: emsff: use symbolic name instead of hardcoded PID constant
  HID: Enable HID_QUIRK_MULTI_INPUT for Trio Linker Plus II
  HID: Kconfig: fix syntax
  HID: introduce proper dependency of HID_BATTERY on POWER_SUPPLY
  HID: multitouch: support PixArt optical touch screen
  HID: make parser more verbose about parsing errors by default
  ...

Fix up rename/delete conflict in drivers/hid/hid-hyperv.c (removed in
staging, moved in this branch) and similarly for the rules for same file
in drivers/staging/hv/{Kconfig,Makefile}.
</content>
</entry>
</feed>
