Skip to content

Commit 57260e4

Browse files
committed
Merge tag 'imx-fixes-rc' of git://git.pengutronix.de/git/imx/linux-2.6 into fixes
From Sascha Hauer <s.hauer@pengutronix.de>: ARM i.MX fixes for 3.7-rc * tag 'imx-fixes-rc' of git://git.pengutronix.de/git/imx/linux-2.6: ARM: imx: ehci: fix host power mask bit ARM i.MX: fix error-valued pointer dereference in clk_register_gate2() Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents 2d4d07b + 3d5e2ab commit 57260e4

205 files changed

Lines changed: 1687 additions & 1153 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/arm64/memory.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,17 @@ Start End Size Use
2727
-----------------------------------------------------------------------
2828
0000000000000000 0000007fffffffff 512GB user
2929

30-
ffffff8000000000 ffffffbbfffcffff ~240GB vmalloc
30+
ffffff8000000000 ffffffbbfffeffff ~240GB vmalloc
3131

32-
ffffffbbfffd0000 ffffffbcfffdffff 64KB [guard page]
32+
ffffffbbffff0000 ffffffbbffffffff 64KB [guard page]
3333

34-
ffffffbbfffe0000 ffffffbcfffeffff 64KB PCI I/O space
34+
ffffffbc00000000 ffffffbdffffffff 8GB vmemmap
3535

36-
ffffffbbffff0000 ffffffbcffffffff 64KB [guard page]
36+
ffffffbe00000000 ffffffbffbbfffff ~8GB [guard, future vmmemap]
3737

38-
ffffffbc00000000 ffffffbdffffffff 8GB vmemmap
38+
ffffffbffbe00000 ffffffbffbe0ffff 64KB PCI I/O space
3939

40-
ffffffbe00000000 ffffffbffbffffff ~8GB [guard, future vmmemap]
40+
ffffffbbffff0000 ffffffbcffffffff ~2MB [guard]
4141

4242
ffffffbffc000000 ffffffbfffffffff 64MB modules
4343

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 3
22
PATCHLEVEL = 7
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc4
4+
EXTRAVERSION = -rc5
55
NAME = Terrified Chipmunk
66

77
# *DOCUMENTATION*

arch/arm/include/asm/io.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,15 @@ extern void __raw_readsl(const void __iomem *addr, void *data, int longlen);
6464
static inline void __raw_writew(u16 val, volatile void __iomem *addr)
6565
{
6666
asm volatile("strh %1, %0"
67-
: "+Qo" (*(volatile u16 __force *)addr)
67+
: "+Q" (*(volatile u16 __force *)addr)
6868
: "r" (val));
6969
}
7070

7171
static inline u16 __raw_readw(const volatile void __iomem *addr)
7272
{
7373
u16 val;
7474
asm volatile("ldrh %1, %0"
75-
: "+Qo" (*(volatile u16 __force *)addr),
75+
: "+Q" (*(volatile u16 __force *)addr),
7676
"=r" (val));
7777
return val;
7878
}

arch/arm/include/asm/sched_clock.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,5 @@
1010

1111
extern void sched_clock_postinit(void);
1212
extern void setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate);
13-
extern void setup_sched_clock_needs_suspend(u32 (*read)(void), int bits,
14-
unsigned long rate);
1513

1614
#endif

arch/arm/include/asm/vfpmacros.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
#if __LINUX_ARM_ARCH__ <= 6
2828
ldr \tmp, =elf_hwcap @ may not have MVFR regs
2929
ldr \tmp, [\tmp, #0]
30-
tst \tmp, #HWCAP_VFPv3D16
31-
ldceql p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31}
32-
addne \base, \base, #32*4 @ step over unused register space
30+
tst \tmp, #HWCAP_VFPD32
31+
ldcnel p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31}
32+
addeq \base, \base, #32*4 @ step over unused register space
3333
#else
3434
VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0
3535
and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field
@@ -51,9 +51,9 @@
5151
#if __LINUX_ARM_ARCH__ <= 6
5252
ldr \tmp, =elf_hwcap @ may not have MVFR regs
5353
ldr \tmp, [\tmp, #0]
54-
tst \tmp, #HWCAP_VFPv3D16
55-
stceql p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31}
56-
addne \base, \base, #32*4 @ step over unused register space
54+
tst \tmp, #HWCAP_VFPD32
55+
stcnel p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31}
56+
addeq \base, \base, #32*4 @ step over unused register space
5757
#else
5858
VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0
5959
and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field

