Thread (9 messages) 9 messages, 3 authors, 2013-10-10

Re: Q: weird hidraw behaviour

From: Mika Westerberg <mika.westerberg@linux.intel.com>
Date: 2013-10-10 09:34:12

On Thu, Oct 10, 2013 at 11:26:45AM +0200, David Herrmann wrote:
Hi

On Tue, Sep 24, 2013 at 10:56 AM, Mika Westerberg
[off-list ref] wrote:
quoted
Hi,

I noticed that after commit 212a871a393 (HID: hidraw: correctly deallocate
memory on device disconnect) hidraw doesn't close the underlying hid device
when the device node is closed last time.

For example I have a touch panel (HID over I2C) device with added debug
prints in i2c_hid_open()/i2c_hid_close():

        # od -x /dev/hidraw0
        [   41.363813] i2c_hid 1-004c: i2c_hid_power lvl:32
        [   41.368464] i2c_hid 1-004c: i2c_hid_set_power
        [   41.372831] i2c_hid 1-004c: __i2c_hid_command: cmd=54 01 00 08
        [   41.451455] i2c_hid 1-004c: i2c_hid_open
        ^C

        # od -x /dev/hidraw0
        [   58.420928] i2c_hid 1-004c: i2c_hid_power lvl:32
        [   58.425577] i2c_hid 1-004c: i2c_hid_set_power
        [   58.429945] i2c_hid 1-004c: __i2c_hid_command: cmd=54 01 00 08
        [   58.525276] i2c_hid 1-004c: i2c_hid_open
        ^C

i2c_hid_close() is never called. Is this intended or am I missing
something?
I don't know whether it's intentional, but it is hardcoded this way
now. Logic is, ->close() is called on hidraw_disconnect() that is,
when hidraw is unloaded on a device. It no longer depends on
user-space processes.

Any reason to change it back? It's no bug, so if no-one cares I'd
leave it as it is now. Otherwise, we can try to change it again.
Well, if you open the device and close it from userspace, the device stays
opened forever. I'm not sure if that's the intention.

I think that fix for this was already merged.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help