Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
7bfb40b0
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
163
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
7bfb40b0
编写于
13年前
作者:
B
Benjamin Herrenschmidt
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/master' into next
(Pickup Stephen's fix
d4d7b2a1
)
上级
9bb7361d
9e79e3e9
master
alk-4.19.24
alk-4.19.30
alk-4.19.34
alk-4.19.36
alk-4.19.43
alk-4.19.48
alk-4.19.57
ck-4.19.67
ck-4.19.81
ck-4.19.91
github/fork/deepanshu1422/fix-typo-in-comment
github/fork/haosdent/fix-typo
linux-next
v4.19.91
v4.19.90
v4.19.89
v4.19.88
v4.19.87
v4.19.86
v4.19.85
v4.19.84
v4.19.83
v4.19.82
v4.19.81
v4.19.80
v4.19.79
v4.19.78
v4.19.77
v4.19.76
v4.19.75
v4.19.74
v4.19.73
v4.19.72
v4.19.71
v4.19.70
v4.19.69
v4.19.68
v4.19.67
v4.19.66
v4.19.65
v4.19.64
v4.19.63
v4.19.62
v4.19.61
v4.19.60
v4.19.59
v4.19.58
v4.19.57
v4.19.56
v4.19.55
v4.19.54
v4.19.53
v4.19.52
v4.19.51
v4.19.50
v4.19.49
v4.19.48
v4.19.47
v4.19.46
v4.19.45
v4.19.44
v4.19.43
v4.19.42
v4.19.41
v4.19.40
v4.19.39
v4.19.38
v4.19.37
v4.19.36
v4.19.35
v4.19.34
v4.19.33
v4.19.32
v4.19.31
v4.19.30
v4.19.29
v4.19.28
v4.19.27
v4.19.26
v4.19.25
v4.19.24
v4.19.23
v4.19.22
v4.19.21
v4.19.20
v4.19.19
v4.19.18
v4.19.17
v4.19.16
v4.19.15
v4.19.14
v4.19.13
v4.19.12
v4.19.11
v4.19.10
v4.19.9
v4.19.8
v4.19.7
v4.19.6
v4.19.5
v4.19.4
v4.19.3
v4.19.2
v4.19.1
v4.19
v4.19-rc8
v4.19-rc7
v4.19-rc6
v4.19-rc5
v4.19-rc4
v4.19-rc3
v4.19-rc2
v4.19-rc1
ck-release-21
ck-release-20
ck-release-19.2
ck-release-19.1
ck-release-19
ck-release-18
ck-release-17.2
ck-release-17.1
ck-release-17
ck-release-16
ck-release-15.1
ck-release-15
ck-release-14
ck-release-13.2
ck-release-13
ck-release-12
ck-release-11
ck-release-10
ck-release-9
ck-release-7
alk-release-15
alk-release-14
alk-release-13.2
alk-release-13
alk-release-12
alk-release-11
alk-release-10
alk-release-9
alk-release-7
无相关合并请求
变更
105
展开全部
隐藏空白更改
内联
并排
Showing
105 changed file
with
721 addition
and
302 deletion
+721
-302
MAINTAINERS
MAINTAINERS
+4
-4
arch/arm/Kconfig
arch/arm/Kconfig
+12
-0
arch/arm/boot/compressed/mmcif-sh7372.c
arch/arm/boot/compressed/mmcif-sh7372.c
+1
-1
arch/arm/boot/compressed/sdhi-sh7372.c
arch/arm/boot/compressed/sdhi-sh7372.c
+1
-1
arch/arm/include/asm/hardware/cache-l2x0.h
arch/arm/include/asm/hardware/cache-l2x0.h
+1
-1
arch/arm/include/asm/pmu.h
arch/arm/include/asm/pmu.h
+5
-5
arch/arm/kernel/pmu.c
arch/arm/kernel/pmu.c
+13
-13
arch/arm/kernel/relocate_kernel.S
arch/arm/kernel/relocate_kernel.S
+2
-1
arch/arm/kernel/setup.c
arch/arm/kernel/setup.c
+8
-7
arch/arm/kernel/smp_twd.c
arch/arm/kernel/smp_twd.c
+2
-2
arch/arm/mach-at91/at91sam9261.c
arch/arm/mach-at91/at91sam9261.c
+1
-1
arch/arm/mach-ep93xx/include/mach/ts72xx.h
arch/arm/mach-ep93xx/include/mach/ts72xx.h
+22
-4
arch/arm/mach-exynos4/clock.c
arch/arm/mach-exynos4/clock.c
+1
-1
arch/arm/mach-exynos4/cpu.c
arch/arm/mach-exynos4/cpu.c
+10
-1
arch/arm/mach-exynos4/include/mach/irqs.h
arch/arm/mach-exynos4/include/mach/irqs.h
+2
-3
arch/arm/mach-exynos4/include/mach/regs-pmu.h
arch/arm/mach-exynos4/include/mach/regs-pmu.h
+2
-0
arch/arm/mach-exynos4/irq-eint.c
arch/arm/mach-exynos4/irq-eint.c
+7
-0
arch/arm/mach-exynos4/mach-universal_c210.c
arch/arm/mach-exynos4/mach-universal_c210.c
+2
-2
arch/arm/mach-exynos4/setup-usb-phy.c
arch/arm/mach-exynos4/setup-usb-phy.c
+1
-1
arch/arm/mach-footbridge/Kconfig
arch/arm/mach-footbridge/Kconfig
+1
-0
arch/arm/mach-footbridge/dc21285.c
arch/arm/mach-footbridge/dc21285.c
+1
-0
arch/arm/mach-imx/mach-cpuimx27.c
arch/arm/mach-imx/mach-cpuimx27.c
+1
-1
arch/arm/mach-imx/mach-cpuimx35.c
arch/arm/mach-imx/mach-cpuimx35.c
+1
-1
arch/arm/mach-imx/mach-eukrea_cpuimx25.c
arch/arm/mach-imx/mach-eukrea_cpuimx25.c
+1
-1
arch/arm/mach-orion5x/dns323-setup.c
arch/arm/mach-orion5x/dns323-setup.c
+1
-1
arch/arm/mach-orion5x/pci.c
arch/arm/mach-orion5x/pci.c
+1
-0
arch/arm/mach-realview/include/mach/system.h
arch/arm/mach-realview/include/mach/system.h
+1
-0
arch/arm/mach-s3c64xx/pm.c
arch/arm/mach-s3c64xx/pm.c
+1
-0
arch/arm/mach-s5p64x0/irq-eint.c
arch/arm/mach-s5p64x0/irq-eint.c
+1
-1
arch/arm/mach-s5pv210/pm.c
arch/arm/mach-s5pv210/pm.c
+1
-1
arch/arm/mach-shmobile/board-ag5evm.c
arch/arm/mach-shmobile/board-ag5evm.c
+2
-1
arch/arm/mach-shmobile/board-mackerel.c
arch/arm/mach-shmobile/board-mackerel.c
+4
-0
arch/arm/mach-shmobile/clock-sh7372.c
arch/arm/mach-shmobile/clock-sh7372.c
+22
-7
arch/arm/mach-shmobile/clock-sh73a0.c
arch/arm/mach-shmobile/clock-sh73a0.c
+1
-1
arch/arm/mach-shmobile/include/mach/sh7372.h
arch/arm/mach-shmobile/include/mach/sh7372.h
+4
-0
arch/arm/mach-shmobile/intc-sh7372.c
arch/arm/mach-shmobile/intc-sh7372.c
+3
-4
arch/arm/mach-shmobile/setup-sh7372.c
arch/arm/mach-shmobile/setup-sh7372.c
+161
-15
arch/arm/mach-vexpress/v2m.c
arch/arm/mach-vexpress/v2m.c
+7
-0
arch/arm/mm/proc-arm920.S
arch/arm/mm/proc-arm920.S
+1
-1
arch/arm/mm/proc-arm926.S
arch/arm/mm/proc-arm926.S
+1
-1
arch/arm/mm/proc-sa1100.S
arch/arm/mm/proc-sa1100.S
+5
-5
arch/arm/mm/proc-v6.S
arch/arm/mm/proc-v6.S
+16
-0
arch/arm/mm/proc-v7.S
arch/arm/mm/proc-v7.S
+5
-1
arch/arm/mm/proc-xsc3.S
arch/arm/mm/proc-xsc3.S
+3
-3
arch/arm/plat-s5p/clock.c
arch/arm/plat-s5p/clock.c
+1
-1
arch/arm/plat-s5p/irq-gpioint.c
arch/arm/plat-s5p/irq-gpioint.c
+6
-0
arch/arm/plat-samsung/include/plat/backlight.h
arch/arm/plat-samsung/include/plat/backlight.h
+1
-1
arch/arm/plat-samsung/irq-vic-timer.c
arch/arm/plat-samsung/irq-vic-timer.c
+5
-0
arch/arm/tools/mach-types
arch/arm/tools/mach-types
+3
-3
arch/parisc/kernel/syscall_table.S
arch/parisc/kernel/syscall_table.S
+1
-1
arch/powerpc/include/asm/systbl.h
arch/powerpc/include/asm/systbl.h
+1
-1
arch/sh/include/asm/ptrace.h
arch/sh/include/asm/ptrace.h
+1
-1
arch/sh/kernel/cpu/sh4a/setup-sh7757.c
arch/sh/kernel/cpu/sh4a/setup-sh7757.c
+1
-0
arch/sh/kernel/idle.c
arch/sh/kernel/idle.c
+1
-1
arch/sh/kernel/traps_32.c
arch/sh/kernel/traps_32.c
+37
-0
arch/sparc/kernel/irq.h
arch/sparc/kernel/irq.h
+1
-1
arch/sparc/kernel/setup_64.c
arch/sparc/kernel/setup_64.c
+8
-2
arch/sparc/kernel/systbls_64.S
arch/sparc/kernel/systbls_64.S
+1
-1
drivers/bcma/main.c
drivers/bcma/main.c
+12
-0
drivers/bluetooth/ath3k.c
drivers/bluetooth/ath3k.c
+1
-0
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+10
-3
drivers/clocksource/sh_cmt.c
drivers/clocksource/sh_cmt.c
+32
-2
drivers/gpu/drm/drm_crtc.c
drivers/gpu/drm/drm_crtc.c
+2
-0
drivers/gpu/drm/radeon/evergreen.c
drivers/gpu/drm/radeon/evergreen.c
+1
-0
drivers/gpu/drm/radeon/ni.c
drivers/gpu/drm/radeon/ni.c
+1
-0
drivers/gpu/drm/radeon/radeon_combios.c
drivers/gpu/drm/radeon/radeon_combios.c
+8
-0
drivers/net/can/ti_hecc.c
drivers/net/can/ti_hecc.c
+2
-1
drivers/net/cassini.c
drivers/net/cassini.c
+1
-2
drivers/net/ibmveth.c
drivers/net/ibmveth.c
+9
-3
drivers/net/phy/national.c
drivers/net/phy/national.c
+11
-6
drivers/net/sh_eth.c
drivers/net/sh_eth.c
+1
-0
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+1
-1
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/main.c
+4
-0
drivers/net/wireless/ath/carl9170/main.c
drivers/net/wireless/ath/carl9170/main.c
+3
-1
drivers/net/wireless/rt2x00/rt2x00usb.c
drivers/net/wireless/rt2x00/rt2x00usb.c
+1
-13
drivers/net/wireless/wl12xx/main.c
drivers/net/wireless/wl12xx/main.c
+1
-0
drivers/net/wireless/wl12xx/sdio.c
drivers/net/wireless/wl12xx/sdio.c
+1
-1
drivers/net/wireless/wl12xx/testmode.c
drivers/net/wireless/wl12xx/testmode.c
+0
-45
drivers/sh/intc/chip.c
drivers/sh/intc/chip.c
+3
-0
drivers/tty/serial/sh-sci.c
drivers/tty/serial/sh-sci.c
+60
-11
include/net/cfg80211.h
include/net/cfg80211.h
+3
-0
lib/Makefile
lib/Makefile
+2
-2
net/bluetooth/af_bluetooth.c
net/bluetooth/af_bluetooth.c
+3
-3
net/bluetooth/bnep/bnep.h
net/bluetooth/bnep/bnep.h
+1
-0
net/bluetooth/bnep/core.c
net/bluetooth/bnep/core.c
+8
-5
net/bluetooth/cmtp/capi.c
net/bluetooth/cmtp/capi.c
+2
-1
net/bluetooth/cmtp/cmtp.h
net/bluetooth/cmtp/cmtp.h
+1
-0
net/bluetooth/cmtp/core.c
net/bluetooth/cmtp/core.c
+12
-8
net/bluetooth/hci_core.c
net/bluetooth/hci_core.c
+5
-3
net/bluetooth/hidp/core.c
net/bluetooth/hidp/core.c
+9
-10
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_core.c
+3
-3
net/bluetooth/l2cap_sock.c
net/bluetooth/l2cap_sock.c
+15
-15
net/bluetooth/rfcomm/core.c
net/bluetooth/rfcomm/core.c
+7
-10
net/bluetooth/rfcomm/sock.c
net/bluetooth/rfcomm/sock.c
+14
-14
net/bluetooth/sco.c
net/bluetooth/sco.c
+14
-14
net/bridge/br_multicast.c
net/bridge/br_multicast.c
+14
-7
net/core/neighbour.c
net/core/neighbour.c
+6
-2
net/core/netpoll.c
net/core/netpoll.c
+3
-1
net/ipv4/igmp.c
net/ipv4/igmp.c
+1
-1
net/ipv6/mcast.c
net/ipv6/mcast.c
+1
-1
net/mac80211/main.c
net/mac80211/main.c
+1
-1
net/socket.c
net/socket.c
+6
-4
net/wireless/core.c
net/wireless/core.c
+7
-0
net/wireless/sysfs.c
net/wireless/sysfs.c
+4
-2
tools/perf/arch/arm/util/dwarf-regs.c
tools/perf/arch/arm/util/dwarf-regs.c
+3
-0
未找到文件。
MAINTAINERS
浏览文件 @
7bfb40b0
...
...
@@ -2649,11 +2649,11 @@ F: drivers/net/wan/dlci.c
F: drivers/net/wan/sdla.c
FRAMEBUFFER LAYER
M:
Paul Mundt <lethal@linux-sh.org
>
M:
Florian Tobias Schandinat <FlorianSchandinat@gmx.de
>
L: linux-fbdev@vger.kernel.org
W: http://linux-fbdev.sourceforge.net/
Q: http://patchwork.kernel.org/project/linux-fbdev/list/
T: git git://git
.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.gi
t
T: git git://git
hub.com/schandinat/linux-2.6.git fbdev-nex
t
S: Maintained
F: Documentation/fb/
F: Documentation/devicetree/bindings/fb/
...
...
@@ -4450,8 +4450,8 @@ M: "David S. Miller" <davem@davemloft.net>
L: netdev@vger.kernel.org
W: http://www.linuxfoundation.org/en/Net
W: http://patchwork.ozlabs.org/project/netdev/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
-2.6
.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
-2.6
.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
S: Maintained
F: net/
F: include/net/
...
...
This diff is collapsed.
Click to expand it.
arch/arm/Kconfig
浏览文件 @
7bfb40b0
...
...
@@ -1271,6 +1271,18 @@ config ARM_ERRATA_754327
This workaround defines cpu_relax() as smp_mb(), preventing correctly
written polling loops from denying visibility of updates to memory.
config ARM_ERRATA_364296
bool "ARM errata: Possible cache data corruption with hit-under-miss enabled"
depends on CPU_V6 && !SMP
help
This options enables the workaround for the 364296 ARM1136
r0p2 erratum (possible cache data corruption with
hit-under-miss enabled). It sets the undocumented bit 31 in
the auxiliary control register and the FI bit in the control
register, thus disabling hit-under-miss without putting the
processor into full low interrupt latency mode. ARM11MPCore
is not affected.
endmenu
source "arch/arm/common/Kconfig"
...
...
This diff is collapsed.
Click to expand it.
arch/arm/boot/compressed/mmcif-sh7372.c
浏览文件 @
7bfb40b0
...
...
@@ -82,7 +82,7 @@ asmlinkage void mmc_loader(unsigned char *buf, unsigned long len)
/* Disable clock to MMC hardware block */
__raw_writel
(
__raw_readl
(
SMSTPCR3
)
&
(
1
<<
12
),
SMSTPCR3
);
__raw_writel
(
__raw_readl
(
SMSTPCR3
)
|
(
1
<<
12
),
SMSTPCR3
);
mmc_update_progress
(
MMC_PROGRESS_DONE
);
}
This diff is collapsed.
Click to expand it.
arch/arm/boot/compressed/sdhi-sh7372.c
浏览文件 @
7bfb40b0
...
...
@@ -85,7 +85,7 @@ asmlinkage void mmc_loader(unsigned short *buf, unsigned long len)
goto
err
;
/* Disable clock to SDHI1 hardware block */
__raw_writel
(
__raw_readl
(
SMSTPCR3
)
&
(
1
<<
13
),
SMSTPCR3
);
__raw_writel
(
__raw_readl
(
SMSTPCR3
)
|
(
1
<<
13
),
SMSTPCR3
);
mmc_update_progress
(
MMC_PROGRESS_DONE
);
...
...
This diff is collapsed.
Click to expand it.
arch/arm/include/asm/hardware/cache-l2x0.h
浏览文件 @
7bfb40b0
...
...
@@ -64,7 +64,7 @@
#define L2X0_AUX_CTRL_MASK 0xc0000fff
#define L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT 16
#define L2X0_AUX_CTRL_WAY_SIZE_SHIFT 17
#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x
3
<< 17)
#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x
7
<< 17)
#define L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT 22
#define L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT 26
#define L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT 27
...
...
This diff is collapsed.
Click to expand it.
arch/arm/include/asm/pmu.h
浏览文件 @
7bfb40b0
...
...
@@ -41,7 +41,7 @@ struct arm_pmu_platdata {
* encoded error on failure.
*/
extern
struct
platform_device
*
reserve_pmu
(
enum
arm_pmu_type
devic
e
);
reserve_pmu
(
enum
arm_pmu_type
typ
e
);
/**
* release_pmu() - Relinquish control of the performance counters
...
...
@@ -62,26 +62,26 @@ release_pmu(enum arm_pmu_type type);
* the actual hardware initialisation.
*/
extern
int
init_pmu
(
enum
arm_pmu_type
devic
e
);
init_pmu
(
enum
arm_pmu_type
typ
e
);
#else
/* CONFIG_CPU_HAS_PMU */
#include <linux/err.h>
static
inline
struct
platform_device
*
reserve_pmu
(
enum
arm_pmu_type
devic
e
)
reserve_pmu
(
enum
arm_pmu_type
typ
e
)
{
return
ERR_PTR
(
-
ENODEV
);
}
static
inline
int
release_pmu
(
struct
platform_device
*
pdev
)
release_pmu
(
enum
arm_pmu_type
type
)
{
return
-
ENODEV
;
}
static
inline
int
init_pmu
(
enum
arm_pmu_type
devic
e
)
init_pmu
(
enum
arm_pmu_type
typ
e
)
{
return
-
ENODEV
;
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/kernel/pmu.c
浏览文件 @
7bfb40b0
...
...
@@ -31,7 +31,7 @@ static int __devinit pmu_register(struct platform_device *pdev,
{
if
(
type
<
0
||
type
>=
ARM_NUM_PMU_DEVICES
)
{
pr_warning
(
"received registration request for unknown "
"
devic
e %d
\n
"
,
type
);
"
PMU device typ
e %d
\n
"
,
type
);
return
-
EINVAL
;
}
...
...
@@ -112,17 +112,17 @@ static int __init register_pmu_driver(void)
device_initcall
(
register_pmu_driver
);
struct
platform_device
*
reserve_pmu
(
enum
arm_pmu_type
devic
e
)
reserve_pmu
(
enum
arm_pmu_type
typ
e
)
{
struct
platform_device
*
pdev
;
if
(
test_and_set_bit_lock
(
devic
e
,
&
pmu_lock
))
{
if
(
test_and_set_bit_lock
(
typ
e
,
&
pmu_lock
))
{
pdev
=
ERR_PTR
(
-
EBUSY
);
}
else
if
(
pmu_devices
[
devic
e
]
==
NULL
)
{
clear_bit_unlock
(
devic
e
,
&
pmu_lock
);
}
else
if
(
pmu_devices
[
typ
e
]
==
NULL
)
{
clear_bit_unlock
(
typ
e
,
&
pmu_lock
);
pdev
=
ERR_PTR
(
-
ENODEV
);
}
else
{
pdev
=
pmu_devices
[
devic
e
];
pdev
=
pmu_devices
[
typ
e
];
}
return
pdev
;
...
...
@@ -130,11 +130,11 @@ reserve_pmu(enum arm_pmu_type device)
EXPORT_SYMBOL_GPL
(
reserve_pmu
);
int
release_pmu
(
enum
arm_pmu_type
devic
e
)
release_pmu
(
enum
arm_pmu_type
typ
e
)
{
if
(
WARN_ON
(
!
pmu_devices
[
devic
e
]))
if
(
WARN_ON
(
!
pmu_devices
[
typ
e
]))
return
-
EINVAL
;
clear_bit_unlock
(
devic
e
,
&
pmu_lock
);
clear_bit_unlock
(
typ
e
,
&
pmu_lock
);
return
0
;
}
EXPORT_SYMBOL_GPL
(
release_pmu
);
...
...
@@ -182,17 +182,17 @@ init_cpu_pmu(void)
}
int
init_pmu
(
enum
arm_pmu_type
devic
e
)
init_pmu
(
enum
arm_pmu_type
typ
e
)
{
int
err
=
0
;
switch
(
devic
e
)
{
switch
(
typ
e
)
{
case
ARM_PMU_DEVICE_CPU
:
err
=
init_cpu_pmu
();
break
;
default:
pr_warning
(
"attempt to initialise
unknown device %d
\n
"
,
devic
e
);
pr_warning
(
"attempt to initialise
PMU of unknown "
"type %d
\n
"
,
typ
e
);
err
=
-
EINVAL
;
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/kernel/relocate_kernel.S
浏览文件 @
7bfb40b0
...
...
@@ -57,7 +57,8 @@ relocate_new_kernel:
mov
r0
,#
0
ldr
r1
,
kexec_mach_type
ldr
r2
,
kexec_boot_atags
mov
pc
,
lr
ARM
(
mov
pc
,
lr
)
THUMB
(
bx
lr
)
.
align
...
...
This diff is collapsed.
Click to expand it.
arch/arm/kernel/setup.c
浏览文件 @
7bfb40b0
...
...
@@ -280,18 +280,19 @@ static void __init cacheid_init(void)
if
(
arch
>=
CPU_ARCH_ARMv6
)
{
if
((
cachetype
&
(
7
<<
29
))
==
4
<<
29
)
{
/* ARMv7 register format */
arch
=
CPU_ARCH_ARMv7
;
cacheid
=
CACHEID_VIPT_NONALIASING
;
if
((
cachetype
&
(
3
<<
14
))
==
1
<<
14
)
cacheid
|=
CACHEID_ASID_TAGGED
;
else
if
(
cpu_has_aliasing_icache
(
CPU_ARCH_ARMv7
))
cacheid
|=
CACHEID_VIPT_I_ALIASING
;
}
else
if
(
cachetype
&
(
1
<<
23
))
{
cacheid
=
CACHEID_VIPT_ALIASING
;
}
else
{
cacheid
=
CACHEID_VIPT_NONALIASING
;
if
(
cpu_has_aliasing_icache
(
CPU_ARCH_ARMv6
))
cacheid
|=
CACHEID_VIPT_I_ALIASING
;
arch
=
CPU_ARCH_ARMv6
;
if
(
cachetype
&
(
1
<<
23
))
cacheid
=
CACHEID_VIPT_ALIASING
;
else
cacheid
=
CACHEID_VIPT_NONALIASING
;
}
if
(
cpu_has_aliasing_icache
(
arch
))
cacheid
|=
CACHEID_VIPT_I_ALIASING
;
}
else
{
cacheid
=
CACHEID_VIVT
;
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/kernel/smp_twd.c
浏览文件 @
7bfb40b0
...
...
@@ -137,8 +137,8 @@ void __cpuinit twd_timer_setup(struct clock_event_device *clk)
clk
->
max_delta_ns
=
clockevent_delta2ns
(
0xffffffff
,
clk
);
clk
->
min_delta_ns
=
clockevent_delta2ns
(
0xf
,
clk
);
clockevents_register_device
(
clk
);
/* Make sure our local interrupt controller has this enabled */
gic_enable_ppi
(
clk
->
irq
);
clockevents_register_device
(
clk
);
}
This diff is collapsed.
Click to expand it.
arch/arm/mach-at91/at91sam9261.c
浏览文件 @
7bfb40b0
...
...
@@ -157,7 +157,7 @@ static struct clk_lookup periph_clocks_lookups[] = {
CLKDEV_CON_DEV_ID
(
"spi_clk"
,
"atmel_spi.1"
,
&
spi1_clk
),
CLKDEV_CON_DEV_ID
(
"t0_clk"
,
"atmel_tcb.0"
,
&
tc0_clk
),
CLKDEV_CON_DEV_ID
(
"t1_clk"
,
"atmel_tcb.0"
,
&
tc1_clk
),
CLKDEV_CON_DEV_ID
(
"t2_clk"
,
"atmel_tcb.0"
,
&
tc
1
_clk
),
CLKDEV_CON_DEV_ID
(
"t2_clk"
,
"atmel_tcb.0"
,
&
tc
2
_clk
),
CLKDEV_CON_DEV_ID
(
"pclk"
,
"ssc.0"
,
&
ssc0_clk
),
CLKDEV_CON_DEV_ID
(
"pclk"
,
"ssc.1"
,
&
ssc1_clk
),
CLKDEV_CON_DEV_ID
(
"pclk"
,
"ssc.2"
,
&
ssc2_clk
),
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-ep93xx/include/mach/ts72xx.h
浏览文件 @
7bfb40b0
...
...
@@ -6,7 +6,7 @@
* TS72xx memory map:
*
* virt phys size
* febff000 22000000 4K model number register
* febff000 22000000 4K model number register
(bits 0-2)
* febfe000 22400000 4K options register
* febfd000 22800000 4K options register #2
* febf9000 10800000 4K TS-5620 RTC index register
...
...
@@ -20,6 +20,9 @@
#define TS72XX_MODEL_TS7200 0x00
#define TS72XX_MODEL_TS7250 0x01
#define TS72XX_MODEL_TS7260 0x02
#define TS72XX_MODEL_TS7300 0x03
#define TS72XX_MODEL_TS7400 0x04
#define TS72XX_MODEL_MASK 0x07
#define TS72XX_OPTIONS_PHYS_BASE 0x22400000
...
...
@@ -51,19 +54,34 @@
#ifndef __ASSEMBLY__
static
inline
int
ts72xx_model
(
void
)
{
return
__raw_readb
(
TS72XX_MODEL_VIRT_BASE
)
&
TS72XX_MODEL_MASK
;
}
static
inline
int
board_is_ts7200
(
void
)
{
return
__raw_readb
(
TS72XX_MODEL_VIRT_BASE
)
==
TS72XX_MODEL_TS7200
;
return
ts72xx_model
(
)
==
TS72XX_MODEL_TS7200
;
}
static
inline
int
board_is_ts7250
(
void
)
{
return
__raw_readb
(
TS72XX_MODEL_VIRT_BASE
)
==
TS72XX_MODEL_TS7250
;
return
ts72xx_model
(
)
==
TS72XX_MODEL_TS7250
;
}
static
inline
int
board_is_ts7260
(
void
)
{
return
__raw_readb
(
TS72XX_MODEL_VIRT_BASE
)
==
TS72XX_MODEL_TS7260
;
return
ts72xx_model
()
==
TS72XX_MODEL_TS7260
;
}
static
inline
int
board_is_ts7300
(
void
)
{
return
ts72xx_model
()
==
TS72XX_MODEL_TS7300
;
}
static
inline
int
board_is_ts7400
(
void
)
{
return
ts72xx_model
()
==
TS72XX_MODEL_TS7400
;
}
static
inline
int
is_max197_installed
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-exynos4/clock.c
浏览文件 @
7bfb40b0
...
...
@@ -520,7 +520,7 @@ static struct clk init_clocks_off[] = {
.
ctrlbit
=
(
1
<<
21
),
},
{
.
name
=
"ac97"
,
.
id
=
-
1
,
.
devname
=
"samsung-ac97"
,
.
enable
=
exynos4_clk_ip_peril_ctrl
,
.
ctrlbit
=
(
1
<<
27
),
},
{
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-exynos4/cpu.c
浏览文件 @
7bfb40b0
...
...
@@ -24,12 +24,13 @@
#include <plat/exynos4.h>
#include <plat/adc-core.h>
#include <plat/sdhci.h>
#include <plat/devs.h>
#include <plat/fb-core.h>
#include <plat/fimc-core.h>
#include <plat/iic-core.h>
#include <plat/reset.h>
#include <mach/regs-irq.h>
#include <mach/regs-pmu.h>
extern
int
combiner_init
(
unsigned
int
combiner_nr
,
void
__iomem
*
base
,
unsigned
int
irq_start
);
...
...
@@ -128,6 +129,11 @@ static void exynos4_idle(void)
local_irq_enable
();
}
static
void
exynos4_sw_reset
(
void
)
{
__raw_writel
(
0x1
,
S5P_SWRESET
);
}
/*
* exynos4_map_io
*
...
...
@@ -241,5 +247,8 @@ int __init exynos4_init(void)
/* set idle function */
pm_idle
=
exynos4_idle
;
/* set sw_reset function */
s5p_reset_hook
=
exynos4_sw_reset
;
return
sysdev_register
(
&
exynos4_sysdev
);
}
This diff is collapsed.
Click to expand it.
arch/arm/mach-exynos4/include/mach/irqs.h
浏览文件 @
7bfb40b0
...
...
@@ -80,9 +80,8 @@
#define IRQ_HSMMC3 IRQ_SPI(76)
#define IRQ_DWMCI IRQ_SPI(77)
#define IRQ_MIPICSI0 IRQ_SPI(78)
#define IRQ_MIPICSI1 IRQ_SPI(80)
#define IRQ_MIPI_CSIS0 IRQ_SPI(78)
#define IRQ_MIPI_CSIS1 IRQ_SPI(80)
#define IRQ_ONENAND_AUDI IRQ_SPI(82)
#define IRQ_ROTATOR IRQ_SPI(83)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-exynos4/include/mach/regs-pmu.h
浏览文件 @
7bfb40b0
...
...
@@ -29,6 +29,8 @@
#define S5P_USE_STANDBY_WFE1 (1 << 25)
#define S5P_USE_MASK ((0x3 << 16) | (0x3 << 24))
#define S5P_SWRESET S5P_PMUREG(0x0400)
#define S5P_WAKEUP_STAT S5P_PMUREG(0x0600)
#define S5P_EINT_WAKEUP_MASK S5P_PMUREG(0x0604)
#define S5P_WAKEUP_MASK S5P_PMUREG(0x0608)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-exynos4/irq-eint.c
浏览文件 @
7bfb40b0
...
...
@@ -23,6 +23,8 @@
#include <mach/regs-gpio.h>
#include <asm/mach/irq.h>
static
DEFINE_SPINLOCK
(
eint_lock
);
static
unsigned
int
eint0_15_data
[
16
];
...
...
@@ -184,8 +186,11 @@ static inline void exynos4_irq_demux_eint(unsigned int start)
static
void
exynos4_irq_demux_eint16_31
(
unsigned
int
irq
,
struct
irq_desc
*
desc
)
{
struct
irq_chip
*
chip
=
irq_get_chip
(
irq
);
chained_irq_enter
(
chip
,
desc
);
exynos4_irq_demux_eint
(
IRQ_EINT
(
16
));
exynos4_irq_demux_eint
(
IRQ_EINT
(
24
));
chained_irq_exit
(
chip
,
desc
);
}
static
void
exynos4_irq_eint0_15
(
unsigned
int
irq
,
struct
irq_desc
*
desc
)
...
...
@@ -193,6 +198,7 @@ static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc)
u32
*
irq_data
=
irq_get_handler_data
(
irq
);
struct
irq_chip
*
chip
=
irq_get_chip
(
irq
);
chained_irq_enter
(
chip
,
desc
);
chip
->
irq_mask
(
&
desc
->
irq_data
);
if
(
chip
->
irq_ack
)
...
...
@@ -201,6 +207,7 @@ static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc)
generic_handle_irq
(
*
irq_data
);
chip
->
irq_unmask
(
&
desc
->
irq_data
);
chained_irq_exit
(
chip
,
desc
);
}
int
__init
exynos4_init_irq_eint
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-exynos4/mach-universal_c210.c
浏览文件 @
7bfb40b0
...
...
@@ -79,7 +79,7 @@ static struct s3c2410_uartcfg universal_uartcfgs[] __initdata = {
};
static
struct
regulator_consumer_supply
max8952_consumer
=
REGULATOR_SUPPLY
(
"vddarm"
,
NULL
);
REGULATOR_SUPPLY
(
"vdd
_
arm"
,
NULL
);
static
struct
max8952_platform_data
universal_max8952_pdata
__initdata
=
{
.
gpio_vid0
=
EXYNOS4_GPX0
(
3
),
...
...
@@ -105,7 +105,7 @@ static struct max8952_platform_data universal_max8952_pdata __initdata = {
};
static
struct
regulator_consumer_supply
lp3974_buck1_consumer
=
REGULATOR_SUPPLY
(
"vddint"
,
NULL
);
REGULATOR_SUPPLY
(
"vdd
_
int"
,
NULL
);
static
struct
regulator_consumer_supply
lp3974_buck2_consumer
=
REGULATOR_SUPPLY
(
"vddg3d"
,
NULL
);
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-exynos4/setup-usb-phy.c
浏览文件 @
7bfb40b0
...
...
@@ -82,7 +82,7 @@ static int exynos4_usb_phy1_init(struct platform_device *pdev)
rstcon
&=
~
(
HOST_LINK_PORT_SWRST_MASK
|
PHY1_SWRST_MASK
);
writel
(
rstcon
,
EXYNOS4_RSTCON
);
udelay
(
5
0
);
udelay
(
8
0
);
clk_disable
(
otg_clk
);
clk_put
(
otg_clk
);
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-footbridge/Kconfig
浏览文件 @
7bfb40b0
...
...
@@ -62,6 +62,7 @@ config ARCH_EBSA285_HOST
config ARCH_NETWINDER
bool "NetWinder"
select CLKSRC_I8253
select CLKEVT_I8253
select FOOTBRIDGE_HOST
select ISA
select ISA_DMA
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-footbridge/dc21285.c
浏览文件 @
7bfb40b0
...
...
@@ -18,6 +18,7 @@
#include <linux/irq.h>
#include <linux/io.h>
#include <linux/spinlock.h>
#include <video/vga.h>
#include <asm/irq.h>
#include <asm/system.h>
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-imx/mach-cpuimx27.c
浏览文件 @
7bfb40b0
...
...
@@ -310,7 +310,7 @@ static struct sys_timer eukrea_cpuimx27_timer = {
.
init
=
eukrea_cpuimx27_timer_init
,
};
MACHINE_START
(
CPUIMX27
,
"EUKREA CPUIMX27"
)
MACHINE_START
(
EUKREA_
CPUIMX27
,
"EUKREA CPUIMX27"
)
.
boot_params
=
MX27_PHYS_OFFSET
+
0x100
,
.
map_io
=
mx27_map_io
,
.
init_early
=
imx27_init_early
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-imx/mach-cpuimx35.c
浏览文件 @
7bfb40b0
...
...
@@ -192,7 +192,7 @@ struct sys_timer eukrea_cpuimx35_timer = {
.
init
=
eukrea_cpuimx35_timer_init
,
};
MACHINE_START
(
EUKREA_CPUIMX35
,
"Eukrea CPUIMX35"
)
MACHINE_START
(
EUKREA_CPUIMX35
SD
,
"Eukrea CPUIMX35"
)
/* Maintainer: Eukrea Electromatique */
.
boot_params
=
MX3x_PHYS_OFFSET
+
0x100
,
.
map_io
=
mx35_map_io
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-imx/mach-eukrea_cpuimx25.c
浏览文件 @
7bfb40b0
...
...
@@ -161,7 +161,7 @@ static struct sys_timer eukrea_cpuimx25_timer = {
.
init
=
eukrea_cpuimx25_timer_init
,
};
MACHINE_START
(
EUKREA_CPUIMX25
,
"Eukrea CPUIMX25"
)
MACHINE_START
(
EUKREA_CPUIMX25
SD
,
"Eukrea CPUIMX25"
)
/* Maintainer: Eukrea Electromatique */
.
boot_params
=
MX25_PHYS_OFFSET
+
0x100
,
.
map_io
=
mx25_map_io
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-orion5x/dns323-setup.c
浏览文件 @
7bfb40b0
...
...
@@ -77,7 +77,7 @@ static int __init dns323_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
/*
* Check for devices with hard-wired IRQs.
*/
irq
=
orion5x_pci_map_irq
(
const
dev
,
slot
,
pin
);
irq
=
orion5x_pci_map_irq
(
dev
,
slot
,
pin
);
if
(
irq
!=
-
1
)
return
irq
;
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-orion5x/pci.c
浏览文件 @
7bfb40b0
...
...
@@ -14,6 +14,7 @@
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/mbus.h>
#include <video/vga.h>
#include <asm/irq.h>
#include <asm/mach/pci.h>
#include <plat/pcie.h>
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-realview/include/mach/system.h
浏览文件 @
7bfb40b0
...
...
@@ -44,6 +44,7 @@ static inline void arch_reset(char mode, const char *cmd)
*/
if
(
realview_reset
)
realview_reset
(
mode
);
dsb
();
}
#endif
This diff is collapsed.
Click to expand it.
arch/arm/mach-s3c64xx/pm.c
浏览文件 @
7bfb40b0
...
...
@@ -16,6 +16,7 @@
#include <linux/suspend.h>
#include <linux/serial_core.h>
#include <linux/io.h>
#include <linux/gpio.h>
#include <mach/map.h>
#include <mach/irqs.h>
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-s5p64x0/irq-eint.c
浏览文件 @
7bfb40b0
...
...
@@ -129,7 +129,7 @@ static int s5p64x0_alloc_gc(void)
}
ct
=
gc
->
chip_types
;
ct
->
chip
.
irq_ack
=
irq_gc_ack
;
ct
->
chip
.
irq_ack
=
irq_gc_ack
_set_bit
;
ct
->
chip
.
irq_mask
=
irq_gc_mask_set_bit
;
ct
->
chip
.
irq_unmask
=
irq_gc_mask_clr_bit
;
ct
->
chip
.
irq_set_type
=
s5p64x0_irq_eint_set_type
;
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-s5pv210/pm.c
浏览文件 @
7bfb40b0
...
...
@@ -88,7 +88,7 @@ static struct sleep_save s5pv210_core_save[] = {
SAVE_ITEM
(
S3C2410_TCNTO
(
0
)),
};
void
s5pv210_cpu_suspend
(
unsigned
long
arg
)
static
int
s5pv210_cpu_suspend
(
unsigned
long
arg
)
{
unsigned
long
tmp
;
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-shmobile/board-ag5evm.c
浏览文件 @
7bfb40b0
...
...
@@ -341,6 +341,7 @@ static struct platform_device mipidsi0_device = {
static
struct
sh_mobile_sdhi_info
sdhi0_info
=
{
.
dma_slave_tx
=
SHDMA_SLAVE_SDHI0_TX
,
.
dma_slave_rx
=
SHDMA_SLAVE_SDHI0_RX
,
.
tmio_flags
=
TMIO_MMC_HAS_IDLE_WAIT
,
.
tmio_caps
=
MMC_CAP_SD_HIGHSPEED
,
.
tmio_ocr_mask
=
MMC_VDD_27_28
|
MMC_VDD_28_29
,
};
...
...
@@ -382,7 +383,7 @@ void ag5evm_sdhi1_set_pwr(struct platform_device *pdev, int state)
}
static
struct
sh_mobile_sdhi_info
sh_sdhi1_info
=
{
.
tmio_flags
=
TMIO_MMC_WRPROTECT_DISABLE
,
.
tmio_flags
=
TMIO_MMC_WRPROTECT_DISABLE
|
TMIO_MMC_HAS_IDLE_WAIT
,
.
tmio_caps
=
MMC_CAP_NONREMOVABLE
|
MMC_CAP_SDIO_IRQ
,
.
tmio_ocr_mask
=
MMC_VDD_32_33
|
MMC_VDD_33_34
,
.
set_pwr
=
ag5evm_sdhi1_set_pwr
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-shmobile/board-mackerel.c
浏览文件 @
7bfb40b0
...
...
@@ -641,6 +641,8 @@ static struct usbhs_private usbhs0_private = {
},
.
driver_param
=
{
.
buswait_bwait
=
4
,
.
d0_tx_id
=
SHDMA_SLAVE_USB0_TX
,
.
d1_rx_id
=
SHDMA_SLAVE_USB0_RX
,
},
},
};
...
...
@@ -810,6 +812,8 @@ static struct usbhs_private usbhs1_private = {
.
buswait_bwait
=
4
,
.
pipe_type
=
usbhs1_pipe_cfg
,
.
pipe_size
=
ARRAY_SIZE
(
usbhs1_pipe_cfg
),
.
d0_tx_id
=
SHDMA_SLAVE_USB1_TX
,
.
d1_rx_id
=
SHDMA_SLAVE_USB1_RX
,
},
},
};
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-shmobile/clock-sh7372.c
浏览文件 @
7bfb40b0
...
...
@@ -503,16 +503,17 @@ static struct clk *late_main_clks[] = {
&
sh7372_fsidivb_clk
,
};
enum
{
MSTP001
,
enum
{
MSTP001
,
MSTP000
,
MSTP131
,
MSTP130
,
MSTP129
,
MSTP128
,
MSTP127
,
MSTP126
,
MSTP125
,
MSTP118
,
MSTP117
,
MSTP116
,
MSTP113
,
MSTP106
,
MSTP101
,
MSTP100
,
MSTP223
,
MSTP218
,
MSTP217
,
MSTP216
,
MSTP207
,
MSTP206
,
MSTP204
,
MSTP203
,
MSTP202
,
MSTP201
,
MSTP200
,
MSTP329
,
MSTP328
,
MSTP323
,
MSTP322
,
MSTP314
,
MSTP313
,
MSTP312
,
MSTP423
,
MSTP415
,
MSTP413
,
MSTP411
,
MSTP410
,
MSTP406
,
MSTP403
,
MSTP218
,
MSTP217
,
MSTP216
,
MSTP214
,
MSTP208
,
MSTP207
,
MSTP206
,
MSTP205
,
MSTP204
,
MSTP203
,
MSTP202
,
MSTP201
,
MSTP200
,
MSTP328
,
MSTP323
,
MSTP322
,
MSTP314
,
MSTP313
,
MSTP312
,
MSTP423
,
MSTP415
,
MSTP413
,
MSTP411
,
MSTP410
,
MSTP407
,
MSTP406
,
MSTP405
,
MSTP404
,
MSTP403
,
MSTP400
,
MSTP_NR
};
#define MSTP(_parent, _reg, _bit, _flags) \
...
...
@@ -520,6 +521,7 @@ enum { MSTP001,
static
struct
clk
mstp_clks
[
MSTP_NR
]
=
{
[
MSTP001
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR0
,
1
,
0
),
/* IIC2 */
[
MSTP000
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR0
,
0
,
0
),
/* MSIOF0 */
[
MSTP131
]
=
MSTP
(
&
div4_clks
[
DIV4_B
],
SMSTPCR1
,
31
,
0
),
/* VEU3 */
[
MSTP130
]
=
MSTP
(
&
div4_clks
[
DIV4_B
],
SMSTPCR1
,
30
,
0
),
/* VEU2 */
[
MSTP129
]
=
MSTP
(
&
div4_clks
[
DIV4_B
],
SMSTPCR1
,
29
,
0
),
/* VEU1 */
...
...
@@ -538,14 +540,16 @@ static struct clk mstp_clks[MSTP_NR] = {
[
MSTP218
]
=
MSTP
(
&
div4_clks
[
DIV4_HP
],
SMSTPCR2
,
18
,
0
),
/* DMAC1 */
[
MSTP217
]
=
MSTP
(
&
div4_clks
[
DIV4_HP
],
SMSTPCR2
,
17
,
0
),
/* DMAC2 */
[
MSTP216
]
=
MSTP
(
&
div4_clks
[
DIV4_HP
],
SMSTPCR2
,
16
,
0
),
/* DMAC3 */
[
MSTP214
]
=
MSTP
(
&
div4_clks
[
DIV4_HP
],
SMSTPCR2
,
14
,
0
),
/* USBDMAC */
[
MSTP208
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR2
,
8
,
0
),
/* MSIOF1 */
[
MSTP207
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR2
,
7
,
0
),
/* SCIFA5 */
[
MSTP206
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR2
,
6
,
0
),
/* SCIFB */
[
MSTP205
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR2
,
5
,
0
),
/* MSIOF2 */
[
MSTP204
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR2
,
4
,
0
),
/* SCIFA0 */
[
MSTP203
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR2
,
3
,
0
),
/* SCIFA1 */
[
MSTP202
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR2
,
2
,
0
),
/* SCIFA2 */
[
MSTP201
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR2
,
1
,
0
),
/* SCIFA3 */
[
MSTP200
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR2
,
0
,
0
),
/* SCIFA4 */
[
MSTP329
]
=
MSTP
(
&
r_clk
,
SMSTPCR3
,
29
,
0
),
/* CMT10 */
[
MSTP328
]
=
MSTP
(
&
div6_clks
[
DIV6_SPU
],
SMSTPCR3
,
28
,
0
),
/* FSI2 */
[
MSTP323
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR3
,
23
,
0
),
/* IIC1 */
[
MSTP322
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR3
,
22
,
0
),
/* USB0 */
...
...
@@ -557,8 +561,12 @@ static struct clk mstp_clks[MSTP_NR] = {
[
MSTP413
]
=
MSTP
(
&
pllc1_div2_clk
,
SMSTPCR4
,
13
,
0
),
/* HDMI */
[
MSTP411
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR4
,
11
,
0
),
/* IIC3 */
[
MSTP410
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR4
,
10
,
0
),
/* IIC4 */
[
MSTP407
]
=
MSTP
(
&
div4_clks
[
DIV4_HP
],
SMSTPCR4
,
7
,
0
),
/* USB-DMAC1 */
[
MSTP406
]
=
MSTP
(
&
div6_clks
[
DIV6_SUB
],
SMSTPCR4
,
6
,
0
),
/* USB1 */
[
MSTP405
]
=
MSTP
(
&
r_clk
,
SMSTPCR4
,
5
,
0
),
/* CMT4 */
[
MSTP404
]
=
MSTP
(
&
r_clk
,
SMSTPCR4
,
4
,
0
),
/* CMT3 */
[
MSTP403
]
=
MSTP
(
&
r_clk
,
SMSTPCR4
,
3
,
0
),
/* KEYSC */
[
MSTP400
]
=
MSTP
(
&
r_clk
,
SMSTPCR4
,
0
,
0
),
/* CMT2 */
};
static
struct
clk_lookup
lookups
[]
=
{
...
...
@@ -609,6 +617,7 @@ static struct clk_lookup lookups[] = {
/* MSTP32 clocks */
CLKDEV_DEV_ID
(
"i2c-sh_mobile.2"
,
&
mstp_clks
[
MSTP001
]),
/* IIC2 */
CLKDEV_DEV_ID
(
"spi_sh_msiof.0"
,
&
mstp_clks
[
MSTP000
]),
/* MSIOF0 */
CLKDEV_DEV_ID
(
"uio_pdrv_genirq.4"
,
&
mstp_clks
[
MSTP131
]),
/* VEU3 */
CLKDEV_DEV_ID
(
"uio_pdrv_genirq.3"
,
&
mstp_clks
[
MSTP130
]),
/* VEU2 */
CLKDEV_DEV_ID
(
"uio_pdrv_genirq.2"
,
&
mstp_clks
[
MSTP129
]),
/* VEU1 */
...
...
@@ -629,14 +638,16 @@ static struct clk_lookup lookups[] = {
CLKDEV_DEV_ID
(
"sh-dma-engine.0"
,
&
mstp_clks
[
MSTP218
]),
/* DMAC1 */
CLKDEV_DEV_ID
(
"sh-dma-engine.1"
,
&
mstp_clks
[
MSTP217
]),
/* DMAC2 */
CLKDEV_DEV_ID
(
"sh-dma-engine.2"
,
&
mstp_clks
[
MSTP216
]),
/* DMAC3 */
CLKDEV_DEV_ID
(
"sh-dma-engine.3"
,
&
mstp_clks
[
MSTP214
]),
/* USB-DMAC0 */
CLKDEV_DEV_ID
(
"spi_sh_msiof.1"
,
&
mstp_clks
[
MSTP208
]),
/* MSIOF1 */
CLKDEV_DEV_ID
(
"sh-sci.5"
,
&
mstp_clks
[
MSTP207
]),
/* SCIFA5 */
CLKDEV_DEV_ID
(
"sh-sci.6"
,
&
mstp_clks
[
MSTP206
]),
/* SCIFB */
CLKDEV_DEV_ID
(
"spi_sh_msiof.2"
,
&
mstp_clks
[
MSTP205
]),
/* MSIOF2 */
CLKDEV_DEV_ID
(
"sh-sci.0"
,
&
mstp_clks
[
MSTP204
]),
/* SCIFA0 */
CLKDEV_DEV_ID
(
"sh-sci.1"
,
&
mstp_clks
[
MSTP203
]),
/* SCIFA1 */
CLKDEV_DEV_ID
(
"sh-sci.2"
,
&
mstp_clks
[
MSTP202
]),
/* SCIFA2 */
CLKDEV_DEV_ID
(
"sh-sci.3"
,
&
mstp_clks
[
MSTP201
]),
/* SCIFA3 */
CLKDEV_DEV_ID
(
"sh-sci.4"
,
&
mstp_clks
[
MSTP200
]),
/* SCIFA4 */
CLKDEV_DEV_ID
(
"sh_cmt.10"
,
&
mstp_clks
[
MSTP329
]),
/* CMT10 */
CLKDEV_DEV_ID
(
"sh_fsi2"
,
&
mstp_clks
[
MSTP328
]),
/* FSI2 */
CLKDEV_DEV_ID
(
"i2c-sh_mobile.1"
,
&
mstp_clks
[
MSTP323
]),
/* IIC1 */
CLKDEV_DEV_ID
(
"r8a66597_hcd.0"
,
&
mstp_clks
[
MSTP322
]),
/* USB0 */
...
...
@@ -650,10 +661,14 @@ static struct clk_lookup lookups[] = {
CLKDEV_DEV_ID
(
"sh-mobile-hdmi"
,
&
mstp_clks
[
MSTP413
]),
/* HDMI */
CLKDEV_DEV_ID
(
"i2c-sh_mobile.3"
,
&
mstp_clks
[
MSTP411
]),
/* IIC3 */
CLKDEV_DEV_ID
(
"i2c-sh_mobile.4"
,
&
mstp_clks
[
MSTP410
]),
/* IIC4 */
CLKDEV_DEV_ID
(
"sh-dma-engine.4"
,
&
mstp_clks
[
MSTP407
]),
/* USB-DMAC1 */
CLKDEV_DEV_ID
(
"r8a66597_hcd.1"
,
&
mstp_clks
[
MSTP406
]),
/* USB1 */
CLKDEV_DEV_ID
(
"r8a66597_udc.1"
,
&
mstp_clks
[
MSTP406
]),
/* USB1 */
CLKDEV_DEV_ID
(
"renesas_usbhs.1"
,
&
mstp_clks
[
MSTP406
]),
/* USB1 */
CLKDEV_DEV_ID
(
"sh_cmt.4"
,
&
mstp_clks
[
MSTP405
]),
/* CMT4 */
CLKDEV_DEV_ID
(
"sh_cmt.3"
,
&
mstp_clks
[
MSTP404
]),
/* CMT3 */
CLKDEV_DEV_ID
(
"sh_keysc.0"
,
&
mstp_clks
[
MSTP403
]),
/* KEYSC */
CLKDEV_DEV_ID
(
"sh_cmt.2"
,
&
mstp_clks
[
MSTP400
]),
/* CMT2 */
CLKDEV_ICK_ID
(
"hdmi"
,
"sh_mobile_lcdc_fb.1"
,
&
div6_reparent_clks
[
DIV6_HDMI
]),
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-shmobile/clock-sh73a0.c
浏览文件 @
7bfb40b0
...
...
@@ -365,7 +365,7 @@ void __init sh73a0_clock_init(void)
__raw_writel
(
0x108
,
SD2CKCR
);
/* detect main clock parent */
switch
((
__raw_readl
(
CKSCR
)
>>
2
4
)
&
0x03
)
{
switch
((
__raw_readl
(
CKSCR
)
>>
2
8
)
&
0x03
)
{
case
0
:
main_clk
.
parent
=
&
sh73a0_extal1_clk
;
break
;
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-shmobile/include/mach/sh7372.h
浏览文件 @
7bfb40b0
...
...
@@ -459,6 +459,10 @@ enum {
SHDMA_SLAVE_SDHI2_TX
,
SHDMA_SLAVE_MMCIF_RX
,
SHDMA_SLAVE_MMCIF_TX
,
SHDMA_SLAVE_USB0_TX
,
SHDMA_SLAVE_USB0_RX
,
SHDMA_SLAVE_USB1_TX
,
SHDMA_SLAVE_USB1_RX
,
};
extern
struct
clk
sh7372_extal1_clk
;
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-shmobile/intc-sh7372.c
浏览文件 @
7bfb40b0
...
...
@@ -379,7 +379,7 @@ enum {
/* BBIF2 */
VPU
,
TSIF1
,
_3DG_SGX530
,
/* 3DG */
_2DDMAC
,
IIC2_ALI2
,
IIC2_TACKI2
,
IIC2_WAITI2
,
IIC2_DTEI2
,
IPMMU_IPMMUR
,
IPMMU_IPMMUR2
,
...
...
@@ -436,7 +436,7 @@ static struct intc_vect intcs_vectors[] = {
/* BBIF2 */
INTCS_VECT
(
VPU
,
0x980
),
INTCS_VECT
(
TSIF1
,
0x9a0
),
INTCS_VECT
(
_3DG_SGX530
,
0x9e0
),
/* 3DG */
INTCS_VECT
(
_2DDMAC
,
0xa00
),
INTCS_VECT
(
IIC2_ALI2
,
0xa80
),
INTCS_VECT
(
IIC2_TACKI2
,
0xaa0
),
INTCS_VECT
(
IIC2_WAITI2
,
0xac0
),
INTCS_VECT
(
IIC2_DTEI2
,
0xae0
),
...
...
@@ -521,7 +521,7 @@ static struct intc_mask_reg intcs_mask_registers[] = {
RTDMAC_1_DEI3
,
RTDMAC_1_DEI2
,
RTDMAC_1_DEI1
,
RTDMAC_1_DEI0
}
},
{
0xffd20198
,
0xffd201d8
,
8
,
/* IMR6SA / IMCR6SA */
{
0
,
0
,
MSIOF
,
0
,
_3DG_SGX53
0
,
0
,
0
,
0
}
},
0
,
0
,
0
,
0
}
},
{
0xffd2019c
,
0xffd201dc
,
8
,
/* IMR7SA / IMCR7SA */
{
0
,
TMU_TUNI2
,
TMU_TUNI1
,
TMU_TUNI0
,
0
,
0
,
0
,
0
}
},
...
...
@@ -561,7 +561,6 @@ static struct intc_prio_reg intcs_prio_registers[] = {
TMU_TUNI2
,
TSIF1
}
},
{
0xffd2001c
,
0
,
16
,
4
,
/* IPRHS */
{
0
,
0
,
VEU
,
BEU
}
},
{
0xffd20020
,
0
,
16
,
4
,
/* IPRIS */
{
0
,
MSIOF
,
TSIF0
,
IIC0
}
},
{
0xffd20024
,
0
,
16
,
4
,
/* IPRJS */
{
0
,
_3DG_SGX530
,
0
,
0
}
},
{
0xffd20028
,
0
,
16
,
4
,
/* IPRKS */
{
0
,
0
,
LMB
,
0
}
},
{
0xffd2002c
,
0
,
16
,
4
,
/* IPRLS */
{
IPMMU
,
0
,
0
,
0
}
},
{
0xffd20030
,
0
,
16
,
4
,
/* IPRMS */
{
IIC2
,
0
,
0
,
0
}
},
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-shmobile/setup-sh7372.c
浏览文件 @
7bfb40b0
...
...
@@ -169,35 +169,35 @@ static struct platform_device scif6_device = {
};
/* CMT */
static
struct
sh_timer_config
cmt
10
_platform_data
=
{
.
name
=
"CMT
10
"
,
.
channel_offset
=
0x
1
0
,
.
timer_bit
=
0
,
static
struct
sh_timer_config
cmt
2
_platform_data
=
{
.
name
=
"CMT
2
"
,
.
channel_offset
=
0x
4
0
,
.
timer_bit
=
5
,
.
clockevent_rating
=
125
,
.
clocksource_rating
=
125
,
};
static
struct
resource
cmt
10
_resources
[]
=
{
static
struct
resource
cmt
2
_resources
[]
=
{
[
0
]
=
{
.
name
=
"CMT
10
"
,
.
start
=
0xe613
801
0
,
.
end
=
0xe613
801
b
,
.
name
=
"CMT
2
"
,
.
start
=
0xe613
004
0
,
.
end
=
0xe613
004
b
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
evt2irq
(
0x0b
00
),
/* CMT1_CMT10
*/
.
start
=
evt2irq
(
0x0b
80
),
/* CMT2
*/
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
cmt
10
_device
=
{
static
struct
platform_device
cmt
2
_device
=
{
.
name
=
"sh_cmt"
,
.
id
=
10
,
.
id
=
2
,
.
dev
=
{
.
platform_data
=
&
cmt
10
_platform_data
,
.
platform_data
=
&
cmt
2
_platform_data
,
},
.
resource
=
cmt
10
_resources
,
.
num_resources
=
ARRAY_SIZE
(
cmt
10
_resources
),
.
resource
=
cmt
2
_resources
,
.
num_resources
=
ARRAY_SIZE
(
cmt
2
_resources
),
};
/* TMU */
...
...
@@ -602,6 +602,150 @@ static struct platform_device dma2_device = {
},
};
/*
* USB-DMAC
*/
unsigned
int
usbts_shift
[]
=
{
3
,
4
,
5
};
enum
{
XMIT_SZ_8BYTE
=
0
,
XMIT_SZ_16BYTE
=
1
,
XMIT_SZ_32BYTE
=
2
,
};
#define USBTS_INDEX2VAL(i) (((i) & 3) << 6)
static
const
struct
sh_dmae_channel
sh7372_usb_dmae_channels
[]
=
{
{
.
offset
=
0
,
},
{
.
offset
=
0x20
,
},
};
/* USB DMAC0 */
static
const
struct
sh_dmae_slave_config
sh7372_usb_dmae0_slaves
[]
=
{
{
.
slave_id
=
SHDMA_SLAVE_USB0_TX
,
.
chcr
=
USBTS_INDEX2VAL
(
XMIT_SZ_8BYTE
),
},
{
.
slave_id
=
SHDMA_SLAVE_USB0_RX
,
.
chcr
=
USBTS_INDEX2VAL
(
XMIT_SZ_8BYTE
),
},
};
static
struct
sh_dmae_pdata
usb_dma0_platform_data
=
{
.
slave
=
sh7372_usb_dmae0_slaves
,
.
slave_num
=
ARRAY_SIZE
(
sh7372_usb_dmae0_slaves
),
.
channel
=
sh7372_usb_dmae_channels
,
.
channel_num
=
ARRAY_SIZE
(
sh7372_usb_dmae_channels
),
.
ts_low_shift
=
6
,
.
ts_low_mask
=
0xc0
,
.
ts_high_shift
=
0
,
.
ts_high_mask
=
0
,
.
ts_shift
=
usbts_shift
,
.
ts_shift_num
=
ARRAY_SIZE
(
usbts_shift
),
.
dmaor_init
=
DMAOR_DME
,
.
chcr_offset
=
0x14
,
.
chcr_ie_bit
=
1
<<
5
,
.
dmaor_is_32bit
=
1
,
.
needs_tend_set
=
1
,
.
no_dmars
=
1
,
};
static
struct
resource
sh7372_usb_dmae0_resources
[]
=
{
{
/* Channel registers and DMAOR */
.
start
=
0xe68a0020
,
.
end
=
0xe68a0064
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
{
/* VCR/SWR/DMICR */
.
start
=
0xe68a0000
,
.
end
=
0xe68a0014
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
{
/* IRQ for channels */
.
start
=
evt2irq
(
0x0a00
),
.
end
=
evt2irq
(
0x0a00
),
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
usb_dma0_device
=
{
.
name
=
"sh-dma-engine"
,
.
id
=
3
,
.
resource
=
sh7372_usb_dmae0_resources
,
.
num_resources
=
ARRAY_SIZE
(
sh7372_usb_dmae0_resources
),
.
dev
=
{
.
platform_data
=
&
usb_dma0_platform_data
,
},
};
/* USB DMAC1 */
static
const
struct
sh_dmae_slave_config
sh7372_usb_dmae1_slaves
[]
=
{
{
.
slave_id
=
SHDMA_SLAVE_USB1_TX
,
.
chcr
=
USBTS_INDEX2VAL
(
XMIT_SZ_8BYTE
),
},
{
.
slave_id
=
SHDMA_SLAVE_USB1_RX
,
.
chcr
=
USBTS_INDEX2VAL
(
XMIT_SZ_8BYTE
),
},
};
static
struct
sh_dmae_pdata
usb_dma1_platform_data
=
{
.
slave
=
sh7372_usb_dmae1_slaves
,
.
slave_num
=
ARRAY_SIZE
(
sh7372_usb_dmae1_slaves
),
.
channel
=
sh7372_usb_dmae_channels
,
.
channel_num
=
ARRAY_SIZE
(
sh7372_usb_dmae_channels
),
.
ts_low_shift
=
6
,
.
ts_low_mask
=
0xc0
,
.
ts_high_shift
=
0
,
.
ts_high_mask
=
0
,
.
ts_shift
=
usbts_shift
,
.
ts_shift_num
=
ARRAY_SIZE
(
usbts_shift
),
.
dmaor_init
=
DMAOR_DME
,
.
chcr_offset
=
0x14
,
.
chcr_ie_bit
=
1
<<
5
,
.
dmaor_is_32bit
=
1
,
.
needs_tend_set
=
1
,
.
no_dmars
=
1
,
};
static
struct
resource
sh7372_usb_dmae1_resources
[]
=
{
{
/* Channel registers and DMAOR */
.
start
=
0xe68c0020
,
.
end
=
0xe68c0064
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
{
/* VCR/SWR/DMICR */
.
start
=
0xe68c0000
,
.
end
=
0xe68c0014
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
{
/* IRQ for channels */
.
start
=
evt2irq
(
0x1d00
),
.
end
=
evt2irq
(
0x1d00
),
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
usb_dma1_device
=
{
.
name
=
"sh-dma-engine"
,
.
id
=
4
,
.
resource
=
sh7372_usb_dmae1_resources
,
.
num_resources
=
ARRAY_SIZE
(
sh7372_usb_dmae1_resources
),
.
dev
=
{
.
platform_data
=
&
usb_dma1_platform_data
,
},
};
/* VPU */
static
struct
uio_info
vpu_platform_data
=
{
.
name
=
"VPU5HG"
,
...
...
@@ -818,7 +962,7 @@ static struct platform_device *sh7372_early_devices[] __initdata = {
&
scif4_device
,
&
scif5_device
,
&
scif6_device
,
&
cmt
10
_device
,
&
cmt
2
_device
,
&
tmu00_device
,
&
tmu01_device
,
};
...
...
@@ -829,6 +973,8 @@ static struct platform_device *sh7372_late_devices[] __initdata = {
&
dma0_device
,
&
dma1_device
,
&
dma2_device
,
&
usb_dma0_device
,
&
usb_dma1_device
,
&
vpu_device
,
&
veu0_device
,
&
veu1_device
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-vexpress/v2m.c
浏览文件 @
7bfb40b0
...
...
@@ -318,6 +318,10 @@ static struct clk v2m_sp804_clk = {
.
rate
=
1000000
,
};
static
struct
clk
v2m_ref_clk
=
{
.
rate
=
32768
,
};
static
struct
clk
dummy_apb_pclk
;
static
struct
clk_lookup
v2m_lookups
[]
=
{
...
...
@@ -348,6 +352,9 @@ static struct clk_lookup v2m_lookups[] = {
},
{
/* CLCD */
.
dev_id
=
"mb:clcd"
,
.
clk
=
&
osc1_clk
,
},
{
/* SP805 WDT */
.
dev_id
=
"mb:wdt"
,
.
clk
=
&
v2m_ref_clk
,
},
{
/* SP804 timers */
.
dev_id
=
"sp804"
,
.
con_id
=
"v2m-timer0"
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mm/proc-arm920.S
浏览文件 @
7bfb40b0
...
...
@@ -379,7 +379,7 @@ ENTRY(cpu_arm920_set_pte_ext)
/*
Suspend
/
resume
support
:
taken
from
arch
/
arm
/
plat
-
s3c24xx
/
sleep
.
S
*/
.
globl
cpu_arm920_suspend_size
.
equ
cpu_arm920_suspend_size
,
4
*
3
.
equ
cpu_arm920_suspend_size
,
4
*
4
#ifdef CONFIG_PM_SLEEP
ENTRY
(
cpu_arm920_do_suspend
)
stmfd
sp
!,
{
r4
-
r7
,
lr
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mm/proc-arm926.S
浏览文件 @
7bfb40b0
...
...
@@ -394,7 +394,7 @@ ENTRY(cpu_arm926_set_pte_ext)
/*
Suspend
/
resume
support
:
taken
from
arch
/
arm
/
plat
-
s3c24xx
/
sleep
.
S
*/
.
globl
cpu_arm926_suspend_size
.
equ
cpu_arm926_suspend_size
,
4
*
3
.
equ
cpu_arm926_suspend_size
,
4
*
4
#ifdef CONFIG_PM_SLEEP
ENTRY
(
cpu_arm926_do_suspend
)
stmfd
sp
!,
{
r4
-
r7
,
lr
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mm/proc-sa1100.S
浏览文件 @
7bfb40b0
...
...
@@ -182,11 +182,11 @@ ENDPROC(cpu_sa1100_do_suspend)
ENTRY
(
cpu_sa1100_do_resume
)
ldmia
r0
,
{
r4
-
r7
}
@
load
cp
regs
mov
r1
,
#
0
mcr
p15
,
0
,
r1
,
c8
,
c7
,
0
@
flush
I
+
D
TLBs
mcr
p15
,
0
,
r1
,
c7
,
c7
,
0
@
flush
I
&D
cache
mcr
p15
,
0
,
r1
,
c9
,
c0
,
0
@
invalidate
RB
mcr
p15
,
0
,
r1
,
c9
,
c0
,
5
@
allow
user
space
to
use
RB
mov
ip
,
#
0
mcr
p15
,
0
,
ip
,
c8
,
c7
,
0
@
flush
I
+
D
TLBs
mcr
p15
,
0
,
ip
,
c7
,
c7
,
0
@
flush
I
&D
cache
mcr
p15
,
0
,
ip
,
c9
,
c0
,
0
@
invalidate
RB
mcr
p15
,
0
,
ip
,
c9
,
c0
,
5
@
allow
user
space
to
use
RB
mcr
p15
,
0
,
r4
,
c3
,
c0
,
0
@
domain
ID
mcr
p15
,
0
,
r5
,
c2
,
c0
,
0
@
translation
table
base
addr
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mm/proc-v6.S
浏览文件 @
7bfb40b0
...
...
@@ -223,6 +223,22 @@ __v6_setup:
mrc
p15
,
0
,
r0
,
c1
,
c0
,
0
@
read
control
register
bic
r0
,
r0
,
r5
@
clear
bits
them
orr
r0
,
r0
,
r6
@
set
them
#ifdef CONFIG_ARM_ERRATA_364296
/
*
*
Workaround
for
the
364296
ARM1136
r0p2
erratum
(
possible
cache
data
*
corruption
with
hit
-
under
-
miss
enabled
)
.
The
conditional
code
below
*
(
setting
the
undocumented
bit
31
in
the
auxiliary
control
register
*
and
the
FI
bit
in
the
control
register
)
disables
hit
-
under
-
miss
*
without
putting
the
processor
into
full
low
interrupt
latency
mode
.
*/
ldr
r6
,
=
0x4107b362
@
id
for
ARM1136
r0p2
mrc
p15
,
0
,
r5
,
c0
,
c0
,
0
@
get
processor
id
teq
r5
,
r6
@
check
for
the
faulty
core
mrceq
p15
,
0
,
r5
,
c1
,
c0
,
1
@
load
aux
control
reg
orreq
r5
,
r5
,
#(
1
<<
31
)
@
set
the
undocumented
bit
31
mcreq
p15
,
0
,
r5
,
c1
,
c0
,
1
@
write
aux
control
reg
orreq
r0
,
r0
,
#(
1
<<
21
)
@
low
interrupt
latency
configuration
#endif
mov
pc
,
lr
@
return
to
head
.
S
:
__ret
/
*
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mm/proc-v7.S
浏览文件 @
7bfb40b0
...
...
@@ -66,6 +66,7 @@ ENDPROC(cpu_v7_proc_fin)
ENTRY
(
cpu_v7_reset
)
mrc
p15
,
0
,
r1
,
c1
,
c0
,
0
@
ctrl
register
bic
r1
,
r1
,
#
0x1
@
...............
m
THUMB
(
bic
r1
,
r1
,
#
1
<<
30
)
@
SCTLR
.
TE
(
Thumb
exceptions
)
mcr
p15
,
0
,
r1
,
c1
,
c0
,
0
@
disable
MMU
isb
mov
pc
,
r0
...
...
@@ -247,13 +248,16 @@ ENTRY(cpu_v7_do_resume)
mcr
p15
,
0
,
r7
,
c2
,
c0
,
0
@
TTB
0
mcr
p15
,
0
,
r8
,
c2
,
c0
,
1
@
TTB
1
mcr
p15
,
0
,
ip
,
c2
,
c0
,
2
@
TTB
control
register
mcr
p15
,
0
,
r10
,
c1
,
c0
,
1
@
Auxiliary
control
register
mrc
p15
,
0
,
r4
,
c1
,
c0
,
1
@
Read
Auxiliary
control
register
teq
r4
,
r10
@
Is
it
already
set
?
mcrne
p15
,
0
,
r10
,
c1
,
c0
,
1
@
No
,
so
write
it
mcr
p15
,
0
,
r11
,
c1
,
c0
,
2
@
Co
-
processor
access
control
ldr
r4
,
=
PRRR
@
PRRR
ldr
r5
,
=
NMRR
@
NMRR
mcr
p15
,
0
,
r4
,
c10
,
c2
,
0
@
write
PRRR
mcr
p15
,
0
,
r5
,
c10
,
c2
,
1
@
write
NMRR
isb
dsb
mov
r0
,
r9
@
control
register
mov
r2
,
r7
,
lsr
#
14
@
get
TTB0
base
mov
r2
,
r2
,
lsl
#
14
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mm/proc-xsc3.S
浏览文件 @
7bfb40b0
...
...
@@ -406,7 +406,7 @@ ENTRY(cpu_xsc3_set_pte_ext)
.
align
.
globl
cpu_xsc3_suspend_size
.
equ
cpu_xsc3_suspend_size
,
4
*
8
.
equ
cpu_xsc3_suspend_size
,
4
*
7
#ifdef CONFIG_PM_SLEEP
ENTRY
(
cpu_xsc3_do_suspend
)
stmfd
sp
!,
{
r4
-
r10
,
lr
}
...
...
@@ -418,12 +418,12 @@ ENTRY(cpu_xsc3_do_suspend)
mrc
p15
,
0
,
r9
,
c1
,
c0
,
1
@
auxiliary
control
reg
mrc
p15
,
0
,
r10
,
c1
,
c0
,
0
@
control
reg
bic
r4
,
r4
,
#
2
@
clear
frequency
change
bit
stmia
r0
,
{
r
1
,
r4
-
r10
}
@
store
v
:
p
offset
+
cp
regs
stmia
r0
,
{
r
4
-
r10
}
@
store
cp
regs
ldmia
sp
!,
{
r4
-
r10
,
pc
}
ENDPROC
(
cpu_xsc3_do_suspend
)
ENTRY
(
cpu_xsc3_do_resume
)
ldmia
r0
,
{
r
1
,
r4
-
r10
}
@
load
v
:
p
offset
+
cp
regs
ldmia
r0
,
{
r
4
-
r10
}
@
load
cp
regs
mov
ip
,
#
0
mcr
p15
,
0
,
ip
,
c7
,
c7
,
0
@
invalidate
I
&
D
caches
,
BTB
mcr
p15
,
0
,
ip
,
c7
,
c10
,
4
@
drain
write
(
&f
ill
)
buffer
...
...
This diff is collapsed.
Click to expand it.
arch/arm/plat-s5p/clock.c
浏览文件 @
7bfb40b0
...
...
@@ -192,7 +192,7 @@ unsigned long s5p_spdif_get_rate(struct clk *clk)
if
(
IS_ERR
(
pclk
))
return
-
EINVAL
;
rate
=
pclk
->
ops
->
get_rate
(
clk
);
rate
=
pclk
->
ops
->
get_rate
(
p
clk
);
clk_put
(
pclk
);
return
rate
;
...
...
This diff is collapsed.
Click to expand it.
arch/arm/plat-s5p/irq-gpioint.c
浏览文件 @
7bfb40b0
...
...
@@ -23,6 +23,8 @@
#include <plat/gpio-core.h>
#include <plat/gpio-cfg.h>
#include <asm/mach/irq.h>
#define GPIO_BASE(chip) (((unsigned long)(chip)->base) & 0xFFFFF000u)
#define CON_OFFSET 0x700
...
...
@@ -81,6 +83,9 @@ static void s5p_gpioint_handler(unsigned int irq, struct irq_desc *desc)
int
group
,
pend_offset
,
mask_offset
;
unsigned
int
pend
,
mask
;
struct
irq_chip
*
chip
=
irq_get_chip
(
irq
);
chained_irq_enter
(
chip
,
desc
);
for
(
group
=
0
;
group
<
bank
->
nr_groups
;
group
++
)
{
struct
s3c_gpio_chip
*
chip
=
bank
->
chips
[
group
];
if
(
!
chip
)
...
...
@@ -102,6 +107,7 @@ static void s5p_gpioint_handler(unsigned int irq, struct irq_desc *desc)
pend
&=
~
BIT
(
offset
);
}
}
chained_irq_exit
(
chip
,
desc
);
}
static
__init
int
s5p_gpioint_add
(
struct
s3c_gpio_chip
*
chip
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/plat-samsung/include/plat/backlight.h
浏览文件 @
7bfb40b0
...
...
@@ -20,7 +20,7 @@ struct samsung_bl_gpio_info {
int
func
;
};
extern
void
samsung_bl_set
(
struct
samsung_bl_gpio_info
*
gpio_info
,
extern
void
__init
samsung_bl_set
(
struct
samsung_bl_gpio_info
*
gpio_info
,
struct
platform_pwm_backlight_data
*
bl_data
);
#endif
/* __ASM_PLAT_BACKLIGHT_H */
This diff is collapsed.
Click to expand it.
arch/arm/plat-samsung/irq-vic-timer.c
浏览文件 @
7bfb40b0
...
...
@@ -22,9 +22,14 @@
#include <plat/irq-vic-timer.h>
#include <plat/regs-timer.h>
#include <asm/mach/irq.h>
static
void
s3c_irq_demux_vic_timer
(
unsigned
int
irq
,
struct
irq_desc
*
desc
)
{
struct
irq_chip
*
chip
=
irq_get_chip
(
irq
);
chained_irq_enter
(
chip
,
desc
);
generic_handle_irq
((
int
)
desc
->
irq_data
.
handler_data
);
chained_irq_exit
(
chip
,
desc
);
}
/* We assume the IRQ_TIMER0..IRQ_TIMER4 range is continuous. */
...
...
This diff is collapsed.
Click to expand it.
arch/arm/tools/mach-types
浏览文件 @
7bfb40b0
...
...
@@ -351,7 +351,7 @@ centro MACH_CENTRO CENTRO 1944
nokia_rx51 MACH_NOKIA_RX51 NOKIA_RX51 1955
omap_zoom2 MACH_OMAP_ZOOM2 OMAP_ZOOM2 1967
cpuat9260 MACH_CPUAT9260 CPUAT9260 1973
eukrea_cpuimx27 MACH_
CPUIMX27
CPUIMX27 1975
eukrea_cpuimx27 MACH_
EUKREA_CPUIMX27 EUKREA_
CPUIMX27 1975
acs5k MACH_ACS5K ACS5K 1982
snapper_9260 MACH_SNAPPER_9260 SNAPPER_9260 1987
dsm320 MACH_DSM320 DSM320 1988
...
...
@@ -476,8 +476,8 @@ cns3420vb MACH_CNS3420VB CNS3420VB 2776
omap4_panda MACH_OMAP4_PANDA OMAP4_PANDA 2791
ti8168evm MACH_TI8168EVM TI8168EVM 2800
teton_bga MACH_TETON_BGA TETON_BGA 2816
eukrea_cpuimx25sd MACH_EUKREA_CPUIMX25
EUKREA_CPUIMX25
2820
eukrea_cpuimx35sd MACH_EUKREA_CPUIMX35
EUKREA_CPUIMX35
2821
eukrea_cpuimx25sd MACH_EUKREA_CPUIMX25
SD EUKREA_CPUIMX25SD
2820
eukrea_cpuimx35sd MACH_EUKREA_CPUIMX35
SD EUKREA_CPUIMX35SD
2821
eukrea_cpuimx51sd MACH_EUKREA_CPUIMX51SD EUKREA_CPUIMX51SD 2822
eukrea_cpuimx51 MACH_EUKREA_CPUIMX51 EUKREA_CPUIMX51 2823
smdkc210 MACH_SMDKC210 SMDKC210 2838
...
...
This diff is collapsed.
Click to expand it.
arch/parisc/kernel/syscall_table.S
浏览文件 @
7bfb40b0
...
...
@@ -259,7 +259,7 @@
ENTRY_SAME
(
ni_syscall
)
/*
query_module
*/
ENTRY_SAME
(
poll
)
/
*
structs
contain
pointers
and
an
in_addr
...
*/
ENTRY_
COMP
(
nfsservctl
)
ENTRY_
SAME
(
ni_syscall
)
/*
was
nfsservctl
*/
ENTRY_SAME
(
setresgid
)
/*
170
*/
ENTRY_SAME
(
getresgid
)
ENTRY_SAME
(
prctl
)
...
...
This diff is collapsed.
Click to expand it.
arch/powerpc/include/asm/systbl.h
浏览文件 @
7bfb40b0
...
...
@@ -171,7 +171,7 @@ SYSCALL_SPU(setresuid)
SYSCALL_SPU
(
getresuid
)
SYSCALL
(
ni_syscall
)
SYSCALL_SPU
(
poll
)
COMPAT_SYS
(
nfsservct
l
)
SYSCALL
(
ni_syscal
l
)
SYSCALL_SPU
(
setresgid
)
SYSCALL_SPU
(
getresgid
)
COMPAT_SYS_SPU
(
prctl
)
...
...
This diff is collapsed.
Click to expand it.
arch/sh/include/asm/ptrace.h
浏览文件 @
7bfb40b0
...
...
@@ -123,7 +123,7 @@ static inline unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs,
struct
perf_event
;
struct
perf_sample_data
;
extern
void
ptrace_triggered
(
struct
perf_event
*
bp
,
int
nmi
,
extern
void
ptrace_triggered
(
struct
perf_event
*
bp
,
struct
perf_sample_data
*
data
,
struct
pt_regs
*
regs
);
#define task_pt_regs(task) \
...
...
This diff is collapsed.
Click to expand it.
arch/sh/kernel/cpu/sh4a/setup-sh7757.c
浏览文件 @
7bfb40b0
...
...
@@ -15,6 +15,7 @@
#include <linux/serial_sci.h>
#include <linux/io.h>
#include <linux/mm.h>
#include <linux/dma-mapping.h>
#include <linux/sh_timer.h>
#include <linux/sh_dma.h>
...
...
This diff is collapsed.
Click to expand it.
arch/sh/kernel/idle.c
浏览文件 @
7bfb40b0
...
...
@@ -22,7 +22,7 @@
#include <linux/atomic.h>
#include <asm/smp.h>
static
void
(
*
pm_idle
)(
void
);
void
(
*
pm_idle
)(
void
);
static
int
hlt_counter
;
...
...
This diff is collapsed.
Click to expand it.
arch/sh/kernel/traps_32.c
浏览文件 @
7bfb40b0
...
...
@@ -316,6 +316,35 @@ static int handle_unaligned_ins(insn_size_t instruction, struct pt_regs *regs,
break
;
}
break
;
case
9
:
/* mov.w @(disp,PC),Rn */
srcu
=
(
unsigned
char
__user
*
)
regs
->
pc
;
srcu
+=
4
;
srcu
+=
(
instruction
&
0x00FF
)
<<
1
;
dst
=
(
unsigned
char
*
)
rn
;
*
(
unsigned
long
*
)
dst
=
0
;
#if !defined(__LITTLE_ENDIAN__)
dst
+=
2
;
#endif
if
(
ma
->
from
(
dst
,
srcu
,
2
))
goto
fetch_fault
;
sign_extend
(
2
,
dst
);
ret
=
0
;
break
;
case
0xd
:
/* mov.l @(disp,PC),Rn */
srcu
=
(
unsigned
char
__user
*
)(
regs
->
pc
&
~
0x3
);
srcu
+=
4
;
srcu
+=
(
instruction
&
0x00FF
)
<<
2
;
dst
=
(
unsigned
char
*
)
rn
;
*
(
unsigned
long
*
)
dst
=
0
;
if
(
ma
->
from
(
dst
,
srcu
,
4
))
goto
fetch_fault
;
ret
=
0
;
break
;
}
return
ret
;
...
...
@@ -466,6 +495,7 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
case
0x0500
:
/* mov.w @(disp,Rm),R0 */
goto
simple
;
case
0x0B00
:
/* bf lab - no delayslot*/
ret
=
0
;
break
;
case
0x0F00
:
/* bf/s lab */
ret
=
handle_delayslot
(
regs
,
instruction
,
ma
);
...
...
@@ -479,6 +509,7 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
}
break
;
case
0x0900
:
/* bt lab - no delayslot */
ret
=
0
;
break
;
case
0x0D00
:
/* bt/s lab */
ret
=
handle_delayslot
(
regs
,
instruction
,
ma
);
...
...
@@ -494,6 +525,9 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
}
break
;
case
0x9000
:
/* mov.w @(disp,Rm),Rn */
goto
simple
;
case
0xA000
:
/* bra label */
ret
=
handle_delayslot
(
regs
,
instruction
,
ma
);
if
(
ret
==
0
)
...
...
@@ -507,6 +541,9 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
regs
->
pc
+=
SH_PC_12BIT_OFFSET
(
instruction
);
}
break
;
case
0xD000
:
/* mov.l @(disp,Rm),Rn */
goto
simple
;
}
return
ret
;
...
...
This diff is collapsed.
Click to expand it.
arch/sparc/kernel/irq.h
浏览文件 @
7bfb40b0
...
...
@@ -88,7 +88,7 @@ BTFIXUPDEF_CALL(void, set_irq_udt, int)
#define set_irq_udt(cpu) BTFIXUP_CALL(set_irq_udt)(cpu)
/* All SUN4D IPIs are sent on this IRQ, may be shared with hard IRQs */
#define SUN4D_IPI_IRQ 1
4
#define SUN4D_IPI_IRQ 1
3
extern
void
sun4d_ipi_interrupt
(
void
);
...
...
This diff is collapsed.
Click to expand it.
arch/sparc/kernel/setup_64.c
浏览文件 @
7bfb40b0
...
...
@@ -440,8 +440,14 @@ static void __init init_sparc64_elf_hwcap(void)
cap
|=
AV_SPARC_VIS
;
if
(
tlb_type
==
cheetah
||
tlb_type
==
cheetah_plus
)
cap
|=
AV_SPARC_VIS
|
AV_SPARC_VIS2
;
if
(
tlb_type
==
cheetah_plus
)
cap
|=
AV_SPARC_POPC
;
if
(
tlb_type
==
cheetah_plus
)
{
unsigned
long
impl
,
ver
;
__asm__
__volatile__
(
"rdpr %%ver, %0"
:
"=r"
(
ver
));
impl
=
((
ver
>>
32
)
&
0xffff
);
if
(
impl
==
PANTHER_IMPL
)
cap
|=
AV_SPARC_POPC
;
}
if
(
tlb_type
==
hypervisor
)
{
if
(
sun4v_chip_type
==
SUN4V_CHIP_NIAGARA1
)
cap
|=
AV_SPARC_ASI_BLK_INIT
;
...
...
This diff is collapsed.
Click to expand it.
arch/sparc/kernel/systbls_64.S
浏览文件 @
7bfb40b0
...
...
@@ -68,7 +68,7 @@ sys_call_table32:
.
word
compat_sys_fstatfs64
,
sys_llseek
,
sys_mlock
,
sys_munlock
,
sys32_mlockall
/*
240
*/
.
word
sys_munlockall
,
sys32_sched_setparam
,
sys32_sched_getparam
,
sys32_sched_setscheduler
,
sys32_sched_getscheduler
.
word
sys_sched_yield
,
sys32_sched_get_priority_max
,
sys32_sched_get_priority_min
,
sys32_sched_rr_get_interval
,
compat_sys_nanosleep
/*
250
*/
.
word
sys_mremap
,
compat_sys_sysctl
,
sys32_getsid
,
sys_fdatasync
,
sys
32_nfsservct
l
/*
250
*/
.
word
sys_mremap
,
compat_sys_sysctl
,
sys32_getsid
,
sys_fdatasync
,
sys
_nis_syscal
l
.
word
sys32_sync_file_range
,
compat_sys_clock_settime
,
compat_sys_clock_gettime
,
compat_sys_clock_getres
,
sys32_clock_nanosleep
/*
260
*/
.
word
compat_sys_sched_getaffinity
,
compat_sys_sched_setaffinity
,
sys32_timer_settime
,
compat_sys_timer_gettime
,
sys_timer_getoverrun
.
word
sys_timer_delete
,
compat_sys_timer_create
,
sys_ni_syscall
,
compat_sys_io_setup
,
sys_io_destroy
...
...
This diff is collapsed.
Click to expand it.
drivers/bcma/main.c
浏览文件 @
7bfb40b0
...
...
@@ -15,6 +15,7 @@ MODULE_LICENSE("GPL");
static
int
bcma_bus_match
(
struct
device
*
dev
,
struct
device_driver
*
drv
);
static
int
bcma_device_probe
(
struct
device
*
dev
);
static
int
bcma_device_remove
(
struct
device
*
dev
);
static
int
bcma_device_uevent
(
struct
device
*
dev
,
struct
kobj_uevent_env
*
env
);
static
ssize_t
manuf_show
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
...
...
@@ -49,6 +50,7 @@ static struct bus_type bcma_bus_type = {
.
match
=
bcma_bus_match
,
.
probe
=
bcma_device_probe
,
.
remove
=
bcma_device_remove
,
.
uevent
=
bcma_device_uevent
,
.
dev_attrs
=
bcma_device_attrs
,
};
...
...
@@ -227,6 +229,16 @@ static int bcma_device_remove(struct device *dev)
return
0
;
}
static
int
bcma_device_uevent
(
struct
device
*
dev
,
struct
kobj_uevent_env
*
env
)
{
struct
bcma_device
*
core
=
container_of
(
dev
,
struct
bcma_device
,
dev
);
return
add_uevent_var
(
env
,
"MODALIAS=bcma:m%04Xid%04Xrev%02Xcl%02X"
,
core
->
id
.
manuf
,
core
->
id
.
id
,
core
->
id
.
rev
,
core
->
id
.
class
);
}
static
int
__init
bcma_modinit
(
void
)
{
int
err
;
...
...
This diff is collapsed.
Click to expand it.
drivers/bluetooth/ath3k.c
浏览文件 @
7bfb40b0
...
...
@@ -63,6 +63,7 @@ static struct usb_device_id ath3k_table[] = {
/* Atheros AR3011 with sflash firmware*/
{
USB_DEVICE
(
0x0CF3
,
0x3002
)
},
{
USB_DEVICE
(
0x13d3
,
0x3304
)
},
{
USB_DEVICE
(
0x0930
,
0x0215
)
},
/* Atheros AR9285 Malbec with sflash firmware */
{
USB_DEVICE
(
0x03F0
,
0x311D
)
},
...
...
This diff is collapsed.
Click to expand it.
drivers/bluetooth/btusb.c
浏览文件 @
7bfb40b0
...
...
@@ -106,6 +106,7 @@ static struct usb_device_id blacklist_table[] = {
/* Atheros 3011 with sflash firmware */
{
USB_DEVICE
(
0x0cf3
,
0x3002
),
.
driver_info
=
BTUSB_IGNORE
},
{
USB_DEVICE
(
0x13d3
,
0x3304
),
.
driver_info
=
BTUSB_IGNORE
},
{
USB_DEVICE
(
0x0930
,
0x0215
),
.
driver_info
=
BTUSB_IGNORE
},
/* Atheros AR9285 Malbec with sflash firmware */
{
USB_DEVICE
(
0x03f0
,
0x311d
),
.
driver_info
=
BTUSB_IGNORE
},
...
...
@@ -256,7 +257,9 @@ static void btusb_intr_complete(struct urb *urb)
err
=
usb_submit_urb
(
urb
,
GFP_ATOMIC
);
if
(
err
<
0
)
{
if
(
err
!=
-
EPERM
)
/* -EPERM: urb is being killed;
* -ENODEV: device got disconnected */
if
(
err
!=
-
EPERM
&&
err
!=
-
ENODEV
)
BT_ERR
(
"%s urb %p failed to resubmit (%d)"
,
hdev
->
name
,
urb
,
-
err
);
usb_unanchor_urb
(
urb
);
...
...
@@ -341,7 +344,9 @@ static void btusb_bulk_complete(struct urb *urb)
err
=
usb_submit_urb
(
urb
,
GFP_ATOMIC
);
if
(
err
<
0
)
{
if
(
err
!=
-
EPERM
)
/* -EPERM: urb is being killed;
* -ENODEV: device got disconnected */
if
(
err
!=
-
EPERM
&&
err
!=
-
ENODEV
)
BT_ERR
(
"%s urb %p failed to resubmit (%d)"
,
hdev
->
name
,
urb
,
-
err
);
usb_unanchor_urb
(
urb
);
...
...
@@ -431,7 +436,9 @@ static void btusb_isoc_complete(struct urb *urb)
err
=
usb_submit_urb
(
urb
,
GFP_ATOMIC
);
if
(
err
<
0
)
{
if
(
err
!=
-
EPERM
)
/* -EPERM: urb is being killed;
* -ENODEV: device got disconnected */
if
(
err
!=
-
EPERM
&&
err
!=
-
ENODEV
)
BT_ERR
(
"%s urb %p failed to resubmit (%d)"
,
hdev
->
name
,
urb
,
-
err
);
usb_unanchor_urb
(
urb
);
...
...
This diff is collapsed.
Click to expand it.
drivers/clocksource/sh_cmt.c
浏览文件 @
7bfb40b0
...
...
@@ -26,6 +26,7 @@
#include <linux/clk.h>
#include <linux/irq.h>
#include <linux/err.h>
#include <linux/delay.h>
#include <linux/clocksource.h>
#include <linux/clockchips.h>
#include <linux/sh_timer.h>
...
...
@@ -150,13 +151,13 @@ static void sh_cmt_start_stop_ch(struct sh_cmt_priv *p, int start)
static
int
sh_cmt_enable
(
struct
sh_cmt_priv
*
p
,
unsigned
long
*
rate
)
{
int
ret
;
int
k
,
ret
;
/* enable clock */
ret
=
clk_enable
(
p
->
clk
);
if
(
ret
)
{
dev_err
(
&
p
->
pdev
->
dev
,
"cannot enable clock
\n
"
);
return
ret
;
goto
err0
;
}
/* make sure channel is disabled */
...
...
@@ -174,9 +175,38 @@ static int sh_cmt_enable(struct sh_cmt_priv *p, unsigned long *rate)
sh_cmt_write
(
p
,
CMCOR
,
0xffffffff
);
sh_cmt_write
(
p
,
CMCNT
,
0
);
/*
* According to the sh73a0 user's manual, as CMCNT can be operated
* only by the RCLK (Pseudo 32 KHz), there's one restriction on
* modifying CMCNT register; two RCLK cycles are necessary before
* this register is either read or any modification of the value
* it holds is reflected in the LSI's actual operation.
*
* While at it, we're supposed to clear out the CMCNT as of this
* moment, so make sure it's processed properly here. This will
* take RCLKx2 at maximum.
*/
for
(
k
=
0
;
k
<
100
;
k
++
)
{
if
(
!
sh_cmt_read
(
p
,
CMCNT
))
break
;
udelay
(
1
);
}
if
(
sh_cmt_read
(
p
,
CMCNT
))
{
dev_err
(
&
p
->
pdev
->
dev
,
"cannot clear CMCNT
\n
"
);
ret
=
-
ETIMEDOUT
;
goto
err1
;
}
/* enable channel */
sh_cmt_start_stop_ch
(
p
,
1
);
return
0
;
err1:
/* stop clock */
clk_disable
(
p
->
clk
);
err0:
return
ret
;
}
static
void
sh_cmt_disable
(
struct
sh_cmt_priv
*
p
)
...
...
This diff is collapsed.
Click to expand it.
drivers/gpu/drm/drm_crtc.c
浏览文件 @
7bfb40b0
...
...
@@ -499,6 +499,7 @@ void drm_connector_cleanup(struct drm_connector *connector)
mutex_lock
(
&
dev
->
mode_config
.
mutex
);
drm_mode_object_put
(
dev
,
&
connector
->
base
);
list_del
(
&
connector
->
head
);
dev
->
mode_config
.
num_connector
--
;
mutex_unlock
(
&
dev
->
mode_config
.
mutex
);
}
EXPORT_SYMBOL
(
drm_connector_cleanup
);
...
...
@@ -529,6 +530,7 @@ void drm_encoder_cleanup(struct drm_encoder *encoder)
mutex_lock
(
&
dev
->
mode_config
.
mutex
);
drm_mode_object_put
(
dev
,
&
encoder
->
base
);
list_del
(
&
encoder
->
head
);
dev
->
mode_config
.
num_encoder
--
;
mutex_unlock
(
&
dev
->
mode_config
.
mutex
);
}
EXPORT_SYMBOL
(
drm_encoder_cleanup
);
...
...
This diff is collapsed.
Click to expand it.
drivers/gpu/drm/radeon/evergreen.c
浏览文件 @
7bfb40b0
...
...
@@ -1357,6 +1357,7 @@ int evergreen_cp_resume(struct radeon_device *rdev)
SOFT_RESET_PA
|
SOFT_RESET_SH
|
SOFT_RESET_VGT
|
SOFT_RESET_SPI
|
SOFT_RESET_SX
));
RREG32
(
GRBM_SOFT_RESET
);
mdelay
(
15
);
...
...
This diff is collapsed.
Click to expand it.
drivers/gpu/drm/radeon/ni.c
浏览文件 @
7bfb40b0
...
...
@@ -1159,6 +1159,7 @@ int cayman_cp_resume(struct radeon_device *rdev)
SOFT_RESET_PA
|
SOFT_RESET_SH
|
SOFT_RESET_VGT
|
SOFT_RESET_SPI
|
SOFT_RESET_SX
));
RREG32
(
GRBM_SOFT_RESET
);
mdelay
(
15
);
...
...
This diff is collapsed.
Click to expand it.
drivers/gpu/drm/radeon/radeon_combios.c
浏览文件 @
7bfb40b0
...
...
@@ -3298,6 +3298,14 @@ void radeon_combios_asic_init(struct drm_device *dev)
rdev
->
pdev
->
subsystem_device
==
0x30a4
)
return
;
/* quirk for rs4xx Compaq Presario V5245EU laptop to make it resume
* - it hangs on resume inside the dynclk 1 table.
*/
if
(
rdev
->
family
==
CHIP_RS480
&&
rdev
->
pdev
->
subsystem_vendor
==
0x103c
&&
rdev
->
pdev
->
subsystem_device
==
0x30ae
)
return
;
/* DYN CLK 1 */
table
=
combios_get_table_offset
(
dev
,
COMBIOS_DYN_CLK_1_TABLE
);
if
(
table
)
...
...
This diff is collapsed.
Click to expand it.
drivers/net/can/ti_hecc.c
浏览文件 @
7bfb40b0
...
...
@@ -503,9 +503,9 @@ static netdev_tx_t ti_hecc_xmit(struct sk_buff *skb, struct net_device *ndev)
spin_unlock_irqrestore
(
&
priv
->
mbx_lock
,
flags
);
/* Prepare mailbox for transmission */
data
=
cf
->
can_dlc
|
(
get_tx_head_prio
(
priv
)
<<
8
);
if
(
cf
->
can_id
&
CAN_RTR_FLAG
)
/* Remote transmission request */
data
|=
HECC_CANMCF_RTR
;
data
|=
get_tx_head_prio
(
priv
)
<<
8
;
hecc_write_mbx
(
priv
,
mbxno
,
HECC_CANMCF
,
data
);
if
(
cf
->
can_id
&
CAN_EFF_FLAG
)
/* Extended frame format */
...
...
@@ -923,6 +923,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
priv
->
can
.
do_get_state
=
ti_hecc_get_state
;
priv
->
can
.
ctrlmode_supported
=
CAN_CTRLMODE_3_SAMPLES
;
spin_lock_init
(
&
priv
->
mbx_lock
);
ndev
->
irq
=
irq
->
start
;
ndev
->
flags
|=
IFF_ECHO
;
platform_set_drvdata
(
pdev
,
ndev
);
...
...
This diff is collapsed.
Click to expand it.
drivers/net/cassini.c
浏览文件 @
7bfb40b0
...
...
@@ -2452,14 +2452,13 @@ static irqreturn_t cas_interruptN(int irq, void *dev_id)
struct
net_device
*
dev
=
dev_id
;
struct
cas
*
cp
=
netdev_priv
(
dev
);
unsigned
long
flags
;
int
ring
;
int
ring
=
(
irq
==
cp
->
pci_irq_INTC
)
?
2
:
3
;
u32
status
=
readl
(
cp
->
regs
+
REG_PLUS_INTRN_STATUS
(
ring
));
/* check for shared irq */
if
(
status
==
0
)
return
IRQ_NONE
;
ring
=
(
irq
==
cp
->
pci_irq_INTC
)
?
2
:
3
;
spin_lock_irqsave
(
&
cp
->
lock
,
flags
);
if
(
status
&
INTR_RX_DONE_ALT
)
{
/* handle rx separately */
#ifdef USE_NAPI
...
...
This diff is collapsed.
Click to expand it.
drivers/net/ibmveth.c
浏览文件 @
7bfb40b0
...
...
@@ -395,7 +395,7 @@ static inline struct sk_buff *ibmveth_rxq_get_buffer(struct ibmveth_adapter *ada
}
/* recycle the current buffer on the rx queue */
static
void
ibmveth_rxq_recycle_buffer
(
struct
ibmveth_adapter
*
adapter
)
static
int
ibmveth_rxq_recycle_buffer
(
struct
ibmveth_adapter
*
adapter
)
{
u32
q_index
=
adapter
->
rx_queue
.
index
;
u64
correlator
=
adapter
->
rx_queue
.
queue_addr
[
q_index
].
correlator
;
...
...
@@ -403,6 +403,7 @@ static void ibmveth_rxq_recycle_buffer(struct ibmveth_adapter *adapter)
unsigned
int
index
=
correlator
&
0xffffffffUL
;
union
ibmveth_buf_desc
desc
;
unsigned
long
lpar_rc
;
int
ret
=
1
;
BUG_ON
(
pool
>=
IBMVETH_NUM_BUFF_POOLS
);
BUG_ON
(
index
>=
adapter
->
rx_buff_pool
[
pool
].
size
);
...
...
@@ -410,7 +411,7 @@ static void ibmveth_rxq_recycle_buffer(struct ibmveth_adapter *adapter)
if
(
!
adapter
->
rx_buff_pool
[
pool
].
active
)
{
ibmveth_rxq_harvest_buffer
(
adapter
);
ibmveth_free_buffer_pool
(
adapter
,
&
adapter
->
rx_buff_pool
[
pool
]);
return
;
goto
out
;
}
desc
.
fields
.
flags_len
=
IBMVETH_BUF_VALID
|
...
...
@@ -423,12 +424,16 @@ static void ibmveth_rxq_recycle_buffer(struct ibmveth_adapter *adapter)
netdev_dbg
(
adapter
->
netdev
,
"h_add_logical_lan_buffer failed "
"during recycle rc=%ld"
,
lpar_rc
);
ibmveth_remove_buffer_from_pool
(
adapter
,
adapter
->
rx_queue
.
queue_addr
[
adapter
->
rx_queue
.
index
].
correlator
);
ret
=
0
;
}
if
(
++
adapter
->
rx_queue
.
index
==
adapter
->
rx_queue
.
num_slots
)
{
adapter
->
rx_queue
.
index
=
0
;
adapter
->
rx_queue
.
toggle
=
!
adapter
->
rx_queue
.
toggle
;
}
out:
return
ret
;
}
static
void
ibmveth_rxq_harvest_buffer
(
struct
ibmveth_adapter
*
adapter
)
...
...
@@ -1084,8 +1089,9 @@ static int ibmveth_poll(struct napi_struct *napi, int budget)
if
(
rx_flush
)
ibmveth_flush_buffer
(
skb
->
data
,
length
+
offset
);
if
(
!
ibmveth_rxq_recycle_buffer
(
adapter
))
kfree_skb
(
skb
);
skb
=
new_skb
;
ibmveth_rxq_recycle_buffer
(
adapter
);
}
else
{
ibmveth_rxq_harvest_buffer
(
adapter
);
skb_reserve
(
skb
,
offset
);
...
...
This diff is collapsed.
Click to expand it.
drivers/net/phy/national.c
浏览文件 @
7bfb40b0
...
...
@@ -25,8 +25,9 @@
/* DP83865 phy identifier values */
#define DP83865_PHY_ID 0x20005c7a
#define DP83865_INT_MASK_REG 0x15
#define DP83865_INT_MASK_STATUS 0x14
#define DP83865_INT_STATUS 0x14
#define DP83865_INT_MASK 0x15
#define DP83865_INT_CLEAR 0x17
#define DP83865_INT_REMOTE_FAULT 0x0008
#define DP83865_INT_ANE_COMPLETED 0x0010
...
...
@@ -68,21 +69,25 @@ static int ns_config_intr(struct phy_device *phydev)
int
err
;
if
(
phydev
->
interrupts
==
PHY_INTERRUPT_ENABLED
)
err
=
phy_write
(
phydev
,
DP83865_INT_MASK
_REG
,
err
=
phy_write
(
phydev
,
DP83865_INT_MASK
,
DP83865_INT_MASK_DEFAULT
);
else
err
=
phy_write
(
phydev
,
DP83865_INT_MASK
_REG
,
0
);
err
=
phy_write
(
phydev
,
DP83865_INT_MASK
,
0
);
return
err
;
}
static
int
ns_ack_interrupt
(
struct
phy_device
*
phydev
)
{
int
ret
=
phy_read
(
phydev
,
DP83865_INT_
MASK_
STATUS
);
int
ret
=
phy_read
(
phydev
,
DP83865_INT_STATUS
);
if
(
ret
<
0
)
return
ret
;
return
0
;
/* Clear the interrupt status bit by writing a “1”
* to the corresponding bit in INT_CLEAR (2:0 are reserved) */
ret
=
phy_write
(
phydev
,
DP83865_INT_CLEAR
,
ret
&
~
0x7
);
return
ret
;
}
static
void
ns_giga_speed_fallback
(
struct
phy_device
*
phydev
,
int
mode
)
...
...
This diff is collapsed.
Click to expand it.
drivers/net/sh_eth.c
浏览文件 @
7bfb40b0
...
...
@@ -31,6 +31,7 @@
#include <linux/phy.h>
#include <linux/cache.h>
#include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/pm_runtime.h>
#include <linux/slab.h>
#include <linux/ethtool.h>
...
...
This diff is collapsed.
Click to expand it.
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
浏览文件 @
7bfb40b0
...
...
@@ -69,7 +69,7 @@ static int ar9003_hw_power_interpolate(int32_t x,
static
const
struct
ar9300_eeprom
ar9300_default
=
{
.
eepromVersion
=
2
,
.
templateVersion
=
2
,
.
macAddr
=
{
1
,
2
,
3
,
4
,
5
,
6
},
.
macAddr
=
{
0
,
2
,
3
,
4
,
5
,
6
},
.
custData
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
.
baseEepHeader
=
{
...
...
This diff is collapsed.
Click to expand it.
drivers/net/wireless/ath/ath9k/main.c
浏览文件 @
7bfb40b0
...
...
@@ -2283,7 +2283,11 @@ static void ath9k_set_coverage_class(struct ieee80211_hw *hw, u8 coverage_class)
mutex_lock
(
&
sc
->
mutex
);
ah
->
coverage_class
=
coverage_class
;
ath9k_ps_wakeup
(
sc
);
ath9k_hw_init_global_settings
(
ah
);
ath9k_ps_restore
(
sc
);
mutex_unlock
(
&
sc
->
mutex
);
}
...
...
This diff is collapsed.
Click to expand it.
drivers/net/wireless/ath/carl9170/main.c
浏览文件 @
7bfb40b0
...
...
@@ -1066,8 +1066,10 @@ static int carl9170_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
* the high througput speed in 802.11n networks.
*/
if
(
!
is_main_vif
(
ar
,
vif
))
if
(
!
is_main_vif
(
ar
,
vif
))
{
mutex_lock
(
&
ar
->
mutex
);
goto
err_softw
;
}
/*
* While the hardware supports *catch-all* key, for offloading
...
...
This diff is collapsed.
Click to expand it.
drivers/net/wireless/rt2x00/rt2x00usb.c
浏览文件 @
7bfb40b0
...
...
@@ -871,18 +871,8 @@ int rt2x00usb_suspend(struct usb_interface *usb_intf, pm_message_t state)
{
struct
ieee80211_hw
*
hw
=
usb_get_intfdata
(
usb_intf
);
struct
rt2x00_dev
*
rt2x00dev
=
hw
->
priv
;
int
retval
;
retval
=
rt2x00lib_suspend
(
rt2x00dev
,
state
);
if
(
retval
)
return
retval
;
/*
* Decrease usbdev refcount.
*/
usb_put_dev
(
interface_to_usbdev
(
usb_intf
));
return
0
;
return
rt2x00lib_suspend
(
rt2x00dev
,
state
);
}
EXPORT_SYMBOL_GPL
(
rt2x00usb_suspend
);
...
...
@@ -891,8 +881,6 @@ int rt2x00usb_resume(struct usb_interface *usb_intf)
struct
ieee80211_hw
*
hw
=
usb_get_intfdata
(
usb_intf
);
struct
rt2x00_dev
*
rt2x00dev
=
hw
->
priv
;
usb_get_dev
(
interface_to_usbdev
(
usb_intf
));
return
rt2x00lib_resume
(
rt2x00dev
);
}
EXPORT_SYMBOL_GPL
(
rt2x00usb_resume
);
...
...
This diff is collapsed.
Click to expand it.
drivers/net/wireless/wl12xx/main.c
浏览文件 @
7bfb40b0
...
...
@@ -4283,6 +4283,7 @@ int wl1271_init_ieee80211(struct wl1271 *wl)
wl
->
hw
->
wiphy
->
interface_modes
=
BIT
(
NL80211_IFTYPE_STATION
)
|
BIT
(
NL80211_IFTYPE_ADHOC
)
|
BIT
(
NL80211_IFTYPE_AP
);
wl
->
hw
->
wiphy
->
max_scan_ssids
=
1
;
wl
->
hw
->
wiphy
->
max_sched_scan_ssids
=
1
;
/*
* Maximum length of elements in scanning probe request templates
* should be the maximum length possible for a template, without
...
...
This diff is collapsed.
Click to expand it.
drivers/net/wireless/wl12xx/sdio.c
浏览文件 @
7bfb40b0
...
...
@@ -164,7 +164,7 @@ static int wl1271_sdio_power_on(struct wl1271 *wl)
/* If enabled, tell runtime PM not to power off the card */
if
(
pm_runtime_enabled
(
&
func
->
dev
))
{
ret
=
pm_runtime_get_sync
(
&
func
->
dev
);
if
(
ret
)
if
(
ret
<
0
)
goto
out
;
}
else
{
/* Runtime PM is disabled: power up the card manually */
...
...
This diff is collapsed.
Click to expand it.
drivers/net/wireless/wl12xx/testmode.c
浏览文件 @
7bfb40b0
...
...
@@ -36,7 +36,6 @@ enum wl1271_tm_commands {
WL1271_TM_CMD_TEST
,
WL1271_TM_CMD_INTERROGATE
,
WL1271_TM_CMD_CONFIGURE
,
WL1271_TM_CMD_NVS_PUSH
,
WL1271_TM_CMD_SET_PLT_MODE
,
WL1271_TM_CMD_RECOVER
,
...
...
@@ -190,48 +189,6 @@ static int wl1271_tm_cmd_configure(struct wl1271 *wl, struct nlattr *tb[])
return
0
;
}
static
int
wl1271_tm_cmd_nvs_push
(
struct
wl1271
*
wl
,
struct
nlattr
*
tb
[])
{
int
ret
=
0
;
size_t
len
;
void
*
buf
;
wl1271_debug
(
DEBUG_TESTMODE
,
"testmode cmd nvs push"
);
if
(
!
tb
[
WL1271_TM_ATTR_DATA
])
return
-
EINVAL
;
buf
=
nla_data
(
tb
[
WL1271_TM_ATTR_DATA
]);
len
=
nla_len
(
tb
[
WL1271_TM_ATTR_DATA
]);
mutex_lock
(
&
wl
->
mutex
);
kfree
(
wl
->
nvs
);
if
((
wl
->
chip
.
id
==
CHIP_ID_1283_PG20
)
&&
(
len
!=
sizeof
(
struct
wl128x_nvs_file
)))
return
-
EINVAL
;
else
if
(
len
!=
sizeof
(
struct
wl1271_nvs_file
))
return
-
EINVAL
;
wl
->
nvs
=
kzalloc
(
len
,
GFP_KERNEL
);
if
(
!
wl
->
nvs
)
{
wl1271_error
(
"could not allocate memory for the nvs file"
);
ret
=
-
ENOMEM
;
goto
out
;
}
memcpy
(
wl
->
nvs
,
buf
,
len
);
wl
->
nvs_len
=
len
;
wl1271_debug
(
DEBUG_TESTMODE
,
"testmode pushed nvs"
);
out:
mutex_unlock
(
&
wl
->
mutex
);
return
ret
;
}
static
int
wl1271_tm_cmd_set_plt_mode
(
struct
wl1271
*
wl
,
struct
nlattr
*
tb
[])
{
u32
val
;
...
...
@@ -288,8 +245,6 @@ int wl1271_tm_cmd(struct ieee80211_hw *hw, void *data, int len)
return
wl1271_tm_cmd_interrogate
(
wl
,
tb
);
case
WL1271_TM_CMD_CONFIGURE
:
return
wl1271_tm_cmd_configure
(
wl
,
tb
);
case
WL1271_TM_CMD_NVS_PUSH
:
return
wl1271_tm_cmd_nvs_push
(
wl
,
tb
);
case
WL1271_TM_CMD_SET_PLT_MODE
:
return
wl1271_tm_cmd_set_plt_mode
(
wl
,
tb
);
case
WL1271_TM_CMD_RECOVER
:
...
...
This diff is collapsed.
Click to expand it.
drivers/sh/intc/chip.c
浏览文件 @
7bfb40b0
...
...
@@ -186,6 +186,9 @@ static unsigned char intc_irq_sense_table[IRQ_TYPE_SENSE_MASK + 1] = {
!defined(CONFIG_CPU_SUBTYPE_SH7709)
[
IRQ_TYPE_LEVEL_HIGH
]
=
VALID
(
3
),
#endif
#if defined(CONFIG_ARCH_SH7372)
[
IRQ_TYPE_EDGE_BOTH
]
=
VALID
(
4
),
#endif
};
static
int
intc_set_type
(
struct
irq_data
*
data
,
unsigned
int
type
)
...
...
This diff is collapsed.
Click to expand it.
drivers/tty/serial/sh-sci.c
浏览文件 @
7bfb40b0
...
...
@@ -47,6 +47,7 @@
#include <linux/ctype.h>
#include <linux/err.h>
#include <linux/dmaengine.h>
#include <linux/dma-mapping.h>
#include <linux/scatterlist.h>
#include <linux/slab.h>
...
...
@@ -95,6 +96,12 @@ struct sci_port {
#endif
struct
notifier_block
freq_transition
;
#ifdef CONFIG_SERIAL_SH_SCI_CONSOLE
unsigned
short
saved_smr
;
unsigned
short
saved_fcr
;
unsigned
char
saved_brr
;
#endif
};
/* Function prototypes */
...
...
@@ -1076,7 +1083,7 @@ static unsigned int sci_get_mctrl(struct uart_port *port)
/* This routine is used for getting signals of: DTR, DCD, DSR, RI,
and CTS/RTS */
return
TIOCM_DTR
|
TIOCM_RTS
|
TIOCM_DSR
;
return
TIOCM_DTR
|
TIOCM_RTS
|
TIOCM_
CTS
|
TIOCM_
DSR
;
}
#ifdef CONFIG_SERIAL_SH_SCI_DMA
...
...
@@ -1633,11 +1640,25 @@ static unsigned int sci_scbrr_calc(unsigned int algo_id, unsigned int bps,
return
((
freq
+
16
*
bps
)
/
(
32
*
bps
)
-
1
);
}
static
void
sci_reset
(
struct
uart_port
*
port
)
{
unsigned
int
status
;
do
{
status
=
sci_in
(
port
,
SCxSR
);
}
while
(
!
(
status
&
SCxSR_TEND
(
port
)));
sci_out
(
port
,
SCSCR
,
0x00
);
/* TE=0, RE=0, CKE1=0 */
if
(
port
->
type
!=
PORT_SCI
)
sci_out
(
port
,
SCFCR
,
SCFCR_RFRST
|
SCFCR_TFRST
);
}
static
void
sci_set_termios
(
struct
uart_port
*
port
,
struct
ktermios
*
termios
,
struct
ktermios
*
old
)
{
struct
sci_port
*
s
=
to_sci_port
(
port
);
unsigned
int
status
,
baud
,
smr_val
,
max_baud
;
unsigned
int
baud
,
smr_val
,
max_baud
;
int
t
=
-
1
;
u16
scfcr
=
0
;
...
...
@@ -1657,14 +1678,7 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
sci_port_enable
(
s
);
do
{
status
=
sci_in
(
port
,
SCxSR
);
}
while
(
!
(
status
&
SCxSR_TEND
(
port
)));
sci_out
(
port
,
SCSCR
,
0x00
);
/* TE=0, RE=0, CKE1=0 */
if
(
port
->
type
!=
PORT_SCI
)
sci_out
(
port
,
SCFCR
,
scfcr
|
SCFCR_RFRST
|
SCFCR_TFRST
);
sci_reset
(
port
);
smr_val
=
sci_in
(
port
,
SCSMR
)
&
3
;
...
...
@@ -2037,7 +2051,8 @@ static int __devinit serial_console_setup(struct console *co, char *options)
if
(
options
)
uart_parse_options
(
options
,
&
baud
,
&
parity
,
&
bits
,
&
flow
);
/* TODO: disable clock */
sci_port_disable
(
sci_port
);
return
uart_set_options
(
port
,
co
,
baud
,
parity
,
bits
,
flow
);
}
...
...
@@ -2080,6 +2095,36 @@ static int __devinit sci_probe_earlyprintk(struct platform_device *pdev)
return
0
;
}
#define uart_console(port) ((port)->cons->index == (port)->line)
static
int
sci_runtime_suspend
(
struct
device
*
dev
)
{
struct
sci_port
*
sci_port
=
dev_get_drvdata
(
dev
);
struct
uart_port
*
port
=
&
sci_port
->
port
;
if
(
uart_console
(
port
))
{
sci_port
->
saved_smr
=
sci_in
(
port
,
SCSMR
);
sci_port
->
saved_brr
=
sci_in
(
port
,
SCBRR
);
sci_port
->
saved_fcr
=
sci_in
(
port
,
SCFCR
);
}
return
0
;
}
static
int
sci_runtime_resume
(
struct
device
*
dev
)
{
struct
sci_port
*
sci_port
=
dev_get_drvdata
(
dev
);
struct
uart_port
*
port
=
&
sci_port
->
port
;
if
(
uart_console
(
port
))
{
sci_reset
(
port
);
sci_out
(
port
,
SCSMR
,
sci_port
->
saved_smr
);
sci_out
(
port
,
SCBRR
,
sci_port
->
saved_brr
);
sci_out
(
port
,
SCFCR
,
sci_port
->
saved_fcr
);
sci_out
(
port
,
SCSCR
,
sci_port
->
cfg
->
scscr
);
}
return
0
;
}
#define SCI_CONSOLE (&serial_console)
#else
...
...
@@ -2089,6 +2134,8 @@ static inline int __devinit sci_probe_earlyprintk(struct platform_device *pdev)
}
#define SCI_CONSOLE NULL
#define sci_runtime_suspend NULL
#define sci_runtime_resume NULL
#endif
/* CONFIG_SERIAL_SH_SCI_CONSOLE */
...
...
@@ -2204,6 +2251,8 @@ static int sci_resume(struct device *dev)
}
static
const
struct
dev_pm_ops
sci_dev_pm_ops
=
{
.
runtime_suspend
=
sci_runtime_suspend
,
.
runtime_resume
=
sci_runtime_resume
,
.
suspend
=
sci_suspend
,
.
resume
=
sci_resume
,
};
...
...
This diff is collapsed.
Click to expand it.
include/net/cfg80211.h
浏览文件 @
7bfb40b0
...
...
@@ -1865,6 +1865,9 @@ struct wiphy {
* you need use set_wiphy_dev() (see below) */
struct
device
dev
;
/* protects ->resume, ->suspend sysfs callbacks against unregister hw */
bool
registered
;
/* dir in debugfs: ieee80211/<wiphyname> */
struct
dentry
*
debugfsdir
;
...
...
This diff is collapsed.
Click to expand it.
lib/Makefile
浏览文件 @
7bfb40b0
...
...
@@ -12,7 +12,7 @@ lib-y := ctype.o string.o vsprintf.o cmdline.o \
idr.o int_sqrt.o extable.o prio_tree.o
\
sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o
\
proportions.o prio_heap.o ratelimit.o show_mem.o
\
is_single_threaded.o plist.o decompress.o
find_next_bit.o
is_single_threaded.o plist.o decompress.o
lib-$(CONFIG_MMU)
+=
ioremap.o
lib-$(CONFIG_SMP)
+=
cpumask.o
...
...
@@ -22,7 +22,7 @@ lib-y += kobject.o kref.o klist.o
obj-y
+=
bcd.o div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o
\
bust_spinlocks.o hexdump.o kasprintf.o bitmap.o scatterlist.o
\
string_helpers.o gcd.o lcm.o list_sort.o uuid.o flex_array.o
\
bsearch.o find_last_bit.o
bsearch.o find_last_bit.o
find_next_bit.o
obj-y
+=
kstrtox.o
obj-$(CONFIG_TEST_KSTRTOX)
+=
test-kstrtox.o
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/af_bluetooth.c
浏览文件 @
7bfb40b0
...
...
@@ -494,9 +494,8 @@ int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo)
BT_DBG
(
"sk %p"
,
sk
);
add_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
set_current_state
(
TASK_INTERRUPTIBLE
);
while
(
sk
->
sk_state
!=
state
)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
if
(
!
timeo
)
{
err
=
-
EINPROGRESS
;
break
;
...
...
@@ -510,12 +509,13 @@ int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo)
release_sock
(
sk
);
timeo
=
schedule_timeout
(
timeo
);
lock_sock
(
sk
);
set_current_state
(
TASK_INTERRUPTIBLE
);
err
=
sock_error
(
sk
);
if
(
err
)
break
;
}
set_current_state
(
TASK_RUNNING
);
__
set_current_state
(
TASK_RUNNING
);
remove_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
return
err
;
}
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/bnep/bnep.h
浏览文件 @
7bfb40b0
...
...
@@ -155,6 +155,7 @@ struct bnep_session {
unsigned
int
role
;
unsigned
long
state
;
unsigned
long
flags
;
atomic_t
terminate
;
struct
task_struct
*
task
;
struct
ethhdr
eh
;
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/bnep/core.c
浏览文件 @
7bfb40b0
...
...
@@ -484,9 +484,11 @@ static int bnep_session(void *arg)
init_waitqueue_entry
(
&
wait
,
current
);
add_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
while
(
!
kthread_should_stop
()
)
{
while
(
1
)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
if
(
atomic_read
(
&
s
->
terminate
))
break
;
/* RX */
while
((
skb
=
skb_dequeue
(
&
sk
->
sk_receive_queue
)))
{
skb_orphan
(
skb
);
...
...
@@ -504,7 +506,7 @@ static int bnep_session(void *arg)
schedule
();
}
set_current_state
(
TASK_RUNNING
);
__
set_current_state
(
TASK_RUNNING
);
remove_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
/* Cleanup session */
...
...
@@ -640,9 +642,10 @@ int bnep_del_connection(struct bnep_conndel_req *req)
down_read
(
&
bnep_session_sem
);
s
=
__bnep_get_session
(
req
->
dst
);
if
(
s
)
kthread_stop
(
s
->
task
);
else
if
(
s
)
{
atomic_inc
(
&
s
->
terminate
);
wake_up_process
(
s
->
task
);
}
else
err
=
-
ENOENT
;
up_read
(
&
bnep_session_sem
);
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/cmtp/capi.c
浏览文件 @
7bfb40b0
...
...
@@ -386,7 +386,8 @@ static void cmtp_reset_ctr(struct capi_ctr *ctrl)
capi_ctr_down
(
ctrl
);
kthread_stop
(
session
->
task
);
atomic_inc
(
&
session
->
terminate
);
wake_up_process
(
session
->
task
);
}
static
void
cmtp_register_appl
(
struct
capi_ctr
*
ctrl
,
__u16
appl
,
capi_register_params
*
rp
)
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/cmtp/cmtp.h
浏览文件 @
7bfb40b0
...
...
@@ -81,6 +81,7 @@ struct cmtp_session {
char
name
[
BTNAMSIZ
];
atomic_t
terminate
;
struct
task_struct
*
task
;
wait_queue_head_t
wait
;
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/cmtp/core.c
浏览文件 @
7bfb40b0
...
...
@@ -292,9 +292,11 @@ static int cmtp_session(void *arg)
init_waitqueue_entry
(
&
wait
,
current
);
add_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
while
(
!
kthread_should_stop
()
)
{
while
(
1
)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
if
(
atomic_read
(
&
session
->
terminate
))
break
;
if
(
sk
->
sk_state
!=
BT_CONNECTED
)
break
;
...
...
@@ -307,7 +309,7 @@ static int cmtp_session(void *arg)
schedule
();
}
set_current_state
(
TASK_RUNNING
);
__
set_current_state
(
TASK_RUNNING
);
remove_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
down_write
(
&
cmtp_session_sem
);
...
...
@@ -380,16 +382,17 @@ int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock)
if
(
!
(
session
->
flags
&
(
1
<<
CMTP_LOOPBACK
)))
{
err
=
cmtp_attach_device
(
session
);
if
(
err
<
0
)
goto
detach
;
if
(
err
<
0
)
{
atomic_inc
(
&
session
->
terminate
);
wake_up_process
(
session
->
task
);
up_write
(
&
cmtp_session_sem
);
return
err
;
}
}
up_write
(
&
cmtp_session_sem
);
return
0
;
detach:
cmtp_detach_device
(
session
);
unlink:
__cmtp_unlink_session
(
session
);
...
...
@@ -414,7 +417,8 @@ int cmtp_del_connection(struct cmtp_conndel_req *req)
skb_queue_purge
(
&
session
->
transmit
);
/* Stop session thread */
kthread_stop
(
session
->
task
);
atomic_inc
(
&
session
->
terminate
);
wake_up_process
(
session
->
task
);
}
else
err
=
-
ENOENT
;
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/hci_core.c
浏览文件 @
7bfb40b0
...
...
@@ -1209,7 +1209,6 @@ static void hci_cmd_timer(unsigned long arg)
BT_ERR
(
"%s command tx timeout"
,
hdev
->
name
);
atomic_set
(
&
hdev
->
cmd_cnt
,
1
);
clear_bit
(
HCI_RESET
,
&
hdev
->
flags
);
tasklet_schedule
(
&
hdev
->
cmd_task
);
}
...
...
@@ -1327,7 +1326,7 @@ int hci_blacklist_add(struct hci_dev *hdev, bdaddr_t *bdaddr)
entry
=
kzalloc
(
sizeof
(
struct
bdaddr_list
),
GFP_KERNEL
);
if
(
!
entry
)
{
return
-
ENOMEM
;
err
=
-
ENOMEM
;
goto
err
;
}
...
...
@@ -2408,7 +2407,10 @@ static void hci_cmd_task(unsigned long arg)
if
(
hdev
->
sent_cmd
)
{
atomic_dec
(
&
hdev
->
cmd_cnt
);
hci_send_frame
(
skb
);
mod_timer
(
&
hdev
->
cmd_timer
,
if
(
test_bit
(
HCI_RESET
,
&
hdev
->
flags
))
del_timer
(
&
hdev
->
cmd_timer
);
else
mod_timer
(
&
hdev
->
cmd_timer
,
jiffies
+
msecs_to_jiffies
(
HCI_CMD_TIMEOUT
));
}
else
{
skb_queue_head
(
&
hdev
->
cmd_q
,
skb
);
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/hidp/core.c
浏览文件 @
7bfb40b0
...
...
@@ -764,6 +764,7 @@ static int hidp_session(void *arg)
up_write
(
&
hidp_session_sem
);
kfree
(
session
->
rd_data
);
kfree
(
session
);
return
0
;
}
...
...
@@ -841,7 +842,8 @@ static int hidp_setup_input(struct hidp_session *session,
err
=
input_register_device
(
input
);
if
(
err
<
0
)
{
hci_conn_put_device
(
session
->
conn
);
input_free_device
(
input
);
session
->
input
=
NULL
;
return
err
;
}
...
...
@@ -1044,8 +1046,12 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock,
}
err
=
hid_add_device
(
session
->
hid
);
if
(
err
<
0
)
goto
err_add_device
;
if
(
err
<
0
)
{
atomic_inc
(
&
session
->
terminate
);
wake_up_process
(
session
->
task
);
up_write
(
&
hidp_session_sem
);
return
err
;
}
if
(
session
->
input
)
{
hidp_send_ctrl_message
(
session
,
...
...
@@ -1059,12 +1065,6 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock,
up_write
(
&
hidp_session_sem
);
return
0
;
err_add_device:
hid_destroy_device
(
session
->
hid
);
session
->
hid
=
NULL
;
atomic_inc
(
&
session
->
terminate
);
wake_up_process
(
session
->
task
);
unlink:
hidp_del_timer
(
session
);
...
...
@@ -1090,7 +1090,6 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock,
failed:
up_write
(
&
hidp_session_sem
);
input_free_device
(
session
->
input
);
kfree
(
session
);
return
err
;
}
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/l2cap_core.c
浏览文件 @
7bfb40b0
...
...
@@ -1159,9 +1159,8 @@ int __l2cap_wait_ack(struct sock *sk)
int
timeo
=
HZ
/
5
;
add_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
while
((
chan
->
unacked_frames
>
0
&&
chan
->
conn
))
{
set_current_state
(
TASK_INTERRUPTIBLE
);
set_current_state
(
TASK_INTERRUPTIBLE
);
while
(
chan
->
unacked_frames
>
0
&&
chan
->
conn
)
{
if
(
!
timeo
)
timeo
=
HZ
/
5
;
...
...
@@ -1173,6 +1172,7 @@ int __l2cap_wait_ack(struct sock *sk)
release_sock
(
sk
);
timeo
=
schedule_timeout
(
timeo
);
lock_sock
(
sk
);
set_current_state
(
TASK_INTERRUPTIBLE
);
err
=
sock_error
(
sk
);
if
(
err
)
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/l2cap_sock.c
浏览文件 @
7bfb40b0
...
...
@@ -235,30 +235,26 @@ static int l2cap_sock_accept(struct socket *sock, struct socket *newsock, int fl
lock_sock_nested
(
sk
,
SINGLE_DEPTH_NESTING
);
if
(
sk
->
sk_state
!=
BT_LISTEN
)
{
err
=
-
EBADFD
;
goto
done
;
}
timeo
=
sock_rcvtimeo
(
sk
,
flags
&
O_NONBLOCK
);
BT_DBG
(
"sk %p timeo %ld"
,
sk
,
timeo
);
/* Wait for an incoming connection. (wake-one). */
add_wait_queue_exclusive
(
sk_sleep
(
sk
),
&
wait
);
while
(
!
(
nsk
=
bt_accept_dequeue
(
sk
,
newsock
))
)
{
while
(
1
)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
if
(
!
timeo
)
{
err
=
-
EAGAIN
;
if
(
sk
->
sk_state
!=
BT_LISTEN
)
{
err
=
-
EBADFD
;
break
;
}
release_sock
(
s
k
);
timeo
=
schedule_timeout
(
timeo
);
lock_sock_nested
(
sk
,
SINGLE_DEPTH_NESTING
)
;
nsk
=
bt_accept_dequeue
(
sk
,
newsoc
k
);
if
(
nsk
)
break
;
if
(
sk
->
sk_state
!=
BT_LISTEN
)
{
err
=
-
E
BADFD
;
if
(
!
timeo
)
{
err
=
-
E
AGAIN
;
break
;
}
...
...
@@ -266,8 +262,12 @@ static int l2cap_sock_accept(struct socket *sock, struct socket *newsock, int fl
err
=
sock_intr_errno
(
timeo
);
break
;
}
release_sock
(
sk
);
timeo
=
schedule_timeout
(
timeo
);
lock_sock_nested
(
sk
,
SINGLE_DEPTH_NESTING
);
}
set_current_state
(
TASK_RUNNING
);
__
set_current_state
(
TASK_RUNNING
);
remove_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
if
(
err
)
...
...
@@ -993,7 +993,7 @@ static struct sock *l2cap_sock_alloc(struct net *net, struct socket *sock, int p
INIT_LIST_HEAD
(
&
bt_sk
(
sk
)
->
accept_q
);
sk
->
sk_destruct
=
l2cap_sock_destruct
;
sk
->
sk_sndtimeo
=
msecs_to_jiffies
(
L2CAP_CONN_TIMEOUT
)
;
sk
->
sk_sndtimeo
=
L2CAP_CONN_TIMEOUT
;
sock_reset_flag
(
sk
,
SOCK_ZAPPED
);
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/rfcomm/core.c
浏览文件 @
7bfb40b0
...
...
@@ -62,7 +62,6 @@ static DEFINE_MUTEX(rfcomm_mutex);
#define rfcomm_lock() mutex_lock(&rfcomm_mutex)
#define rfcomm_unlock() mutex_unlock(&rfcomm_mutex)
static
unsigned
long
rfcomm_event
;
static
LIST_HEAD
(
session_list
);
...
...
@@ -120,7 +119,6 @@ static inline void rfcomm_schedule(void)
{
if
(
!
rfcomm_thread
)
return
;
set_bit
(
RFCOMM_SCHED_WAKEUP
,
&
rfcomm_event
);
wake_up_process
(
rfcomm_thread
);
}
...
...
@@ -2038,19 +2036,18 @@ static int rfcomm_run(void *unused)
rfcomm_add_listener
(
BDADDR_ANY
);
while
(
!
kthread_should_stop
()
)
{
while
(
1
)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
if
(
!
test_bit
(
RFCOMM_SCHED_WAKEUP
,
&
rfcomm_event
))
{
/* No pending events. Let's sleep.
* Incoming connections and data will wake us up. */
schedule
();
}
set_current_state
(
TASK_RUNNING
);
if
(
kthread_should_stop
())
break
;
/* Process stuff */
clear_bit
(
RFCOMM_SCHED_WAKEUP
,
&
rfcomm_event
);
rfcomm_process_sessions
();
schedule
();
}
__set_current_state
(
TASK_RUNNING
);
rfcomm_kill_listener
();
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/rfcomm/sock.c
浏览文件 @
7bfb40b0
...
...
@@ -485,11 +485,6 @@ static int rfcomm_sock_accept(struct socket *sock, struct socket *newsock, int f
lock_sock
(
sk
);
if
(
sk
->
sk_state
!=
BT_LISTEN
)
{
err
=
-
EBADFD
;
goto
done
;
}
if
(
sk
->
sk_type
!=
SOCK_STREAM
)
{
err
=
-
EINVAL
;
goto
done
;
...
...
@@ -501,19 +496,20 @@ static int rfcomm_sock_accept(struct socket *sock, struct socket *newsock, int f
/* Wait for an incoming connection. (wake-one). */
add_wait_queue_exclusive
(
sk_sleep
(
sk
),
&
wait
);
while
(
!
(
nsk
=
bt_accept_dequeue
(
sk
,
newsock
))
)
{
while
(
1
)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
if
(
!
timeo
)
{
err
=
-
EAGAIN
;
if
(
sk
->
sk_state
!=
BT_LISTEN
)
{
err
=
-
EBADFD
;
break
;
}
release_sock
(
s
k
);
timeo
=
schedule_timeout
(
timeo
);
lock_sock
(
sk
)
;
nsk
=
bt_accept_dequeue
(
sk
,
newsoc
k
);
if
(
nsk
)
break
;
if
(
sk
->
sk_state
!=
BT_LISTEN
)
{
err
=
-
E
BADFD
;
if
(
!
timeo
)
{
err
=
-
E
AGAIN
;
break
;
}
...
...
@@ -521,8 +517,12 @@ static int rfcomm_sock_accept(struct socket *sock, struct socket *newsock, int f
err
=
sock_intr_errno
(
timeo
);
break
;
}
release_sock
(
sk
);
timeo
=
schedule_timeout
(
timeo
);
lock_sock
(
sk
);
}
set_current_state
(
TASK_RUNNING
);
__
set_current_state
(
TASK_RUNNING
);
remove_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
if
(
err
)
...
...
This diff is collapsed.
Click to expand it.
net/bluetooth/sco.c
浏览文件 @
7bfb40b0
...
...
@@ -564,30 +564,26 @@ static int sco_sock_accept(struct socket *sock, struct socket *newsock, int flag
lock_sock
(
sk
);
if
(
sk
->
sk_state
!=
BT_LISTEN
)
{
err
=
-
EBADFD
;
goto
done
;
}
timeo
=
sock_rcvtimeo
(
sk
,
flags
&
O_NONBLOCK
);
BT_DBG
(
"sk %p timeo %ld"
,
sk
,
timeo
);
/* Wait for an incoming connection. (wake-one). */
add_wait_queue_exclusive
(
sk_sleep
(
sk
),
&
wait
);
while
(
!
(
ch
=
bt_accept_dequeue
(
sk
,
newsock
))
)
{
while
(
1
)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
if
(
!
timeo
)
{
err
=
-
EAGAIN
;
if
(
sk
->
sk_state
!=
BT_LISTEN
)
{
err
=
-
EBADFD
;
break
;
}
release_sock
(
s
k
);
timeo
=
schedule_timeout
(
timeo
);
lock_sock
(
sk
)
;
ch
=
bt_accept_dequeue
(
sk
,
newsoc
k
);
if
(
ch
)
break
;
if
(
sk
->
sk_state
!=
BT_LISTEN
)
{
err
=
-
E
BADFD
;
if
(
!
timeo
)
{
err
=
-
E
AGAIN
;
break
;
}
...
...
@@ -595,8 +591,12 @@ static int sco_sock_accept(struct socket *sock, struct socket *newsock, int flag
err
=
sock_intr_errno
(
timeo
);
break
;
}
release_sock
(
sk
);
timeo
=
schedule_timeout
(
timeo
);
lock_sock
(
sk
);
}
set_current_state
(
TASK_RUNNING
);
__
set_current_state
(
TASK_RUNNING
);
remove_wait_queue
(
sk_sleep
(
sk
),
&
wait
);
if
(
err
)
...
...
This diff is collapsed.
Click to expand it.
net/bridge/br_multicast.c
浏览文件 @
7bfb40b0
...
...
@@ -1456,7 +1456,7 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br,
{
struct
sk_buff
*
skb2
;
const
struct
ipv6hdr
*
ip6h
;
struct
icmp6hdr
*
icmp6h
;
u8
icmp6_type
;
u8
nexthdr
;
unsigned
len
;
int
offset
;
...
...
@@ -1502,9 +1502,9 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br,
__skb_pull
(
skb2
,
offset
);
skb_reset_transport_header
(
skb2
);
icmp6
h
=
icmp6_hdr
(
skb2
)
;
icmp6
_type
=
icmp6_hdr
(
skb2
)
->
icmp6_type
;
switch
(
icmp6
h
->
icmp6
_type
)
{
switch
(
icmp6_type
)
{
case
ICMPV6_MGM_QUERY
:
case
ICMPV6_MGM_REPORT
:
case
ICMPV6_MGM_REDUCTION
:
...
...
@@ -1520,16 +1520,23 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br,
err
=
pskb_trim_rcsum
(
skb2
,
len
);
if
(
err
)
goto
out
;
err
=
-
EINVAL
;
}
ip6h
=
ipv6_hdr
(
skb2
);
switch
(
skb2
->
ip_summed
)
{
case
CHECKSUM_COMPLETE
:
if
(
!
csum_fold
(
skb2
->
csum
))
if
(
!
csum_ipv6_magic
(
&
ip6h
->
saddr
,
&
ip6h
->
daddr
,
skb2
->
len
,
IPPROTO_ICMPV6
,
skb2
->
csum
))
break
;
/*FALLTHROUGH*/
case
CHECKSUM_NONE
:
skb2
->
csum
=
0
;
if
(
skb_checksum_complete
(
skb2
))
skb2
->
csum
=
~
csum_unfold
(
csum_ipv6_magic
(
&
ip6h
->
saddr
,
&
ip6h
->
daddr
,
skb2
->
len
,
IPPROTO_ICMPV6
,
0
));
if
(
__skb_checksum_complete
(
skb2
))
goto
out
;
}
...
...
@@ -1537,7 +1544,7 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br,
BR_INPUT_SKB_CB
(
skb
)
->
igmp
=
1
;
switch
(
icmp6
h
->
icmp6
_type
)
{
switch
(
icmp6_type
)
{
case
ICMPV6_MGM_REPORT
:
{
struct
mld_msg
*
mld
;
...
...
This diff is collapsed.
Click to expand it.
net/core/neighbour.c
浏览文件 @
7bfb40b0
...
...
@@ -1319,11 +1319,15 @@ static void neigh_proxy_process(unsigned long arg)
if
(
tdif
<=
0
)
{
struct
net_device
*
dev
=
skb
->
dev
;
__skb_unlink
(
skb
,
&
tbl
->
proxy_queue
);
if
(
tbl
->
proxy_redo
&&
netif_running
(
dev
))
if
(
tbl
->
proxy_redo
&&
netif_running
(
dev
))
{
rcu_read_lock
();
tbl
->
proxy_redo
(
skb
);
else
rcu_read_unlock
();
}
else
{
kfree_skb
(
skb
);
}
dev_put
(
dev
);
}
else
if
(
!
sched_next
||
tdif
<
sched_next
)
...
...
This diff is collapsed.
Click to expand it.
net/core/netpoll.c
浏览文件 @
7bfb40b0
...
...
@@ -558,13 +558,14 @@ int __netpoll_rx(struct sk_buff *skb)
if
(
skb_shared
(
skb
))
goto
out
;
iph
=
(
struct
iphdr
*
)
skb
->
data
;
if
(
!
pskb_may_pull
(
skb
,
sizeof
(
struct
iphdr
)))
goto
out
;
iph
=
(
struct
iphdr
*
)
skb
->
data
;
if
(
iph
->
ihl
<
5
||
iph
->
version
!=
4
)
goto
out
;
if
(
!
pskb_may_pull
(
skb
,
iph
->
ihl
*
4
))
goto
out
;
iph
=
(
struct
iphdr
*
)
skb
->
data
;
if
(
ip_fast_csum
((
u8
*
)
iph
,
iph
->
ihl
)
!=
0
)
goto
out
;
...
...
@@ -579,6 +580,7 @@ int __netpoll_rx(struct sk_buff *skb)
if
(
pskb_trim_rcsum
(
skb
,
len
))
goto
out
;
iph
=
(
struct
iphdr
*
)
skb
->
data
;
if
(
iph
->
protocol
!=
IPPROTO_UDP
)
goto
out
;
...
...
This diff is collapsed.
Click to expand it.
net/ipv4/igmp.c
浏览文件 @
7bfb40b0
...
...
@@ -767,7 +767,7 @@ static int igmp_xmarksources(struct ip_mc_list *pmc, int nsrcs, __be32 *srcs)
break
;
for
(
i
=
0
;
i
<
nsrcs
;
i
++
)
{
/* skip inactive filters */
if
(
p
mc
->
sf
count
[
MCAST_INCLUDE
]
||
if
(
p
sf
->
sf_
count
[
MCAST_INCLUDE
]
||
pmc
->
sfcount
[
MCAST_EXCLUDE
]
!=
psf
->
sf_count
[
MCAST_EXCLUDE
])
continue
;
...
...
This diff is collapsed.
Click to expand it.
net/ipv6/mcast.c
浏览文件 @
7bfb40b0
...
...
@@ -1059,7 +1059,7 @@ static int mld_xmarksources(struct ifmcaddr6 *pmc, int nsrcs,
break
;
for
(
i
=
0
;
i
<
nsrcs
;
i
++
)
{
/* skip inactive filters */
if
(
p
mc
->
mca_sf
count
[
MCAST_INCLUDE
]
||
if
(
p
sf
->
sf_
count
[
MCAST_INCLUDE
]
||
pmc
->
mca_sfcount
[
MCAST_EXCLUDE
]
!=
psf
->
sf_count
[
MCAST_EXCLUDE
])
continue
;
...
...
This diff is collapsed.
Click to expand it.
net/mac80211/main.c
浏览文件 @
7bfb40b0
此差异已折叠。
点击以展开。
net/socket.c
浏览文件 @
7bfb40b0
此差异已折叠。
点击以展开。
net/wireless/core.c
浏览文件 @
7bfb40b0
此差异已折叠。
点击以展开。
net/wireless/sysfs.c
浏览文件 @
7bfb40b0
此差异已折叠。
点击以展开。
tools/perf/arch/arm/util/dwarf-regs.c
浏览文件 @
7bfb40b0
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
反馈
建议
客服
返回
顶部