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
09146235
Commit
09146235
authored
Jul 09, 2002
by
Russell King
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ARM] Make IRQ probing more reliable; ensure that IRQ edge detection
is set correctly. Remove couple of debugging printk()s.
parent
1d31c451
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
4 deletions
+14
-4
arch/arm/kernel/irq.c
arch/arm/kernel/irq.c
+2
-0
arch/arm/mach-sa1100/irq.c
arch/arm/mach-sa1100/irq.c
+6
-0
arch/arm/mach-sa1100/sa1111.c
arch/arm/mach-sa1100/sa1111.c
+6
-4
No files found.
arch/arm/kernel/irq.c
View file @
09146235
...
...
@@ -633,6 +633,8 @@ unsigned long probe_irq_on(void)
irq_desc
[
i
].
probing
=
1
;
irq_desc
[
i
].
triggered
=
0
;
if
(
irq_desc
[
i
].
chip
->
type
)
irq_desc
[
i
].
chip
->
type
(
i
,
IRQT_PROBE
);
irq_desc
[
i
].
chip
->
unmask
(
i
);
irqs
+=
1
;
}
...
...
arch/arm/mach-sa1100/irq.c
View file @
09146235
...
...
@@ -55,6 +55,12 @@ static int sa1100_gpio_type(unsigned int irq, unsigned int type)
else
mask
=
GPIO11_27_MASK
(
irq
);
if
(
type
==
IRQT_PROBE
)
{
if
((
GPIO_IRQ_rising_edge
|
GPIO_IRQ_falling_edge
)
&
mask
)
return
0
;
type
==
__IRQT_RISEDGE
|
__IRQT_FALEDGE
;
}
if
(
type
&
__IRQT_RISEDGE
)
{
GPIO_IRQ_rising_edge
|=
mask
;
}
else
...
...
arch/arm/mach-sa1100/sa1111.c
View file @
09146235
...
...
@@ -117,11 +117,12 @@ static int sa1111_type_lowirq(unsigned int irq, unsigned int flags)
{
unsigned
int
mask
=
SA1111_IRQMASK_LO
(
irq
);
if
(
flags
==
IRQT_PROBE
)
return
0
;
if
((
!
(
flags
&
__IRQT_RISEDGE
)
^
!
(
flags
&
__IRQT_FALEDGE
))
==
0
)
return
-
EINVAL
;
printk
(
"IRQ%d: %s edge
\n
"
,
irq
,
flags
&
__IRQT_RISEDGE
?
"rising"
:
"falling"
);
if
(
flags
&
__IRQT_RISEDGE
)
INTPOL0
&=
~
mask
;
else
...
...
@@ -181,11 +182,12 @@ static int sa1111_type_highirq(unsigned int irq, unsigned int flags)
{
unsigned
int
mask
=
SA1111_IRQMASK_HI
(
irq
);
if
(
flags
==
IRQT_PROBE
)
return
0
;
if
((
!
(
flags
&
__IRQT_RISEDGE
)
^
!
(
flags
&
__IRQT_FALEDGE
))
==
0
)
return
-
EINVAL
;
printk
(
"IRQ%d: %s edge
\n
"
,
irq
,
flags
&
__IRQT_RISEDGE
?
"rising"
:
"falling"
);
if
(
flags
&
__IRQT_RISEDGE
)
INTPOL1
&=
~
mask
;
else
...
...
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