Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
003e6348
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
003e6348
编写于
2月 27, 2012
作者:
A
Arnd Bergmann
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap
into fixes
上级
3e343d7a
655850ed
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
110 addition
and
22 deletion
+110
-22
arch/arm/mach-omap1/board-innovator.c
arch/arm/mach-omap1/board-innovator.c
+2
-2
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/Kconfig
+2
-2
arch/arm/mach-omap2/board-n8x0.c
arch/arm/mach-omap2/board-n8x0.c
+4
-0
arch/arm/mach-omap2/board-omap3evm.c
arch/arm/mach-omap2/board-omap3evm.c
+1
-1
arch/arm/mach-omap2/common.h
arch/arm/mach-omap2/common.h
+1
-0
arch/arm/mach-omap2/cpuidle44xx.c
arch/arm/mach-omap2/cpuidle44xx.c
+2
-3
arch/arm/mach-omap2/gpmc-smsc911x.c
arch/arm/mach-omap2/gpmc-smsc911x.c
+52
-0
arch/arm/mach-omap2/hsmmc.c
arch/arm/mach-omap2/hsmmc.c
+6
-0
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/io.c
+1
-0
arch/arm/mach-omap2/mailbox.c
arch/arm/mach-omap2/mailbox.c
+9
-1
arch/arm/mach-omap2/mux.c
arch/arm/mach-omap2/mux.c
+1
-1
arch/arm/mach-omap2/omap4-common.c
arch/arm/mach-omap2/omap4-common.c
+16
-9
arch/arm/mach-omap2/pm.c
arch/arm/mach-omap2/pm.c
+3
-0
arch/arm/mach-omap2/usb-host.c
arch/arm/mach-omap2/usb-host.c
+3
-3
arch/arm/plat-omap/common.c
arch/arm/plat-omap/common.c
+1
-0
arch/arm/plat-omap/include/plat/omap-secure.h
arch/arm/plat-omap/include/plat/omap-secure.h
+6
-0
未找到文件。
arch/arm/mach-omap1/board-innovator.c
浏览文件 @
003e6348
...
...
@@ -416,13 +416,13 @@ static void __init innovator_init(void)
#ifdef CONFIG_ARCH_OMAP15XX
if
(
cpu_is_omap1510
())
{
omap1_usb_init
(
&
innovator1510_usb_config
);
innovator_config
[
1
].
data
=
&
innovator1510_lcd_config
;
innovator_config
[
0
].
data
=
&
innovator1510_lcd_config
;
}
#endif
#ifdef CONFIG_ARCH_OMAP16XX
if
(
cpu_is_omap1610
())
{
omap1_usb_init
(
&
h2_usb_config
);
innovator_config
[
1
].
data
=
&
innovator1610_lcd_config
;
innovator_config
[
0
].
data
=
&
innovator1610_lcd_config
;
}
#endif
omap_board_config
=
innovator_config
;
...
...
arch/arm/mach-omap2/Kconfig
浏览文件 @
003e6348
...
...
@@ -364,8 +364,8 @@ config OMAP3_SDRC_AC_TIMING
going on could result in system crashes;
config OMAP4_ERRATA_I688
bool "OMAP4 errata: Async Bridge Corruption
(BROKEN)
"
depends on ARCH_OMAP4
&& BROKEN
bool "OMAP4 errata: Async Bridge Corruption"
depends on ARCH_OMAP4
select ARCH_HAS_BARRIERS
help
If a data is stalled inside asynchronous bridge because of back
...
...
arch/arm/mach-omap2/board-n8x0.c
浏览文件 @
003e6348
...
...
@@ -371,7 +371,11 @@ static void n8x0_mmc_callback(void *data, u8 card_mask)
else
*
openp
=
0
;
#ifdef CONFIG_MMC_OMAP
omap_mmc_notify_cover_event
(
mmc_device
,
index
,
*
openp
);
#else
pr_warn
(
"MMC: notify cover event not available
\n
"
);
#endif
}
static
int
n8x0_mmc_late_init
(
struct
device
*
dev
)
...
...
arch/arm/mach-omap2/board-omap3evm.c
浏览文件 @
003e6348
...
...
@@ -381,7 +381,7 @@ static int omap3evm_twl_gpio_setup(struct device *dev,
gpio_request_one
(
gpio
+
7
,
GPIOF_OUT_INIT_LOW
,
"EN_DVI"
);
/* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */
gpio_leds
[
2
].
gpio
=
gpio
+
TWL4030_GPIO_MAX
+
1
;
gpio_leds
[
0
].
gpio
=
gpio
+
TWL4030_GPIO_MAX
+
1
;
platform_device_register
(
&
leds_gpio
);
...
...
arch/arm/mach-omap2/common.h
浏览文件 @
003e6348
...
...
@@ -132,6 +132,7 @@ void omap3_map_io(void);
void
am33xx_map_io
(
void
);
void
omap4_map_io
(
void
);
void
ti81xx_map_io
(
void
);
void
omap_barriers_init
(
void
);
/**
* omap_test_timeout - busy-loop, testing a condition
...
...
arch/arm/mach-omap2/cpuidle44xx.c
浏览文件 @
003e6348
...
...
@@ -65,7 +65,6 @@ static int omap4_enter_idle(struct cpuidle_device *dev,
struct
timespec
ts_preidle
,
ts_postidle
,
ts_idle
;
u32
cpu1_state
;
int
idle_time
;
int
new_state_idx
;
int
cpu_id
=
smp_processor_id
();
/* Used to keep track of the total time in idle */
...
...
@@ -84,8 +83,8 @@ static int omap4_enter_idle(struct cpuidle_device *dev,
*/
cpu1_state
=
pwrdm_read_pwrst
(
cpu1_pd
);
if
(
cpu1_state
!=
PWRDM_POWER_OFF
)
{
new_state_id
x
=
drv
->
safe_state_index
;
cx
=
cpuidle_get_statedata
(
&
dev
->
states_usage
[
new_state_id
x
]);
inde
x
=
drv
->
safe_state_index
;
cx
=
cpuidle_get_statedata
(
&
dev
->
states_usage
[
inde
x
]);
}
if
(
index
>
0
)
...
...
arch/arm/mach-omap2/gpmc-smsc911x.c
浏览文件 @
003e6348
...
...
@@ -19,6 +19,8 @@
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/smsc911x.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h>
#include <plat/board.h>
#include <plat/gpmc.h>
...
...
@@ -42,6 +44,50 @@ static struct smsc911x_platform_config gpmc_smsc911x_config = {
.
flags
=
SMSC911X_USE_16BIT
,
};
static
struct
regulator_consumer_supply
gpmc_smsc911x_supply
[]
=
{
REGULATOR_SUPPLY
(
"vddvario"
,
"smsc911x.0"
),
REGULATOR_SUPPLY
(
"vdd33a"
,
"smsc911x.0"
),
};
/* Generic regulator definition to satisfy smsc911x */
static
struct
regulator_init_data
gpmc_smsc911x_reg_init_data
=
{
.
constraints
=
{
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
|
REGULATOR_MODE_STANDBY
,
.
valid_ops_mask
=
REGULATOR_CHANGE_MODE
|
REGULATOR_CHANGE_STATUS
,
},
.
num_consumer_supplies
=
ARRAY_SIZE
(
gpmc_smsc911x_supply
),
.
consumer_supplies
=
gpmc_smsc911x_supply
,
};
static
struct
fixed_voltage_config
gpmc_smsc911x_fixed_reg_data
=
{
.
supply_name
=
"gpmc_smsc911x"
,
.
microvolts
=
3300000
,
.
gpio
=
-
EINVAL
,
.
startup_delay
=
0
,
.
enable_high
=
0
,
.
enabled_at_boot
=
1
,
.
init_data
=
&
gpmc_smsc911x_reg_init_data
,
};
/*
* Platform device id of 42 is a temporary fix to avoid conflicts
* with other reg-fixed-voltage devices. The real fix should
* involve the driver core providing a way of dynamically
* assigning a unique id on registration for platform devices
* in the same name space.
*/
static
struct
platform_device
gpmc_smsc911x_regulator
=
{
.
name
=
"reg-fixed-voltage"
,
.
id
=
42
,
.
dev
=
{
.
platform_data
=
&
gpmc_smsc911x_fixed_reg_data
,
},
};
/*
* Initialize smsc911x device connected to the GPMC. Note that we
* assume that pin multiplexing is done in the board-*.c file,
...
...
@@ -55,6 +101,12 @@ void __init gpmc_smsc911x_init(struct omap_smsc911x_platform_data *board_data)
gpmc_cfg
=
board_data
;
ret
=
platform_device_register
(
&
gpmc_smsc911x_regulator
);
if
(
ret
<
0
)
{
pr_err
(
"Unable to register smsc911x regulators: %d
\n
"
,
ret
);
return
;
}
if
(
gpmc_cs_request
(
gpmc_cfg
->
cs
,
SZ_16M
,
&
cs_mem_base
)
<
0
)
{
pr_err
(
"Failed to request GPMC mem region
\n
"
);
return
;
...
...
arch/arm/mach-omap2/hsmmc.c
浏览文件 @
003e6348
...
...
@@ -428,6 +428,7 @@ static int omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c,
return
0
;
}
static
int
omap_hsmmc_done
;
#define MAX_OMAP_MMC_HWMOD_NAME_LEN 16
void
omap_init_hsmmc
(
struct
omap2_hsmmc_info
*
hsmmcinfo
,
int
ctrl_nr
)
...
...
@@ -491,6 +492,11 @@ void omap2_hsmmc_init(struct omap2_hsmmc_info *controllers)
{
u32
reg
;
if
(
omap_hsmmc_done
)
return
;
omap_hsmmc_done
=
1
;
if
(
!
cpu_is_omap44xx
())
{
if
(
cpu_is_omap2430
())
{
control_pbias_offset
=
OMAP243X_CONTROL_PBIAS_LITE
;
...
...
arch/arm/mach-omap2/io.c
浏览文件 @
003e6348
...
...
@@ -307,6 +307,7 @@ void __init omapam33xx_map_common_io(void)
void
__init
omap44xx_map_common_io
(
void
)
{
iotable_init
(
omap44xx_io_desc
,
ARRAY_SIZE
(
omap44xx_io_desc
));
omap_barriers_init
();
}
#endif
...
...
arch/arm/mach-omap2/mailbox.c
浏览文件 @
003e6348
...
...
@@ -281,8 +281,16 @@ static struct omap_mbox mbox_iva_info = {
.
ops
=
&
omap2_mbox_ops
,
.
priv
=
&
omap2_mbox_iva_priv
,
};
#endif
struct
omap_mbox
*
omap2_mboxes
[]
=
{
&
mbox_dsp_info
,
&
mbox_iva_info
,
NULL
};
#ifdef CONFIG_ARCH_OMAP2
struct
omap_mbox
*
omap2_mboxes
[]
=
{
&
mbox_dsp_info
,
#ifdef CONFIG_SOC_OMAP2420
&
mbox_iva_info
,
#endif
NULL
};
#endif
#if defined(CONFIG_ARCH_OMAP4)
...
...
arch/arm/mach-omap2/mux.c
浏览文件 @
003e6348
...
...
@@ -218,7 +218,7 @@ static int _omap_mux_get_by_name(struct omap_mux_partition *partition,
return
-
ENODEV
;
}
static
int
__init
static
int
omap_mux_get_by_name
(
const
char
*
muxname
,
struct
omap_mux_partition
**
found_partition
,
struct
omap_mux
**
found_mux
)
...
...
arch/arm/mach-omap2/omap4-common.c
浏览文件 @
003e6348
...
...
@@ -24,6 +24,7 @@
#include <plat/irqs.h>
#include <plat/sram.h>
#include <plat/omap-secure.h>
#include <mach/hardware.h>
#include <mach/omap-wakeupgen.h>
...
...
@@ -43,6 +44,9 @@ static void __iomem *sar_ram_base;
void
__iomem
*
dram_sync
,
*
sram_sync
;
static
phys_addr_t
paddr
;
static
u32
size
;
void
omap_bus_sync
(
void
)
{
if
(
dram_sync
&&
sram_sync
)
{
...
...
@@ -52,18 +56,20 @@ void omap_bus_sync(void)
}
}
static
int
__init
omap_barriers_init
(
void
)
/* Steal one page physical memory for barrier implementation */
int
__init
omap_barrier_reserve_memblock
(
void
)
{
struct
map_desc
dram_io_desc
[
1
];
phys_addr_t
paddr
;
u32
size
;
if
(
!
cpu_is_omap44xx
())
return
-
ENODEV
;
size
=
ALIGN
(
PAGE_SIZE
,
SZ_1M
);
paddr
=
arm_memblock_steal
(
size
,
SZ_1M
);
return
0
;
}
void
__init
omap_barriers_init
(
void
)
{
struct
map_desc
dram_io_desc
[
1
];
dram_io_desc
[
0
].
virtual
=
OMAP4_DRAM_BARRIER_VA
;
dram_io_desc
[
0
].
pfn
=
__phys_to_pfn
(
paddr
);
dram_io_desc
[
0
].
length
=
size
;
...
...
@@ -75,9 +81,10 @@ static int __init omap_barriers_init(void)
pr_info
(
"OMAP4: Map 0x%08llx to 0x%08lx for dram barrier
\n
"
,
(
long
long
)
paddr
,
dram_io_desc
[
0
].
virtual
);
return
0
;
}
core_initcall
(
omap_barriers_init
);
#else
void
__init
omap_barriers_init
(
void
)
{}
#endif
void
__init
gic_init_irq
(
void
)
...
...
arch/arm/mach-omap2/pm.c
浏览文件 @
003e6348
...
...
@@ -174,14 +174,17 @@ static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name,
freq
=
clk
->
rate
;
clk_put
(
clk
);
rcu_read_lock
();
opp
=
opp_find_freq_ceil
(
dev
,
&
freq
);
if
(
IS_ERR
(
opp
))
{
rcu_read_unlock
();
pr_err
(
"%s: unable to find boot up OPP for vdd_%s
\n
"
,
__func__
,
vdd_name
);
goto
exit
;
}
bootup_volt
=
opp_get_voltage
(
opp
);
rcu_read_unlock
();
if
(
!
bootup_volt
)
{
pr_err
(
"%s: unable to find voltage corresponding "
"to the bootup OPP for vdd_%s
\n
"
,
__func__
,
vdd_name
);
...
...
arch/arm/mach-omap2/usb-host.c
浏览文件 @
003e6348
...
...
@@ -486,7 +486,7 @@ static void setup_4430ohci_io_mux(const enum usbhs_omap_port_mode *port_mode)
void
__init
usbhs_init
(
const
struct
usbhs_omap_board_data
*
pdata
)
{
struct
omap_hwmod
*
oh
[
2
];
struct
omap_device
*
od
;
struct
platform_device
*
pdev
;
int
bus_id
=
-
1
;
int
i
;
...
...
@@ -522,11 +522,11 @@ void __init usbhs_init(const struct usbhs_omap_board_data *pdata)
return
;
}
od
=
omap_device_build_ss
(
OMAP_USBHS_DEVICE
,
bus_id
,
oh
,
2
,
pdev
=
omap_device_build_ss
(
OMAP_USBHS_DEVICE
,
bus_id
,
oh
,
2
,
(
void
*
)
&
usbhs_data
,
sizeof
(
usbhs_data
),
omap_uhhtll_latency
,
ARRAY_SIZE
(
omap_uhhtll_latency
),
false
);
if
(
IS_ERR
(
od
))
{
if
(
IS_ERR
(
pdev
))
{
pr_err
(
"Could not build hwmod devices %s,%s
\n
"
,
USBHS_UHH_HWMODNAME
,
USBHS_TLL_HWMODNAME
);
return
;
...
...
arch/arm/plat-omap/common.c
浏览文件 @
003e6348
...
...
@@ -69,6 +69,7 @@ void __init omap_reserve(void)
omap_vram_reserve_sdram_memblock
();
omap_dsp_reserve_sdram_memblock
();
omap_secure_ram_reserve_memblock
();
omap_barrier_reserve_memblock
();
}
void
__init
omap_init_consistent_dma_size
(
void
)
...
...
arch/arm/plat-omap/include/plat/omap-secure.h
浏览文件 @
003e6348
...
...
@@ -10,4 +10,10 @@ static inline void omap_secure_ram_reserve_memblock(void)
{
}
#endif
#ifdef CONFIG_OMAP4_ERRATA_I688
extern
int
omap_barrier_reserve_memblock
(
void
);
#else
static
inline
void
omap_barrier_reserve_memblock
(
void
)
{
}
#endif
#endif
/* __OMAP_SECURE_H__ */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录