Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm
Pull ARM fixes from Russell King: "Just three fixes this time - a fix for a fix for our memset function, fixing the dummy clockevent so that it doesn't interfere with real hardware clockevents, and fixing a build error for Tegra." * 'fixes' of git://git.linaro.org/people/rmk/linux-arm: ARM: 7675/1: amba: tegra-ahb: Fix build error w/ PM_SLEEP w/o PM_RUNTIME ARM: 7674/1: smp: Avoid dummy clockevent being preferred over real hardware clock-event ARM: 7670/1: fix the memset fix
This commit is contained in:
Коммит
6210d421c2
|
@ -480,7 +480,7 @@ static void __cpuinit broadcast_timer_setup(struct clock_event_device *evt)
|
||||||
evt->features = CLOCK_EVT_FEAT_ONESHOT |
|
evt->features = CLOCK_EVT_FEAT_ONESHOT |
|
||||||
CLOCK_EVT_FEAT_PERIODIC |
|
CLOCK_EVT_FEAT_PERIODIC |
|
||||||
CLOCK_EVT_FEAT_DUMMY;
|
CLOCK_EVT_FEAT_DUMMY;
|
||||||
evt->rating = 400;
|
evt->rating = 100;
|
||||||
evt->mult = 1;
|
evt->mult = 1;
|
||||||
evt->set_mode = broadcast_timer_set_mode;
|
evt->set_mode = broadcast_timer_set_mode;
|
||||||
|
|
||||||
|
|
|
@ -14,31 +14,15 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
.align 5
|
.align 5
|
||||||
.word 0
|
|
||||||
|
|
||||||
1: subs r2, r2, #4 @ 1 do we have enough
|
|
||||||
blt 5f @ 1 bytes to align with?
|
|
||||||
cmp r3, #2 @ 1
|
|
||||||
strltb r1, [ip], #1 @ 1
|
|
||||||
strleb r1, [ip], #1 @ 1
|
|
||||||
strb r1, [ip], #1 @ 1
|
|
||||||
add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
|
|
||||||
/*
|
|
||||||
* The pointer is now aligned and the length is adjusted. Try doing the
|
|
||||||
* memset again.
|
|
||||||
*/
|
|
||||||
|
|
||||||
ENTRY(memset)
|
ENTRY(memset)
|
||||||
/*
|
ands r3, r0, #3 @ 1 unaligned?
|
||||||
* Preserve the contents of r0 for the return value.
|
mov ip, r0 @ preserve r0 as return value
|
||||||
*/
|
bne 6f @ 1
|
||||||
mov ip, r0
|
|
||||||
ands r3, ip, #3 @ 1 unaligned?
|
|
||||||
bne 1b @ 1
|
|
||||||
/*
|
/*
|
||||||
* we know that the pointer in ip is aligned to a word boundary.
|
* we know that the pointer in ip is aligned to a word boundary.
|
||||||
*/
|
*/
|
||||||
orr r1, r1, r1, lsl #8
|
1: orr r1, r1, r1, lsl #8
|
||||||
orr r1, r1, r1, lsl #16
|
orr r1, r1, r1, lsl #16
|
||||||
mov r3, r1
|
mov r3, r1
|
||||||
cmp r2, #16
|
cmp r2, #16
|
||||||
|
@ -127,4 +111,13 @@ ENTRY(memset)
|
||||||
tst r2, #1
|
tst r2, #1
|
||||||
strneb r1, [ip], #1
|
strneb r1, [ip], #1
|
||||||
mov pc, lr
|
mov pc, lr
|
||||||
|
|
||||||
|
6: subs r2, r2, #4 @ 1 do we have enough
|
||||||
|
blt 5b @ 1 bytes to align with?
|
||||||
|
cmp r3, #2 @ 1
|
||||||
|
strltb r1, [ip], #1 @ 1
|
||||||
|
strleb r1, [ip], #1 @ 1
|
||||||
|
strb r1, [ip], #1 @ 1
|
||||||
|
add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
|
||||||
|
b 1b
|
||||||
ENDPROC(memset)
|
ENDPROC(memset)
|
||||||
|
|
|
@ -158,7 +158,7 @@ int tegra_ahb_enable_smmu(struct device_node *dn)
|
||||||
EXPORT_SYMBOL(tegra_ahb_enable_smmu);
|
EXPORT_SYMBOL(tegra_ahb_enable_smmu);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_PM_SLEEP
|
#ifdef CONFIG_PM
|
||||||
static int tegra_ahb_suspend(struct device *dev)
|
static int tegra_ahb_suspend(struct device *dev)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче