Thread (24 messages) 24 messages, 6 authors, 2016-04-22

RE: [PATCH] Input: serio: make HYPERV_KEYBOARD depend on SERIO_I8042=y

From: Dexuan Cui <decui@microsoft.com>
Date: 2014-08-14 06:08:34
Also in: lkml

-----Original Message-----
From: Dmitry Torokhov
quoted
How about this:
in libps2.c let's add  and export a function pointer
i8042_lock_chip_if_port_owner: it is used to replace the current
	if (i8042_check_port_owner(ps2dev->serio))
		i8042_lock_chip();
The function pointer has a default value NULL, and in i8042.c: i8042_init()
we set the function pointer if an i8042 device is found?
Hmm, that would make i8042 depend on libps2, which might be OK, but how
do you deal with the locking here? I.e. what happens if you unload i8042
right when we go through this sequence?
Ok, I got it.
Maybe we need to split i8042_lock_chip() and friends into a separate
module that always loads, even if i8042 is not present.
Dmitry
Good idea!

However the more difficult thing is 
i8042_check_port_owner() -- used by  libps2.c too.
Then  the separate module will also have to include and EXPORT
	DEFINE_SPINLOCK(i8042_lock);
	struct i8042_port i8042_ports[I8042_NUM_PORTS];
?

This seems a non-trivial change... :-(

Thanks,
-- Dexuan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help