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
a9de8b7b
Commit
a9de8b7b
authored
Jul 29, 2009
by
Thomas Gleixner
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'rt/arm' into rt/base
parents
ba36d1d9
a55fb470
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
98 additions
and
88 deletions
+98
-88
arch/arm/include/asm/dma.h
arch/arm/include/asm/dma.h
+3
-3
arch/arm/kernel/dma.c
arch/arm/kernel/dma.c
+1
-1
arch/arm/kernel/smp.c
arch/arm/kernel/smp.c
+3
-3
arch/arm/kernel/traps.c
arch/arm/kernel/traps.c
+10
-10
arch/arm/mach-at91/gpio.c
arch/arm/mach-at91/gpio.c
+7
-1
arch/arm/mach-footbridge/include/mach/hardware.h
arch/arm/mach-footbridge/include/mach/hardware.h
+1
-1
arch/arm/mach-footbridge/netwinder-hw.c
arch/arm/mach-footbridge/netwinder-hw.c
+7
-7
arch/arm/mach-footbridge/netwinder-leds.c
arch/arm/mach-footbridge/netwinder-leds.c
+5
-5
arch/arm/mach-integrator/core.c
arch/arm/mach-integrator/core.c
+3
-3
arch/arm/mach-integrator/pci_v3.c
arch/arm/mach-integrator/pci_v3.c
+7
-7
arch/arm/mach-ixp4xx/common-pci.c
arch/arm/mach-ixp4xx/common-pci.c
+11
-11
arch/arm/mach-sa1100/badge4.c
arch/arm/mach-sa1100/badge4.c
+9
-2
arch/arm/mach-shark/leds.c
arch/arm/mach-shark/leds.c
+3
-3
arch/arm/mm/cache-l2x0.c
arch/arm/mm/cache-l2x0.c
+3
-3
arch/arm/mm/context.c
arch/arm/mm/context.c
+3
-3
arch/arm/mm/copypage-v4mc.c
arch/arm/mm/copypage-v4mc.c
+3
-3
arch/arm/mm/copypage-v6.c
arch/arm/mm/copypage-v6.c
+5
-5
arch/arm/mm/copypage-xscale.c
arch/arm/mm/copypage-xscale.c
+3
-3
arch/arm/mm/dma-mapping.c
arch/arm/mm/dma-mapping.c
+11
-11
arch/arm/plat-omap/clock.c
arch/arm/plat-omap/clock.c
+0
-3
No files found.
arch/arm/include/asm/dma.h
View file @
a9de8b7b
...
...
@@ -31,18 +31,18 @@
#define DMA_MODE_CASCADE 0xc0
#define DMA_AUTOINIT 0x10
extern
spinlock_t
dma_spin_lock
;
extern
atomic_
spinlock_t
dma_spin_lock
;
static
inline
unsigned
long
claim_dma_lock
(
void
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
dma_spin_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
dma_spin_lock
,
flags
);
return
flags
;
}
static
inline
void
release_dma_lock
(
unsigned
long
flags
)
{
spin_unlock_irqrestore
(
&
dma_spin_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
dma_spin_lock
,
flags
);
}
/* Clear the 'DMA Pointer Flip Flop'.
...
...
arch/arm/kernel/dma.c
View file @
a9de8b7b
...
...
@@ -21,7 +21,7 @@
#include <asm/mach/dma.h>
DEFINE_SPINLOCK
(
dma_spin_lock
);
DEFINE_
ATOMIC_
SPINLOCK
(
dma_spin_lock
);
EXPORT_SYMBOL
(
dma_spin_lock
);
static
dma_t
*
dma_chan
[
MAX_DMA_CHANNELS
];
...
...
arch/arm/kernel/smp.c
View file @
a9de8b7b
...
...
@@ -451,17 +451,17 @@ void __cpuinit percpu_timer_setup(void)
local_timer_setup
(
evt
);
}
static
DEFINE_SPINLOCK
(
stop_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
stop_lock
);
/*
* ipi_cpu_stop - handle IPI from smp_send_stop()
*/
static
void
ipi_cpu_stop
(
unsigned
int
cpu
)
{
spin_lock
(
&
stop_lock
);
atomic_
spin_lock
(
&
stop_lock
);
printk
(
KERN_CRIT
"CPU%u: stopping
\n
"
,
cpu
);
dump_stack
();
spin_unlock
(
&
stop_lock
);
atomic_
spin_unlock
(
&
stop_lock
);
set_cpu_online
(
cpu
,
false
);
...
...
arch/arm/kernel/traps.c
View file @
a9de8b7b
...
...
@@ -239,7 +239,7 @@ static void __die(const char *str, int err, struct thread_info *thread, struct p
}
}
DEFINE_SPINLOCK
(
die_lock
);
DEFINE_
ATOMIC_
SPINLOCK
(
die_lock
);
/*
* This function is protected against re-entrancy.
...
...
@@ -251,12 +251,12 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
oops_enter
();
console_verbose
();
spin_lock_irq
(
&
die_lock
);
atomic_
spin_lock_irq
(
&
die_lock
);
bust_spinlocks
(
1
);
__die
(
str
,
err
,
thread
,
regs
);
bust_spinlocks
(
0
);
add_taint
(
TAINT_DIE
);
spin_unlock_irq
(
&
die_lock
);
atomic_
spin_unlock_irq
(
&
die_lock
);
if
(
in_interrupt
())
panic
(
"Fatal exception in interrupt"
);
...
...
@@ -282,24 +282,24 @@ void arm_notify_die(const char *str, struct pt_regs *regs,
}
static
LIST_HEAD
(
undef_hook
);
static
DEFINE_SPINLOCK
(
undef_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
undef_lock
);
void
register_undef_hook
(
struct
undef_hook
*
hook
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
undef_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
undef_lock
,
flags
);
list_add
(
&
hook
->
node
,
&
undef_hook
);
spin_unlock_irqrestore
(
&
undef_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
undef_lock
,
flags
);
}
void
unregister_undef_hook
(
struct
undef_hook
*
hook
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
undef_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
undef_lock
,
flags
);
list_del
(
&
hook
->
node
);
spin_unlock_irqrestore
(
&
undef_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
undef_lock
,
flags
);
}
static
int
call_undef_hook
(
struct
pt_regs
*
regs
,
unsigned
int
instr
)
...
...
@@ -308,12 +308,12 @@ static int call_undef_hook(struct pt_regs *regs, unsigned int instr)
unsigned
long
flags
;
int
(
*
fn
)(
struct
pt_regs
*
regs
,
unsigned
int
instr
)
=
NULL
;
spin_lock_irqsave
(
&
undef_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
undef_lock
,
flags
);
list_for_each_entry
(
hook
,
&
undef_hook
,
node
)
if
((
instr
&
hook
->
instr_mask
)
==
hook
->
instr_val
&&
(
regs
->
ARM_cpsr
&
hook
->
cpsr_mask
)
==
hook
->
cpsr_val
)
fn
=
hook
->
fn
;
spin_unlock_irqrestore
(
&
undef_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
undef_lock
,
flags
);
return
fn
?
fn
(
regs
,
instr
)
:
1
;
}
...
...
arch/arm/mach-at91/gpio.c
View file @
a9de8b7b
...
...
@@ -375,12 +375,18 @@ static int gpio_irq_type(unsigned pin, unsigned type)
}
}
static
void
gpio_irq_ack_noop
(
unsigned
int
irq
)
{
/* Dummy function. */
}
static
struct
irq_chip
gpio_irqchip
=
{
.
name
=
"GPIO"
,
.
mask
=
gpio_irq_mask
,
.
unmask
=
gpio_irq_unmask
,
.
set_type
=
gpio_irq_type
,
.
set_wake
=
gpio_irq_set_wake
,
.
ack
=
gpio_irq_ack_noop
,
};
static
void
gpio_irq_handler
(
unsigned
irq
,
struct
irq_desc
*
desc
)
...
...
@@ -527,7 +533,7 @@ void __init at91_gpio_irq_setup(void)
* shorter, and the AIC handles interrupts sanely.
*/
set_irq_chip
(
pin
,
&
gpio_irqchip
);
set_irq_handler
(
pin
,
handle_
simpl
e_irq
);
set_irq_handler
(
pin
,
handle_
edg
e_irq
);
set_irq_flags
(
pin
,
IRQF_VALID
);
}
...
...
arch/arm/mach-footbridge/include/mach/hardware.h
View file @
a9de8b7b
...
...
@@ -86,7 +86,7 @@
#define CPLD_FLASH_WR_ENABLE 1
#ifndef __ASSEMBLY__
extern
spinlock_t
nw_gpio_lock
;
extern
atomic_
spinlock_t
nw_gpio_lock
;
extern
void
nw_gpio_modify_op
(
unsigned
int
mask
,
unsigned
int
set
);
extern
void
nw_gpio_modify_io
(
unsigned
int
mask
,
unsigned
int
in
);
extern
unsigned
int
nw_gpio_read
(
void
);
...
...
arch/arm/mach-footbridge/netwinder-hw.c
View file @
a9de8b7b
...
...
@@ -68,7 +68,7 @@ static inline void wb977_ww(int reg, int val)
/*
* This is a lock for accessing ports GP1_IO_BASE and GP2_IO_BASE
*/
DEFINE_SPINLOCK
(
nw_gpio_lock
);
DEFINE_
ATOMIC_
SPINLOCK
(
nw_gpio_lock
);
EXPORT_SYMBOL
(
nw_gpio_lock
);
static
unsigned
int
current_gpio_op
;
...
...
@@ -327,9 +327,9 @@ static inline void wb977_init_gpio(void)
/*
* Set Group1/Group2 outputs
*/
spin_lock_irqsave
(
&
nw_gpio_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
nw_gpio_lock
,
flags
);
nw_gpio_modify_op
(
-
1
,
GPIO_RED_LED
|
GPIO_FAN
);
spin_unlock_irqrestore
(
&
nw_gpio_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
nw_gpio_lock
,
flags
);
}
/*
...
...
@@ -390,9 +390,9 @@ static void __init cpld_init(void)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
nw_gpio_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
nw_gpio_lock
,
flags
);
nw_cpld_modify
(
-
1
,
CPLD_UNMUTE
|
CPLD_7111_DISABLE
);
spin_unlock_irqrestore
(
&
nw_gpio_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
nw_gpio_lock
,
flags
);
}
static
unsigned
char
rwa_unlock
[]
__initdata
=
...
...
@@ -616,9 +616,9 @@ static int __init nw_hw_init(void)
cpld_init
();
rwa010_init
();
spin_lock_irqsave
(
&
nw_gpio_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
nw_gpio_lock
,
flags
);
nw_gpio_modify_op
(
GPIO_RED_LED
|
GPIO_GREEN_LED
,
DEFAULT_LEDS
);
spin_unlock_irqrestore
(
&
nw_gpio_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
nw_gpio_lock
,
flags
);
}
return
0
;
}
...
...
arch/arm/mach-footbridge/netwinder-leds.c
View file @
a9de8b7b
...
...
@@ -31,13 +31,13 @@
static
char
led_state
;
static
char
hw_led_state
;
static
DEFINE_SPINLOCK
(
leds_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
leds_lock
);
static
void
netwinder_leds_event
(
led_event_t
evt
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
leds_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
leds_lock
,
flags
);
switch
(
evt
)
{
case
led_start
:
...
...
@@ -117,12 +117,12 @@ static void netwinder_leds_event(led_event_t evt)
break
;
}
spin_unlock_irqrestore
(
&
leds_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
leds_lock
,
flags
);
if
(
led_state
&
LED_STATE_ENABLED
)
{
spin_lock_irqsave
(
&
nw_gpio_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
nw_gpio_lock
,
flags
);
nw_gpio_modify_op
(
GPIO_RED_LED
|
GPIO_GREEN_LED
,
hw_led_state
);
spin_unlock_irqrestore
(
&
nw_gpio_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
nw_gpio_lock
,
flags
);
}
}
...
...
arch/arm/mach-integrator/core.c
View file @
a9de8b7b
...
...
@@ -199,7 +199,7 @@ static struct amba_pl010_data integrator_uart_data = {
#define CM_CTRL IO_ADDRESS(INTEGRATOR_HDR_BASE) + INTEGRATOR_HDR_CTRL_OFFSET
static
DEFINE_SPINLOCK
(
cm_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
cm_lock
);
/**
* cm_control - update the CM_CTRL register.
...
...
@@ -211,10 +211,10 @@ void cm_control(u32 mask, u32 set)
unsigned
long
flags
;
u32
val
;
spin_lock_irqsave
(
&
cm_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
cm_lock
,
flags
);
val
=
readl
(
CM_CTRL
)
&
~
mask
;
writel
(
val
|
set
,
CM_CTRL
);
spin_unlock_irqrestore
(
&
cm_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
cm_lock
,
flags
);
}
EXPORT_SYMBOL
(
cm_control
);
...
...
arch/arm/mach-integrator/pci_v3.c
View file @
a9de8b7b
...
...
@@ -162,7 +162,7 @@
* 7:2 register number
*
*/
static
DEFINE_SPINLOCK
(
v3_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
v3_lock
);
#define PCI_BUS_NONMEM_START 0x00000000
#define PCI_BUS_NONMEM_SIZE SZ_256M
...
...
@@ -283,7 +283,7 @@ static int v3_read_config(struct pci_bus *bus, unsigned int devfn, int where,
unsigned
long
flags
;
u32
v
;
spin_lock_irqsave
(
&
v3_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
v3_lock
,
flags
);
addr
=
v3_open_config_window
(
bus
,
devfn
,
where
);
switch
(
size
)
{
...
...
@@ -301,7 +301,7 @@ static int v3_read_config(struct pci_bus *bus, unsigned int devfn, int where,
}
v3_close_config_window
();
spin_unlock_irqrestore
(
&
v3_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
v3_lock
,
flags
);
*
val
=
v
;
return
PCIBIOS_SUCCESSFUL
;
...
...
@@ -313,7 +313,7 @@ static int v3_write_config(struct pci_bus *bus, unsigned int devfn, int where,
unsigned
long
addr
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
v3_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
v3_lock
,
flags
);
addr
=
v3_open_config_window
(
bus
,
devfn
,
where
);
switch
(
size
)
{
...
...
@@ -334,7 +334,7 @@ static int v3_write_config(struct pci_bus *bus, unsigned int devfn, int where,
}
v3_close_config_window
();
spin_unlock_irqrestore
(
&
v3_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
v3_lock
,
flags
);
return
PCIBIOS_SUCCESSFUL
;
}
...
...
@@ -509,7 +509,7 @@ void __init pci_v3_preinit(void)
hook_fault_code
(
8
,
v3_pci_fault
,
SIGBUS
,
"external abort on non-linefetch"
);
hook_fault_code
(
10
,
v3_pci_fault
,
SIGBUS
,
"external abort on non-linefetch"
);
spin_lock_irqsave
(
&
v3_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
v3_lock
,
flags
);
/*
* Unlock V3 registers, but only if they were previously locked.
...
...
@@ -582,7 +582,7 @@ void __init pci_v3_preinit(void)
printk
(
KERN_ERR
"PCI: unable to grab PCI error "
"interrupt: %d
\n
"
,
ret
);
spin_unlock_irqrestore
(
&
v3_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
v3_lock
,
flags
);
}
void
__init
pci_v3_postinit
(
void
)
...
...
arch/arm/mach-ixp4xx/common-pci.c
View file @
a9de8b7b
...
...
@@ -54,7 +54,7 @@ unsigned long ixp4xx_pci_reg_base = 0;
* these transactions are atomic or we will end up
* with corrupt data on the bus or in a driver.
*/
static
DEFINE_SPINLOCK
(
ixp4xx_pci_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
ixp4xx_pci_lock
);
/*
* Read from PCI config space
...
...
@@ -62,10 +62,10 @@ static DEFINE_SPINLOCK(ixp4xx_pci_lock);
static
void
crp_read
(
u32
ad_cbe
,
u32
*
data
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
*
PCI_CRP_AD_CBE
=
ad_cbe
;
*
data
=
*
PCI_CRP_RDATA
;
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
}
/*
...
...
@@ -74,10 +74,10 @@ static void crp_read(u32 ad_cbe, u32 *data)
static
void
crp_write
(
u32
ad_cbe
,
u32
data
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
*
PCI_CRP_AD_CBE
=
CRP_AD_CBE_WRITE
|
ad_cbe
;
*
PCI_CRP_WDATA
=
data
;
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
}
static
inline
int
check_master_abort
(
void
)
...
...
@@ -101,7 +101,7 @@ int ixp4xx_pci_read_errata(u32 addr, u32 cmd, u32* data)
int
retval
=
0
;
int
i
;
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
*
PCI_NP_AD
=
addr
;
...
...
@@ -118,7 +118,7 @@ int ixp4xx_pci_read_errata(u32 addr, u32 cmd, u32* data)
if
(
check_master_abort
())
retval
=
1
;
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
return
retval
;
}
...
...
@@ -127,7 +127,7 @@ int ixp4xx_pci_read_no_errata(u32 addr, u32 cmd, u32* data)
unsigned
long
flags
;
int
retval
=
0
;
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
*
PCI_NP_AD
=
addr
;
...
...
@@ -140,7 +140,7 @@ int ixp4xx_pci_read_no_errata(u32 addr, u32 cmd, u32* data)
if
(
check_master_abort
())
retval
=
1
;
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
return
retval
;
}
...
...
@@ -149,7 +149,7 @@ int ixp4xx_pci_write(u32 addr, u32 cmd, u32 data)
unsigned
long
flags
;
int
retval
=
0
;
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
ixp4xx_pci_lock
,
flags
);
*
PCI_NP_AD
=
addr
;
...
...
@@ -162,7 +162,7 @@ int ixp4xx_pci_write(u32 addr, u32 cmd, u32 data)
if
(
check_master_abort
())
retval
=
1
;
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
ixp4xx_pci_lock
,
flags
);
return
retval
;
}
...
...
arch/arm/mach-sa1100/badge4.c
View file @
a9de8b7b
...
...
@@ -240,15 +240,22 @@ void badge4_set_5V(unsigned subsystem, int on)
/* detect on->off and off->on transitions */
if
((
!
old_5V_bitmap
)
&&
(
badge4_5V_bitmap
))
{
/* was off, now on */
printk
(
KERN_INFO
"%s: enabling 5V supply rail
\n
"
,
__func__
);
GPSR
=
BADGE4_GPIO_PCMEN5V
;
}
else
if
((
old_5V_bitmap
)
&&
(
!
badge4_5V_bitmap
))
{
/* was on, now off */
printk
(
KERN_INFO
"%s: disabling 5V supply rail
\n
"
,
__func__
);
GPCR
=
BADGE4_GPIO_PCMEN5V
;
}
local_irq_restore
(
flags
);
/* detect on->off and off->on transitions */
if
((
!
old_5V_bitmap
)
&&
(
badge4_5V_bitmap
))
{
/* was off, now on */
printk
(
KERN_INFO
"%s: enabling 5V supply rail
\n
"
,
__FUNCTION__
);
}
else
if
((
old_5V_bitmap
)
&&
(
!
badge4_5V_bitmap
))
{
/* was on, now off */
printk
(
KERN_INFO
"%s: disabling 5V supply rail
\n
"
,
__FUNCTION__
);
}
}
EXPORT_SYMBOL
(
badge4_set_5V
);
...
...
arch/arm/mach-shark/leds.c
View file @
a9de8b7b
...
...
@@ -36,7 +36,7 @@ static char led_state;
static
short
hw_led_state
;
static
short
saved_state
;
static
DEFINE_SPINLOCK
(
leds_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
leds_lock
);
short
sequoia_read
(
int
addr
)
{
outw
(
addr
,
0x24
);
...
...
@@ -52,7 +52,7 @@ static void sequoia_leds_event(led_event_t evt)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
leds_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
leds_lock
,
flags
);
hw_led_state
=
sequoia_read
(
0x09
);
...
...
@@ -144,7 +144,7 @@ static void sequoia_leds_event(led_event_t evt)
if
(
led_state
&
LED_STATE_ENABLED
)
sequoia_write
(
hw_led_state
,
0x09
);
spin_unlock_irqrestore
(
&
leds_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
leds_lock
,
flags
);
}
static
int
__init
leds_init
(
void
)
...
...
arch/arm/mm/cache-l2x0.c
View file @
a9de8b7b
...
...
@@ -26,19 +26,19 @@
#define CACHE_LINE_SIZE 32
static
void
__iomem
*
l2x0_base
;
static
DEFINE_SPINLOCK
(
l2x0_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
l2x0_lock
);
static
inline
void
sync_writel
(
unsigned
long
val
,
unsigned
long
reg
,
unsigned
long
complete_mask
)
{
unsigned
long
flags
;
spin_lock_irqsave
(
&
l2x0_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
l2x0_lock
,
flags
);
writel
(
val
,
l2x0_base
+
reg
);
/* wait for the operation to complete */
while
(
readl
(
l2x0_base
+
reg
)
&
complete_mask
)
;
spin_unlock_irqrestore
(
&
l2x0_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
l2x0_lock
,
flags
);
}
static
inline
void
cache_sync
(
void
)
...
...
arch/arm/mm/context.c
View file @
a9de8b7b
...
...
@@ -14,7 +14,7 @@
#include <asm/mmu_context.h>
#include <asm/tlbflush.h>
static
DEFINE_SPINLOCK
(
cpu_asid_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
cpu_asid_lock
);
unsigned
int
cpu_last_asid
=
ASID_FIRST_VERSION
;
/*
...
...
@@ -32,7 +32,7 @@ void __new_context(struct mm_struct *mm)
{
unsigned
int
asid
;
spin_lock
(
&
cpu_asid_lock
);
atomic_
spin_lock
(
&
cpu_asid_lock
);
asid
=
++
cpu_last_asid
;
if
(
asid
==
0
)
asid
=
cpu_last_asid
=
ASID_FIRST_VERSION
;
...
...
@@ -57,7 +57,7 @@ void __new_context(struct mm_struct *mm)
dsb
();
}
}
spin_unlock
(
&
cpu_asid_lock
);
atomic_
spin_unlock
(
&
cpu_asid_lock
);
mm
->
cpu_vm_mask
=
cpumask_of_cpu
(
smp_processor_id
());
mm
->
context
.
id
=
asid
;
...
...
arch/arm/mm/copypage-v4mc.c
View file @
a9de8b7b
...
...
@@ -30,7 +30,7 @@
#define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \
L_PTE_MT_MINICACHE)
static
DEFINE_SPINLOCK
(
minicache_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
minicache_lock
);
/*
* ARMv4 mini-dcache optimised copy_user_highpage
...
...
@@ -76,14 +76,14 @@ void v4_mc_copy_user_highpage(struct page *to, struct page *from,
if
(
test_and_clear_bit
(
PG_dcache_dirty
,
&
from
->
flags
))
__flush_dcache_page
(
page_mapping
(
from
),
from
);
spin_lock
(
&
minicache_lock
);
atomic_
spin_lock
(
&
minicache_lock
);
set_pte_ext
(
TOP_PTE
(
0xffff8000
),
pfn_pte
(
page_to_pfn
(
from
),
minicache_pgprot
),
0
);
flush_tlb_kernel_page
(
0xffff8000
);
mc_copy_user_page
((
void
*
)
0xffff8000
,
kto
);
spin_unlock
(
&
minicache_lock
);
atomic_
spin_unlock
(
&
minicache_lock
);
kunmap_atomic
(
kto
,
KM_USER1
);
}
...
...
arch/arm/mm/copypage-v6.c
View file @
a9de8b7b
...
...
@@ -27,7 +27,7 @@
#define from_address (0xffff8000)
#define to_address (0xffffc000)
static
DEFINE_SPINLOCK
(
v6_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
v6_lock
);
/*
* Copy the user page. No aliasing to deal with so we can just
...
...
@@ -88,7 +88,7 @@ static void v6_copy_user_highpage_aliasing(struct page *to,
* Now copy the page using the same cache colour as the
* pages ultimate destination.
*/
spin_lock
(
&
v6_lock
);
atomic_
spin_lock
(
&
v6_lock
);
set_pte_ext
(
TOP_PTE
(
from_address
)
+
offset
,
pfn_pte
(
page_to_pfn
(
from
),
PAGE_KERNEL
),
0
);
set_pte_ext
(
TOP_PTE
(
to_address
)
+
offset
,
pfn_pte
(
page_to_pfn
(
to
),
PAGE_KERNEL
),
0
);
...
...
@@ -101,7 +101,7 @@ static void v6_copy_user_highpage_aliasing(struct page *to,
copy_page
((
void
*
)
kto
,
(
void
*
)
kfrom
);
spin_unlock
(
&
v6_lock
);
atomic_
spin_unlock
(
&
v6_lock
);
}
/*
...
...
@@ -121,13 +121,13 @@ static void v6_clear_user_highpage_aliasing(struct page *page, unsigned long vad
* Now clear the page using the same cache colour as
* the pages ultimate destination.
*/
spin_lock
(
&
v6_lock
);
atomic_
spin_lock
(
&
v6_lock
);
set_pte_ext
(
TOP_PTE
(
to_address
)
+
offset
,
pfn_pte
(
page_to_pfn
(
page
),
PAGE_KERNEL
),
0
);
flush_tlb_kernel_page
(
to
);
clear_page
((
void
*
)
to
);
spin_unlock
(
&
v6_lock
);
atomic_
spin_unlock
(
&
v6_lock
);
}
struct
cpu_user_fns
v6_user_fns
__initdata
=
{
...
...
arch/arm/mm/copypage-xscale.c
View file @
a9de8b7b
...
...
@@ -32,7 +32,7 @@
#define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \
L_PTE_MT_MINICACHE)
static
DEFINE_SPINLOCK
(
minicache_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
minicache_lock
);
/*
* XScale mini-dcache optimised copy_user_highpage
...
...
@@ -98,14 +98,14 @@ void xscale_mc_copy_user_highpage(struct page *to, struct page *from,
if
(
test_and_clear_bit
(
PG_dcache_dirty
,
&
from
->
flags
))
__flush_dcache_page
(
page_mapping
(
from
),
from
);
spin_lock
(
&
minicache_lock
);
atomic_
spin_lock
(
&
minicache_lock
);
set_pte_ext
(
TOP_PTE
(
COPYPAGE_MINICACHE
),
pfn_pte
(
page_to_pfn
(
from
),
minicache_pgprot
),
0
);
flush_tlb_kernel_page
(
COPYPAGE_MINICACHE
);
mc_copy_user_page
((
void
*
)
COPYPAGE_MINICACHE
,
kto
);
spin_unlock
(
&
minicache_lock
);
atomic_
spin_unlock
(
&
minicache_lock
);
kunmap_atomic
(
kto
,
KM_USER1
);
}
...
...
arch/arm/mm/dma-mapping.c
View file @
a9de8b7b
...
...
@@ -41,7 +41,7 @@
* These are the page tables (2MB each) covering uncached, DMA consistent allocations
*/
static
pte_t
*
consistent_pte
[
NUM_CONSISTENT_PTES
];
static
DEFINE_SPINLOCK
(
consistent_lock
);
static
DEFINE_
ATOMIC_
SPINLOCK
(
consistent_lock
);
/*
* VM region handling support.
...
...
@@ -97,7 +97,7 @@ arm_vm_region_alloc(struct arm_vm_region *head, size_t size, gfp_t gfp)
if
(
!
new
)
goto
out
;
spin_lock_irqsave
(
&
consistent_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
consistent_lock
,
flags
);
list_for_each_entry
(
c
,
&
head
->
vm_list
,
vm_list
)
{
if
((
addr
+
size
)
<
addr
)
...
...
@@ -118,11 +118,11 @@ arm_vm_region_alloc(struct arm_vm_region *head, size_t size, gfp_t gfp)
new
->
vm_end
=
addr
+
size
;
new
->
vm_active
=
1
;
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
return
new
;
nospc:
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
kfree
(
new
);
out:
return
NULL
;
...
...
@@ -317,9 +317,9 @@ static int dma_mmap(struct device *dev, struct vm_area_struct *vma,
user_size
=
(
vma
->
vm_end
-
vma
->
vm_start
)
>>
PAGE_SHIFT
;
spin_lock_irqsave
(
&
consistent_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
consistent_lock
,
flags
);
c
=
arm_vm_region_find
(
&
consistent_head
,
(
unsigned
long
)
cpu_addr
);
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
if
(
c
)
{
unsigned
long
off
=
vma
->
vm_pgoff
;
...
...
@@ -378,13 +378,13 @@ void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr
size
=
PAGE_ALIGN
(
size
);
spin_lock_irqsave
(
&
consistent_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
consistent_lock
,
flags
);
c
=
arm_vm_region_find
(
&
consistent_head
,
(
unsigned
long
)
cpu_addr
);
if
(
!
c
)
goto
no_area
;
c
->
vm_active
=
0
;
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
if
((
c
->
vm_end
-
c
->
vm_start
)
!=
size
)
{
printk
(
KERN_ERR
"%s: freeing wrong coherent size (%ld != %d)
\n
"
,
...
...
@@ -431,15 +431,15 @@ void dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, dma_addr
flush_tlb_kernel_range
(
c
->
vm_start
,
c
->
vm_end
);
spin_lock_irqsave
(
&
consistent_lock
,
flags
);
atomic_
spin_lock_irqsave
(
&
consistent_lock
,
flags
);
list_del
(
&
c
->
vm_list
);
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
kfree
(
c
);
return
;
no_area:
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
atomic_
spin_unlock_irqrestore
(
&
consistent_lock
,
flags
);
printk
(
KERN_ERR
"%s: trying to free invalid coherent area: %p
\n
"
,
__func__
,
cpu_addr
);
dump_stack
();
...
...
arch/arm/plat-omap/clock.c
View file @
a9de8b7b
...
...
@@ -108,15 +108,12 @@ EXPORT_SYMBOL(clk_disable);
unsigned
long
clk_get_rate
(
struct
clk
*
clk
)
{
unsigned
long
flags
;
unsigned
long
ret
=
0
;
if
(
clk
==
NULL
||
IS_ERR
(
clk
))
return
0
;
spin_lock_irqsave
(
&
clockfw_lock
,
flags
);
ret
=
clk
->
rate
;
spin_unlock_irqrestore
(
&
clockfw_lock
,
flags
);
return
ret
;
}
...
...
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