arch/arm/include/uapi/asm/hwcap.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@
1818
#define HWCAP_THUMBEE (1 << 11)
1919
#define HWCAP_NEON (1 << 12)
2020
#define HWCAP_VFPv3 (1 << 13)
21-
#define HWCAP_VFPv3D16 (1 << 14)
21+
#define HWCAP_VFPv3D16 (1 << 14) /* also set for VFPv4-D16 */
2222
#define HWCAP_TLS (1 << 15)
2323
#define HWCAP_VFPv4 (1 << 16)
2424
#define HWCAP_IDIVA (1 << 17)
2525
#define HWCAP_IDIVT (1 << 18)
26+
#define HWCAP_VFPD32 (1 << 19) /* set if VFP has 32 regs (not 16) */
2627
#define HWCAP_IDIV (HWCAP_IDIVA | HWCAP_IDIVT)
2728

2829

arch/arm/kernel/sched_clock.c

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,6 @@ static void sched_clock_poll(unsigned long wrap_ticks)
107107
update_sched_clock();
108108
}
109109

110-
void __init setup_sched_clock_needs_suspend(u32 (*read)(void), int bits,
111-
unsigned long rate)
112-
{
113-
setup_sched_clock(read, bits, rate);
114-
cd.needs_suspend = true;
115-
}
116-
117110
void __init setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate)
118111
{
119112
unsigned long r, w;
@@ -189,18 +182,15 @@ void __init sched_clock_postinit(void)
189182
static int sched_clock_suspend(void)
190183
{
191184
sched_clock_poll(sched_clock_timer.data);
192-
if (cd.needs_suspend)
193-
cd.suspended = true;
185+
cd.suspended = true;
194186
return 0;
195187
}
196188

197189
static void sched_clock_resume(void)
198190
{
199-
if (cd.needs_suspend) {
200-
cd.epoch_cyc = read_sched_clock();
201-
cd.epoch_cyc_copy = cd.epoch_cyc;
202-
cd.suspended = false;
203-
}
191+
cd.epoch_cyc = read_sched_clock();
192+
cd.epoch_cyc_copy = cd.epoch_cyc;
193+
cd.suspended = false;
204194
}
205195

206196
static struct syscore_ops sched_clock_ops = {

arch/arm/mach-imx/clk-gate2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ struct clk *clk_register_gate2(struct device *dev, const char *name,
112112

113113
clk = clk_register(dev, &gate->hw);
114114
if (IS_ERR(clk))
115-
kfree(clk);
115+
kfree(gate);
116116

117117
return clk;
118118
}

arch/arm/mach-imx/ehci-imx25.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#define MX25_H1_SIC_SHIFT 21
3131
#define MX25_H1_SIC_MASK (0x3 << MX25_H1_SIC_SHIFT)
3232
#define MX25_H1_PP_BIT (1 << 18)
33-
#define MX25_H1_PM_BIT (1 << 8)
33+
#define MX25_H1_PM_BIT (1 << 16)
3434
#define MX25_H1_IPPUE_UP_BIT (1 << 7)
3535
#define MX25_H1_IPPUE_DOWN_BIT (1 << 6)
3636
#define MX25_H1_TLL_BIT (1 << 5)

arch/arm/mach-imx/ehci-imx35.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#define MX35_H1_SIC_SHIFT 21
3131
#define MX35_H1_SIC_MASK (0x3 << MX35_H1_SIC_SHIFT)
3232
#define MX35_H1_PP_BIT (1 << 18)
33-
#define MX35_H1_PM_BIT (1 << 8)
33+
#define MX35_H1_PM_BIT (1 << 16)
3434
#define MX35_H1_IPPUE_UP_BIT (1 << 7)
3535
#define MX35_H1_IPPUE_DOWN_BIT (1 << 6)
3636
#define MX35_H1_TLL_BIT (1 << 5)

0 commit comments

Comments
 (0)