Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
0ffaf597
Commit
0ffaf597
authored
Jun 11, 2004
by
Vojtech Pavlik
Browse files
Options
Browse Files
Download
Plain Diff
Merge bkbits:input into suse.cz:/data/bk/input
parents
88c419c2
71aadd50
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
12 deletions
+15
-12
drivers/input/serio/i8042.c
drivers/input/serio/i8042.c
+1
-0
drivers/input/serio/serio.c
drivers/input/serio/serio.c
+14
-12
No files found.
drivers/input/serio/i8042.c
View file @
0ffaf597
...
...
@@ -54,6 +54,7 @@ MODULE_PARM_DESC(dumbkbd, "Pretend that controller can only read data from keybo
extern
unsigned
int
i8042_dmi_noloop
;
static
unsigned
int
i8042_noloop
;
extern
unsigned
int
i8042_dmi_noloop
;
__obsolete_setup
(
"i8042_noaux"
);
__obsolete_setup
(
"i8042_nomux"
);
...
...
drivers/input/serio/serio.c
View file @
0ffaf597
...
...
@@ -68,8 +68,8 @@ struct serio_event {
};
spinlock_t
serio_event_lock
=
SPIN_LOCK_UNLOCKED
;
/* protects serio_event_list */
static
DECLARE_MUTEX
(
serio_sem
);
/* protects serio_list and serio_dev_list */
s
tatic
s
pinlock_t
serio_event_lock
=
SPIN_LOCK_UNLOCKED
;
/* protects serio_event_list */
static
DECLARE_MUTEX
(
serio_sem
);
/* protects serio_list and serio_dev_list */
static
LIST_HEAD
(
serio_list
);
static
LIST_HEAD
(
serio_dev_list
);
static
LIST_HEAD
(
serio_event_list
);
...
...
@@ -99,16 +99,21 @@ static void serio_find_dev(struct serio *serio)
static
DECLARE_WAIT_QUEUE_HEAD
(
serio_wait
);
static
DECLARE_COMPLETION
(
serio_exited
);
static
void
serio_
invalidat
e_pending_events
(
struct
serio
*
serio
)
static
void
serio_
remov
e_pending_events
(
struct
serio
*
serio
)
{
struct
list_head
*
node
,
*
next
;
struct
serio_event
*
event
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
serio_event_lock
,
flags
);
list_for_each_entry
(
event
,
&
serio_event_list
,
node
)
if
(
event
->
serio
==
serio
)
event
->
serio
=
NULL
;
list_for_each_safe
(
node
,
next
,
&
serio_event_list
)
{
event
=
container_of
(
node
,
struct
serio_event
,
node
);
if
(
event
->
serio
==
serio
)
{
list_del_init
(
node
);
kfree
(
event
);
}
}
spin_unlock_irqrestore
(
&
serio_event_lock
,
flags
);
}
...
...
@@ -137,9 +142,6 @@ void serio_handle_events(void)
down
(
&
serio_sem
);
if
(
event
->
serio
==
NULL
)
/*!!!*/
goto
event_done
;
switch
(
event
->
type
)
{
case
SERIO_REGISTER_PORT
:
__serio_register_port
(
event
->
serio
);
...
...
@@ -163,7 +165,7 @@ void serio_handle_events(void)
default:
break
;
}
event_done:
up
(
&
serio_sem
);
kfree
(
event
);
}
...
...
@@ -224,7 +226,7 @@ irqreturn_t serio_interrupt(struct serio *serio,
spin_lock_irqsave
(
&
serio
->
lock
,
flags
);
if
(
serio
->
dev
&&
serio
->
dev
->
interrupt
)
{
if
(
likely
(
serio
->
dev
)
)
{
ret
=
serio
->
dev
->
interrupt
(
serio
,
data
,
dfl
,
regs
);
}
else
{
if
(
!
dfl
)
{
...
...
@@ -294,7 +296,7 @@ void serio_unregister_port_delayed(struct serio *serio)
*/
void
__serio_unregister_port
(
struct
serio
*
serio
)
{
serio_
invalidat
e_pending_events
(
serio
);
serio_
remov
e_pending_events
(
serio
);
list_del_init
(
&
serio
->
node
);
if
(
serio
->
dev
&&
serio
->
dev
->
disconnect
)
serio
->
dev
->
disconnect
(
serio
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment