Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
41fd50db
Commit
41fd50db
authored
Nov 13, 2008
by
Tony Lindgren
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'spurious'
parents
d33dcd32
ea153a17
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
11 deletions
+45
-11
arch/arm/include/asm/mach/map.h
arch/arm/include/asm/mach/map.h
+0
-1
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/io.c
+6
-6
arch/arm/mach-omap2/irq.c
arch/arm/mach-omap2/irq.c
+39
-0
arch/arm/mm/mmu.c
arch/arm/mm/mmu.c
+0
-4
No files found.
arch/arm/include/asm/mach/map.h
View file @
41fd50db
...
@@ -25,7 +25,6 @@ struct map_desc {
...
@@ -25,7 +25,6 @@ struct map_desc {
#define MT_HIGH_VECTORS 7
#define MT_HIGH_VECTORS 7
#define MT_MEMORY 8
#define MT_MEMORY 8
#define MT_ROM 9
#define MT_ROM 9
#define MT_MEMORY_SO 10
#ifdef CONFIG_MMU
#ifdef CONFIG_MMU
extern
void
iotable_init
(
struct
map_desc
*
,
int
);
extern
void
iotable_init
(
struct
map_desc
*
,
int
);
...
...
arch/arm/mach-omap2/io.c
View file @
41fd50db
...
@@ -119,13 +119,13 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
...
@@ -119,13 +119,13 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
.
virtual
=
L3_34XX_VIRT
,
.
virtual
=
L3_34XX_VIRT
,
.
pfn
=
__phys_to_pfn
(
L3_34XX_PHYS
),
.
pfn
=
__phys_to_pfn
(
L3_34XX_PHYS
),
.
length
=
L3_34XX_SIZE
,
.
length
=
L3_34XX_SIZE
,
.
type
=
MT_
MEMORY_SO
.
type
=
MT_
DEVICE
},
},
{
{
.
virtual
=
L4_34XX_VIRT
,
.
virtual
=
L4_34XX_VIRT
,
.
pfn
=
__phys_to_pfn
(
L4_34XX_PHYS
),
.
pfn
=
__phys_to_pfn
(
L4_34XX_PHYS
),
.
length
=
L4_34XX_SIZE
,
.
length
=
L4_34XX_SIZE
,
.
type
=
MT_
MEMORY_SO
.
type
=
MT_
DEVICE
},
},
{
{
.
virtual
=
L4_WK_34XX_VIRT
,
.
virtual
=
L4_WK_34XX_VIRT
,
...
@@ -137,19 +137,19 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
...
@@ -137,19 +137,19 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
.
virtual
=
OMAP34XX_GPMC_VIRT
,
.
virtual
=
OMAP34XX_GPMC_VIRT
,
.
pfn
=
__phys_to_pfn
(
OMAP34XX_GPMC_PHYS
),
.
pfn
=
__phys_to_pfn
(
OMAP34XX_GPMC_PHYS
),
.
length
=
OMAP34XX_GPMC_SIZE
,
.
length
=
OMAP34XX_GPMC_SIZE
,
.
type
=
MT_
MEMORY_SO
.
type
=
MT_
DEVICE
},
},
{
{
.
virtual
=
OMAP343X_SMS_VIRT
,
.
virtual
=
OMAP343X_SMS_VIRT
,
.
pfn
=
__phys_to_pfn
(
OMAP343X_SMS_PHYS
),
.
pfn
=
__phys_to_pfn
(
OMAP343X_SMS_PHYS
),
.
length
=
OMAP343X_SMS_SIZE
,
.
length
=
OMAP343X_SMS_SIZE
,
.
type
=
MT_
MEMORY_SO
.
type
=
MT_
DEVICE
},
},
{
{
.
virtual
=
OMAP343X_SDRC_VIRT
,
.
virtual
=
OMAP343X_SDRC_VIRT
,
.
pfn
=
__phys_to_pfn
(
OMAP343X_SDRC_PHYS
),
.
pfn
=
__phys_to_pfn
(
OMAP343X_SDRC_PHYS
),
.
length
=
OMAP343X_SDRC_SIZE
,
.
length
=
OMAP343X_SDRC_SIZE
,
.
type
=
MT_
MEMORY_SO
.
type
=
MT_
DEVICE
},
},
{
{
.
virtual
=
L4_PER_34XX_VIRT
,
.
virtual
=
L4_PER_34XX_VIRT
,
...
@@ -161,7 +161,7 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
...
@@ -161,7 +161,7 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
.
virtual
=
L4_EMU_34XX_VIRT
,
.
virtual
=
L4_EMU_34XX_VIRT
,
.
pfn
=
__phys_to_pfn
(
L4_EMU_34XX_PHYS
),
.
pfn
=
__phys_to_pfn
(
L4_EMU_34XX_PHYS
),
.
length
=
L4_EMU_34XX_SIZE
,
.
length
=
L4_EMU_34XX_SIZE
,
.
type
=
MT_
MEMORY_SO
.
type
=
MT_
DEVICE
},
},
};
};
#endif
#endif
...
...
arch/arm/mach-omap2/irq.c
View file @
41fd50db
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
#define INTC_REVISION 0x0000
#define INTC_REVISION 0x0000
#define INTC_SYSCONFIG 0x0010
#define INTC_SYSCONFIG 0x0010
#define INTC_SYSSTATUS 0x0014
#define INTC_SYSSTATUS 0x0014
#define INTC_SIR 0x0040
#define INTC_CONTROL 0x0048
#define INTC_CONTROL 0x0048
#define INTC_MIR_CLEAR0 0x0088
#define INTC_MIR_CLEAR0 0x0088
#define INTC_MIR_SET0 0x008c
#define INTC_MIR_SET0 0x008c
...
@@ -60,6 +61,30 @@ static u32 intc_bank_read_reg(struct omap_irq_bank *bank, u16 reg)
...
@@ -60,6 +61,30 @@ static u32 intc_bank_read_reg(struct omap_irq_bank *bank, u16 reg)
return
__raw_readl
(
bank
->
base_reg
+
reg
);
return
__raw_readl
(
bank
->
base_reg
+
reg
);
}
}
static
int
previous_irq
;
/*
* On 34xx we can get occasional spurious interrupts if the ack from
* an interrupt handler does not get posted before we unmask. Warn about
* the interrupt handlers that need to flush posted writes.
*/
static
int
omap_check_spurious
(
unsigned
int
irq
)
{
u32
sir
,
spurious
;
sir
=
intc_bank_read_reg
(
&
irq_banks
[
0
],
INTC_SIR
);
spurious
=
sir
>>
6
;
if
(
spurious
>
1
)
{
printk
(
KERN_WARNING
"Spurious irq %i: 0x%08x, please flush "
"posted write for irq %i
\n
"
,
irq
,
sir
,
previous_irq
);
return
spurious
;
}
return
0
;
}
/* XXX: FIQ and additional INTC support (only MPU at the moment) */
/* XXX: FIQ and additional INTC support (only MPU at the moment) */
static
void
omap_ack_irq
(
unsigned
int
irq
)
static
void
omap_ack_irq
(
unsigned
int
irq
)
{
{
...
@@ -70,6 +95,20 @@ static void omap_mask_irq(unsigned int irq)
...
@@ -70,6 +95,20 @@ static void omap_mask_irq(unsigned int irq)
{
{
int
offset
=
irq
&
(
~
(
IRQ_BITS_PER_REG
-
1
));
int
offset
=
irq
&
(
~
(
IRQ_BITS_PER_REG
-
1
));
if
(
cpu_is_omap34xx
())
{
int
spurious
;
/*
* INT_34XX_GPT12_IRQ is also the spurious irq. Maybe because
* it is the highest irq number?
*/
if
(
irq
==
INT_34XX_GPT12_IRQ
)
spurious
=
omap_check_spurious
(
irq
);
if
(
!
spurious
)
previous_irq
=
irq
;
}
irq
&=
(
IRQ_BITS_PER_REG
-
1
);
irq
&=
(
IRQ_BITS_PER_REG
-
1
);
intc_bank_write_reg
(
1
<<
irq
,
&
irq_banks
[
0
],
INTC_MIR_SET0
+
offset
);
intc_bank_write_reg
(
1
<<
irq
,
&
irq_banks
[
0
],
INTC_MIR_SET0
+
offset
);
...
...
arch/arm/mm/mmu.c
View file @
41fd50db
...
@@ -236,10 +236,6 @@ static struct mem_type mem_types[] = {
...
@@ -236,10 +236,6 @@ static struct mem_type mem_types[] = {
.
prot_sect
=
PMD_TYPE_SECT
,
.
prot_sect
=
PMD_TYPE_SECT
,
.
domain
=
DOMAIN_KERNEL
,
.
domain
=
DOMAIN_KERNEL
,
},
},
[
MT_MEMORY_SO
]
=
{
.
prot_sect
=
PMD_TYPE_SECT
|
PMD_SECT_AP_WRITE
|
PMD_SECT_UNCACHED
,
.
domain
=
DOMAIN_KERNEL
,
},
};
};
const
struct
mem_type
*
get_mem_type
(
unsigned
int
type
)
const
struct
mem_type
*
get_mem_type
(
unsigned
int
type
)
...
...
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