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
Kirill Smelkov
linux
Commits
6139dbbb
Commit
6139dbbb
authored
Mar 02, 2007
by
Russell King
Committed by
Russell King
Mar 02, 2007
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'omap-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
parents
9623b373
1f4d1774
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
72 additions
and
55 deletions
+72
-55
arch/arm/mach-omap1/board-nokia770.c
arch/arm/mach-omap1/board-nokia770.c
+3
-1
arch/arm/mach-omap1/clock.c
arch/arm/mach-omap1/clock.c
+13
-7
arch/arm/mach-omap1/irq.c
arch/arm/mach-omap1/irq.c
+1
-1
arch/arm/mach-omap1/pm.c
arch/arm/mach-omap1/pm.c
+9
-3
arch/arm/mach-omap1/serial.c
arch/arm/mach-omap1/serial.c
+9
-9
arch/arm/mach-omap2/board-h4.c
arch/arm/mach-omap2/board-h4.c
+7
-6
arch/arm/mach-omap2/timer-gp.c
arch/arm/mach-omap2/timer-gp.c
+2
-1
arch/arm/plat-omap/dma.c
arch/arm/plat-omap/dma.c
+3
-11
arch/arm/plat-omap/dmtimer.c
arch/arm/plat-omap/dmtimer.c
+4
-2
arch/arm/plat-omap/gpio.c
arch/arm/plat-omap/gpio.c
+5
-4
arch/arm/plat-omap/mcbsp.c
arch/arm/plat-omap/mcbsp.c
+1
-1
arch/arm/plat-omap/mux.c
arch/arm/plat-omap/mux.c
+2
-2
include/asm-arm/arch-omap/entry-macro.S
include/asm-arm/arch-omap/entry-macro.S
+6
-0
include/asm-arm/arch-omap/memory.h
include/asm-arm/arch-omap/memory.h
+1
-1
include/asm-arm/arch-omap/omap-alsa.h
include/asm-arm/arch-omap/omap-alsa.h
+6
-6
No files found.
arch/arm/mach-omap1/board-nokia770.c
View file @
6139dbbb
...
...
@@ -16,6 +16,8 @@
#include <linux/spi/spi.h>
#include <linux/spi/ads7846.h>
#include <linux/workqueue.h>
#include <linux/delay.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
...
...
@@ -103,7 +105,7 @@ static struct ads7846_platform_data nokia770_ads7846_platform_data __initdata =
static
struct
spi_board_info
nokia770_spi_board_info
[]
__initdata
=
{
[
0
]
=
{
.
modalias
=
"lcd_lph8923
"
,
.
modalias
=
"lcd_mipid
"
,
.
bus_num
=
2
,
.
chip_select
=
3
,
.
max_speed_hz
=
12000000
,
...
...
arch/arm/mach-omap1/clock.c
View file @
6139dbbb
...
...
@@ -432,8 +432,7 @@ static int omap1_clk_enable(struct clk *clk)
}
if
(
clk
->
flags
&
CLOCK_NO_IDLE_PARENT
)
if
(
!
cpu_is_omap24xx
())
omap1_clk_deny_idle
(
clk
->
parent
);
omap1_clk_deny_idle
(
clk
->
parent
);
}
ret
=
clk
->
enable
(
clk
);
...
...
@@ -454,8 +453,7 @@ static void omap1_clk_disable(struct clk *clk)
if
(
likely
(
clk
->
parent
))
{
omap1_clk_disable
(
clk
->
parent
);
if
(
clk
->
flags
&
CLOCK_NO_IDLE_PARENT
)
if
(
!
cpu_is_omap24xx
())
omap1_clk_allow_idle
(
clk
->
parent
);
omap1_clk_allow_idle
(
clk
->
parent
);
}
}
}
...
...
@@ -471,7 +469,7 @@ static int omap1_clk_enable_generic(struct clk *clk)
if
(
unlikely
(
clk
->
enable_reg
==
0
))
{
printk
(
KERN_ERR
"clock.c: Enable for %s without enable code
\n
"
,
clk
->
name
);
return
0
;
return
-
EINVAL
;
}
if
(
clk
->
flags
&
ENABLE_REG_32BIT
)
{
...
...
@@ -651,10 +649,18 @@ int __init omap1_clk_init(void)
int
crystal_type
=
0
;
/* Default 12 MHz */
u32
reg
;
#ifdef CONFIG_DEBUG_LL
/* Resets some clocks that may be left on from bootloader,
* but leaves serial clocks on.
*/
omap_writel
(
0x3
<<
29
,
MOD_CONF_CTRL_0
);
#endif
/* USB_REQ_EN will be disabled later if necessary (usb_dc_ck) */
reg
=
omap_readw
(
SOFT_REQ_REG
)
&
(
1
<<
4
);
omap_writew
(
reg
,
SOFT_REQ_REG
);
omap_writew
(
0
,
SOFT_REQ_REG2
);
if
(
!
cpu_is_omap15xx
())
omap_writew
(
0
,
SOFT_REQ_REG2
);
clk_init
(
&
omap1_clk_functions
);
...
...
@@ -685,7 +691,7 @@ int __init omap1_clk_init(void)
info
=
omap_get_config
(
OMAP_TAG_CLOCK
,
struct
omap_clock_config
);
if
(
info
!=
NULL
)
{
if
(
!
cpu_is_omap15
10
())
if
(
!
cpu_is_omap15
xx
())
crystal_type
=
info
->
system_clock_type
;
}
...
...
arch/arm/mach-omap1/irq.c
View file @
6139dbbb
...
...
@@ -238,7 +238,7 @@ void __init omap_init_irq(void)
if
(
cpu_is_omap730
())
omap_unmask_irq
(
INT_730_IH2_IRQ
);
else
if
(
cpu_is_omap15
10
())
else
if
(
cpu_is_omap15
xx
())
omap_unmask_irq
(
INT_1510_IH2_IRQ
);
else
if
(
cpu_is_omap16xx
())
omap_unmask_irq
(
INT_1610_IH2_IRQ
);
...
...
arch/arm/mach-omap1/pm.c
View file @
6139dbbb
...
...
@@ -256,7 +256,8 @@ void omap_pm_suspend(void)
tps65010_set_led
(
LED1
,
OFF
);
}
omap_writew
(
0xffff
,
ULPD_SOFT_DISABLE_REQ_REG
);
if
(
!
cpu_is_omap15xx
())
omap_writew
(
0xffff
,
ULPD_SOFT_DISABLE_REQ_REG
);
/*
* Step 1: turn off interrupts (FIXME: NOTE: already disabled)
...
...
@@ -434,7 +435,8 @@ void omap_pm_suspend(void)
MPUI1610_RESTORE
(
OMAP_IH2_3_MIR
);
}
omap_writew
(
0
,
ULPD_SOFT_DISABLE_REQ_REG
);
if
(
!
cpu_is_omap15xx
())
omap_writew
(
0
,
ULPD_SOFT_DISABLE_REQ_REG
);
/*
* Reenable interrupts
...
...
@@ -704,6 +706,8 @@ static struct pm_ops omap_pm_ops ={
static
int
__init
omap_pm_init
(
void
)
{
int
error
;
printk
(
"Power Management for TI OMAP.
\n
"
);
/*
...
...
@@ -760,7 +764,9 @@ static int __init omap_pm_init(void)
omap_pm_init_proc
();
#endif
subsys_create_file
(
&
power_subsys
,
&
sleep_while_idle_attr
);
error
=
subsys_create_file
(
&
power_subsys
,
&
sleep_while_idle_attr
);
if
(
error
)
printk
(
KERN_ERR
"subsys_create_file failed: %d
\n
"
,
error
);
if
(
cpu_is_omap16xx
())
{
/* configure LOW_PWR pin */
...
...
arch/arm/mach-omap1/serial.c
View file @
6139dbbb
/*
* linux/arch/arm/mach-omap1/serial.c
*
* OMAP1
CPU identification code
* OMAP1
serial support.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
...
...
@@ -59,7 +59,7 @@ static void __init omap_serial_reset(struct plat_serial8250_port *p)
omap_serial_outp
(
p
,
UART_OMAP_SCR
,
0x08
);
/* TX watermark */
omap_serial_outp
(
p
,
UART_OMAP_MDR1
,
0x00
);
/* enable UART */
if
(
!
cpu_is_omap15
10
())
{
if
(
!
cpu_is_omap15
xx
())
{
omap_serial_outp
(
p
,
UART_OMAP_SYSC
,
0x01
);
while
(
!
(
omap_serial_in
(
p
,
UART_OMAP_SYSC
)
&
0x01
));
}
...
...
@@ -121,7 +121,7 @@ void __init omap_serial_init(void)
serial_platform_data
[
1
].
irq
=
INT_730_UART_MODEM_IRDA_2
;
}
if
(
cpu_is_omap15
10
())
{
if
(
cpu_is_omap15
xx
())
{
serial_platform_data
[
0
].
uartclk
=
OMAP1510_BASE_BAUD
*
16
;
serial_platform_data
[
1
].
uartclk
=
OMAP1510_BASE_BAUD
*
16
;
serial_platform_data
[
2
].
uartclk
=
OMAP1510_BASE_BAUD
*
16
;
...
...
@@ -147,10 +147,10 @@ void __init omap_serial_init(void)
printk
(
"Could not get uart1_ck
\n
"
);
else
{
clk_enable
(
uart1_ck
);
if
(
cpu_is_omap15
10
())
if
(
cpu_is_omap15
xx
())
clk_set_rate
(
uart1_ck
,
12000000
);
}
if
(
cpu_is_omap15
10
())
{
if
(
cpu_is_omap15
xx
())
{
omap_cfg_reg
(
UART1_TX
);
omap_cfg_reg
(
UART1_RTS
);
if
(
machine_is_omap_innovator
())
{
...
...
@@ -167,12 +167,12 @@ void __init omap_serial_init(void)
printk
(
"Could not get uart2_ck
\n
"
);
else
{
clk_enable
(
uart2_ck
);
if
(
cpu_is_omap15
10
())
if
(
cpu_is_omap15
xx
())
clk_set_rate
(
uart2_ck
,
12000000
);
else
clk_set_rate
(
uart2_ck
,
48000000
);
}
if
(
cpu_is_omap15
10
())
{
if
(
cpu_is_omap15
xx
())
{
omap_cfg_reg
(
UART2_TX
);
omap_cfg_reg
(
UART2_RTS
);
if
(
machine_is_omap_innovator
())
{
...
...
@@ -189,10 +189,10 @@ void __init omap_serial_init(void)
printk
(
"Could not get uart3_ck
\n
"
);
else
{
clk_enable
(
uart3_ck
);
if
(
cpu_is_omap15
10
())
if
(
cpu_is_omap15
xx
())
clk_set_rate
(
uart3_ck
,
12000000
);
}
if
(
cpu_is_omap15
10
())
{
if
(
cpu_is_omap15
xx
())
{
omap_cfg_reg
(
UART3_TX
);
omap_cfg_reg
(
UART3_RX
);
}
...
...
arch/arm/mach-omap2/board-h4.c
View file @
6139dbbb
...
...
@@ -39,7 +39,6 @@
#include "prcm-regs.h"
#include <asm/io.h>
#include <asm/delay.h>
static
unsigned
int
row_gpios
[
6
]
=
{
88
,
89
,
124
,
11
,
6
,
96
};
static
unsigned
int
col_gpios
[
7
]
=
{
90
,
91
,
100
,
36
,
12
,
97
,
98
};
...
...
@@ -179,9 +178,11 @@ static int h4_select_irda(struct device *dev, int state)
return
err
;
}
static
void
set_trans_mode
(
void
*
data
)
static
void
set_trans_mode
(
struct
work_struct
*
work
)
{
int
*
mode
=
data
;
struct
omap_irda_config
*
irda_config
=
container_of
(
work
,
struct
omap_irda_config
,
gpio_expa
.
work
);
int
mode
=
irda_config
->
mode
;
unsigned
char
expa
;
int
err
=
0
;
...
...
@@ -191,7 +192,7 @@ static void set_trans_mode(void *data)
expa
&=
~
0x01
;
if
(
!
(
*
mode
&
IR_SIRMODE
))
{
/* MIR/FIR */
if
(
!
(
mode
&
IR_SIRMODE
))
{
/* MIR/FIR */
expa
|=
0x01
;
}
...
...
@@ -204,9 +205,9 @@ static int h4_transceiver_mode(struct device *dev, int mode)
{
struct
omap_irda_config
*
irda_config
=
dev
->
platform_data
;
irda_config
->
mode
=
mode
;
cancel_delayed_work
(
&
irda_config
->
gpio_expa
);
PREPARE_WORK
(
&
irda_config
->
gpio_expa
,
set_trans_mode
,
&
mode
);
#error this is not permitted - mode is an argument variable
PREPARE_DELAYED_WORK
(
&
irda_config
->
gpio_expa
,
set_trans_mode
);
schedule_delayed_work
(
&
irda_config
->
gpio_expa
,
0
);
return
0
;
...
...
arch/arm/mach-omap2/timer-gp.c
View file @
6139dbbb
...
...
@@ -24,6 +24,7 @@
#include <linux/err.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/irq.h>
#include <asm/mach/time.h>
#include <asm/arch/dmtimer.h>
...
...
@@ -64,7 +65,7 @@ static void __init omap2_gp_timer_init(void)
BUG_ON
(
gptimer
==
NULL
);
omap_dm_timer_set_source
(
gptimer
,
OMAP_TIMER_SRC_SYS_CLK
);
tick_period
=
clk_get_rate
(
omap_dm_timer_get_fclk
(
gptimer
))
/
100
;
tick_period
=
clk_get_rate
(
omap_dm_timer_get_fclk
(
gptimer
))
/
HZ
;
tick_period
-=
1
;
setup_irq
(
omap_dm_timer_get_irq
(
gptimer
),
&
omap2_gp_timer_irq
);
...
...
arch/arm/plat-omap/dma.c
View file @
6139dbbb
...
...
@@ -557,7 +557,7 @@ int omap_request_dma(int dev_id, const char *dev_name,
omap_enable_channel_irq
(
free_ch
);
/* Clear the CSR register and IRQ status register */
OMAP_DMA_CSR_REG
(
free_ch
)
=
OMAP2_DMA_CSR_CLEAR_MASK
;
omap_writel
(
~
0x0
,
OMAP_DMA4_IRQSTATUS_L0
);
omap_writel
(
1
<<
free_ch
,
OMAP_DMA4_IRQSTATUS_L0
);
}
*
dma_ch_out
=
free_ch
;
...
...
@@ -597,10 +597,7 @@ void omap_free_dma(int lch)
/* Clear the CSR register and IRQ status register */
OMAP_DMA_CSR_REG
(
lch
)
=
OMAP2_DMA_CSR_CLEAR_MASK
;
val
=
omap_readl
(
OMAP_DMA4_IRQSTATUS_L0
);
val
|=
1
<<
lch
;
omap_writel
(
val
,
OMAP_DMA4_IRQSTATUS_L0
);
omap_writel
(
1
<<
lch
,
OMAP_DMA4_IRQSTATUS_L0
);
/* Disable all DMA interrupts for the channel. */
OMAP_DMA_CICR_REG
(
lch
)
=
0
;
...
...
@@ -927,7 +924,6 @@ static irqreturn_t omap1_dma_irq_handler(int irq, void *dev_id)
static
int
omap2_dma_handle_ch
(
int
ch
)
{
u32
status
=
OMAP_DMA_CSR_REG
(
ch
);
u32
val
;
if
(
!
status
)
return
0
;
...
...
@@ -948,11 +944,7 @@ static int omap2_dma_handle_ch(int ch)
dma_chan
[
ch
].
dev_id
);
OMAP_DMA_CSR_REG
(
ch
)
=
OMAP2_DMA_CSR_CLEAR_MASK
;
val
=
omap_readl
(
OMAP_DMA4_IRQSTATUS_L0
);
/* ch in this function is from 0-31 while in register it is 1-32 */
val
=
1
<<
(
ch
);
omap_writel
(
val
,
OMAP_DMA4_IRQSTATUS_L0
);
omap_writel
(
1
<<
ch
,
OMAP_DMA4_IRQSTATUS_L0
);
if
(
likely
(
dma_chan
[
ch
].
callback
!=
NULL
))
dma_chan
[
ch
].
callback
(
ch
,
status
,
dma_chan
[
ch
].
data
);
...
...
arch/arm/plat-omap/dmtimer.c
View file @
6139dbbb
...
...
@@ -90,8 +90,8 @@ static struct omap_dm_timer dm_timers[] = {
{
.
phys_base
=
0xfffb2c00
,
.
irq
=
INT_1610_GPTIMER4
},
{
.
phys_base
=
0xfffb3400
,
.
irq
=
INT_1610_GPTIMER5
},
{
.
phys_base
=
0xfffb3c00
,
.
irq
=
INT_1610_GPTIMER6
},
{
.
phys_base
=
0xfffb
4
400
,
.
irq
=
INT_1610_GPTIMER7
},
{
.
phys_base
=
0xfffb
4c
00
,
.
irq
=
INT_1610_GPTIMER8
},
{
.
phys_base
=
0xfffb
7
400
,
.
irq
=
INT_1610_GPTIMER7
},
{
.
phys_base
=
0xfffb
d4
00
,
.
irq
=
INT_1610_GPTIMER8
},
};
#elif defined(CONFIG_ARCH_OMAP2)
...
...
@@ -314,6 +314,8 @@ struct clk *omap_dm_timer_get_fclk(struct omap_dm_timer *timer)
__u32
omap_dm_timer_modify_idlect_mask
(
__u32
inputmask
)
{
BUG
();
return
0
;
}
#endif
...
...
arch/arm/plat-omap/gpio.c
View file @
6139dbbb
...
...
@@ -974,10 +974,11 @@ static struct irq_chip gpio_irq_chip = {
};
static
struct
irq_chip
mpuio_irq_chip
=
{
.
name
=
"MPUIO"
,
.
ack
=
mpuio_ack_irq
,
.
mask
=
mpuio_mask_irq
,
.
unmask
=
mpuio_unmask_irq
.
name
=
"MPUIO"
,
.
ack
=
mpuio_ack_irq
,
.
mask
=
mpuio_mask_irq
,
.
unmask
=
mpuio_unmask_irq
,
.
set_type
=
gpio_irq_type
,
};
static
int
initialized
;
...
...
arch/arm/plat-omap/mcbsp.c
View file @
6139dbbb
...
...
@@ -20,8 +20,8 @@
#include <linux/interrupt.h>
#include <linux/err.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <asm/delay.h>
#include <asm/io.h>
#include <asm/irq.h>
...
...
arch/arm/plat-omap/mux.c
View file @
6139dbbb
...
...
@@ -116,7 +116,7 @@ int __init_or_module omap_cfg_reg(const unsigned long index)
}
/* Check for pull up or pull down selection on 1610 */
if
(
!
cpu_is_omap15
10
())
{
if
(
!
cpu_is_omap15
xx
())
{
if
(
cfg
->
pu_pd_reg
&&
cfg
->
pull_val
)
{
spin_lock_irqsave
(
&
mux_spin_lock
,
flags
);
pu_pd_orig
=
omap_readl
(
cfg
->
pu_pd_reg
);
...
...
@@ -172,7 +172,7 @@ int __init_or_module omap_cfg_reg(const unsigned long index)
printk
(
" %s (0x%08x) = 0x%08x -> 0x%08x
\n
"
,
cfg
->
mux_reg_name
,
cfg
->
mux_reg
,
reg_orig
,
reg
);
if
(
!
cpu_is_omap15
10
())
{
if
(
!
cpu_is_omap15
xx
())
{
if
(
cfg
->
pu_pd_reg
&&
cfg
->
pull_val
)
{
printk
(
" %s (0x%08x) = 0x%08x -> 0x%08x
\n
"
,
cfg
->
pu_pd_name
,
cfg
->
pu_pd_reg
,
...
...
include/asm-arm/arch-omap/entry-macro.S
View file @
6139dbbb
...
...
@@ -61,6 +61,12 @@
.
macro
disable_fiq
.
endm
.
macro
get_irqnr_preamble
,
base
,
tmp
.
endm
.
macro
arch_ret_to_user
,
tmp1
,
tmp2
.
endm
.
macro
get_irqnr_and_base
,
irqnr
,
irqstat
,
base
,
tmp
ldr
\
base
,
=
VA_IC_BASE
ldr
\
irqnr
,
[
\
base
,
#
0x98
]
/*
IRQ
pending
reg
1
*/
...
...
include/asm-arm/arch-omap/memory.h
View file @
6139dbbb
...
...
@@ -70,7 +70,7 @@
#define virt_to_lbus(x) ((x) - PAGE_OFFSET + OMAP1510_LB_OFFSET)
#define lbus_to_virt(x) ((x) - OMAP1510_LB_OFFSET + PAGE_OFFSET)
#define is_lbus_device(dev) (cpu_is_omap15
10
() && dev && (strncmp(dev->bus_id, "ohci", 4) == 0))
#define is_lbus_device(dev) (cpu_is_omap15
xx
() && dev && (strncmp(dev->bus_id, "ohci", 4) == 0))
#define __arch_page_to_dma(dev, page) ({is_lbus_device(dev) ? \
(dma_addr_t)virt_to_lbus(page_address(page)) : \
...
...
include/asm-arm/arch-omap/omap-alsa.h
View file @
6139dbbb
...
...
@@ -65,7 +65,7 @@ struct audio_stream {
int
period
;
/* current transfer period */
int
periods
;
/* current count of periods registerd in the DMA engine */
spinlock_t
dma_lock
;
/* for locking in DMA operations */
s
nd_pcm_substream_t
*
stream
;
/* the pcm stream */
s
truct
snd_pcm_substream
*
stream
;
/* the pcm stream */
unsigned
linked
:
1
;
/* dma channels linked */
int
offset
;
/* store start position of the last period in the alsa buffer */
int
(
*
hw_start
)(
void
);
/* interface to start HW interface, e.g. McBSP */
...
...
@@ -76,8 +76,8 @@ struct audio_stream {
* Alsa card structure for aic23
*/
struct
snd_card_omap_codec
{
s
nd_card_t
*
card
;
s
nd_pcm_t
*
pcm
;
s
truct
snd_card
*
card
;
s
truct
snd_pcm
*
pcm
;
long
samplerate
;
struct
audio_stream
s
[
2
];
/* playback & capture */
};
...
...
@@ -89,9 +89,9 @@ struct snd_card_omap_codec {
struct
omap_alsa_codec_config
{
char
*
name
;
struct
omap_mcbsp_reg_cfg
*
mcbsp_regs_alsa
;
s
nd_pcm_hw_constraint_list_
t
*
hw_constraints_rates
;
s
nd_pcm_hardware_t
*
snd_omap_alsa_playback
;
s
nd_pcm_hardware_t
*
snd_omap_alsa_capture
;
s
truct
snd_pcm_hw_constraint_lis
t
*
hw_constraints_rates
;
s
truct
snd_pcm_hardware
*
snd_omap_alsa_playback
;
s
truct
snd_pcm_hardware
*
snd_omap_alsa_capture
;
void
(
*
codec_configure_dev
)(
void
);
void
(
*
codec_set_samplerate
)(
long
);
void
(
*
codec_clock_setup
)(
void
);
...
...
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