Skip to content

Commit ad592b7

Browse files
author
Alex Shi
committed
Merge tag 'v4.4.7' into linux-linaro-lsk-v4.4
This is the 4.4.7 stable release
2 parents f968846 + b40108b commit ad592b7

221 files changed

Lines changed: 2107 additions & 1147 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.

MAINTAINERS

Lines changed: 48 additions & 48 deletions
Large diffs are not rendered by default.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
VERSION = 4
22
PATCHLEVEL = 4
3-
SUBLEVEL = 6
3+
SUBLEVEL = 7
44
EXTRAVERSION =
55
NAME = Blurry Fish Butt
66

arch/arc/include/asm/bitops.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,6 @@ static inline void op##_bit(unsigned long nr, volatile unsigned long *m)\
3535
\
3636
m += nr >> 5; \
3737
\
38-
/* \
39-
* ARC ISA micro-optimization: \
40-
* \
41-
* Instructions dealing with bitpos only consider lower 5 bits \
42-
* e.g (x << 33) is handled like (x << 1) by ASL instruction \
43-
* (mem pointer still needs adjustment to point to next word) \
44-
* \
45-
* Hence the masking to clamp @nr arg can be elided in general. \
46-
* \
47-
* However if @nr is a constant (above assumed in a register), \
48-
* and greater than 31, gcc can optimize away (x << 33) to 0, \
49-
* as overflow, given the 32-bit ISA. Thus masking needs to be \
50-
* done for const @nr, but no code is generated due to gcc \
51-
* const prop. \
52-
*/ \
5338
nr &= 0x1f; \
5439
\
5540
__asm__ __volatile__( \

arch/arc/include/asm/io.h

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,23 @@ static inline void __raw_writel(u32 w, volatile void __iomem *addr)
129129
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
130130

131131
/*
132-
* Relaxed API for drivers which can handle any ordering themselves
132+
* Relaxed API for drivers which can handle barrier ordering themselves
133+
*
134+
* Also these are defined to perform little endian accesses.
135+
* To provide the typical device register semantics of fixed endian,
136+
* swap the byte order for Big Endian
137+
*
138+
* http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de
133139
*/
134140
#define readb_relaxed(c) __raw_readb(c)
135-
#define readw_relaxed(c) __raw_readw(c)
136-
#define readl_relaxed(c) __raw_readl(c)
141+
#define readw_relaxed(c) ({ u16 __r = le16_to_cpu((__force __le16) \
142+
__raw_readw(c)); __r; })
143+
#define readl_relaxed(c) ({ u32 __r = le32_to_cpu((__force __le32) \
144+
__raw_readl(c)); __r; })
137145

138146
#define writeb_relaxed(v,c) __raw_writeb(v,c)
139-
#define writew_relaxed(v,c) __raw_writew(v,c)
140-
#define writel_relaxed(v,c) __raw_writel(v,c)
147+
#define writew_relaxed(v,c) __raw_writew((__force u16) cpu_to_le16(v),c)
148+
#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c)
141149

142150
#include <asm-generic/io.h>
143151

arch/arm/boot/dts/at91-sama5d3_xplained.dts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@
303303
regulator-name = "mmc0-card-supply";
304304
regulator-min-microvolt = <3300000>;
305305
regulator-max-microvolt = <3300000>;
306+
regulator-always-on;
306307
};
307308

308309
gpio_keys {

arch/arm/boot/dts/at91-sama5d4_xplained.dts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,5 +268,6 @@
268268
regulator-min-microvolt = <3300000>;
269269
regulator-max-microvolt = <3300000>;
270270
vin-supply = <&vcc_3v3_reg>;
271+
regulator-always-on;
271272
};
272273
};

arch/arm/mach-s3c64xx/dev-audio.c

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,12 @@ static int s3c64xx_i2s_cfg_gpio(struct platform_device *pdev)
5454

5555
static struct resource s3c64xx_iis0_resource[] = {
5656
[0] = DEFINE_RES_MEM(S3C64XX_PA_IIS0, SZ_256),
57-
[1] = DEFINE_RES_DMA(DMACH_I2S0_OUT),
58-
[2] = DEFINE_RES_DMA(DMACH_I2S0_IN),
5957
};
6058

61-
static struct s3c_audio_pdata i2sv3_pdata = {
59+
static struct s3c_audio_pdata i2s0_pdata = {
6260
.cfg_gpio = s3c64xx_i2s_cfg_gpio,
61+
.dma_playback = DMACH_I2S0_OUT,
62+
.dma_capture = DMACH_I2S0_IN,
6363
};
6464

6565
struct platform_device s3c64xx_device_iis0 = {
@@ -68,15 +68,19 @@ struct platform_device s3c64xx_device_iis0 = {
6868
.num_resources = ARRAY_SIZE(s3c64xx_iis0_resource),
6969
.resource = s3c64xx_iis0_resource,
7070
.dev = {
71-
.platform_data = &i2sv3_pdata,
71+
.platform_data = &i2s0_pdata,
7272
},
7373
};
7474
EXPORT_SYMBOL(s3c64xx_device_iis0);
7575

7676
static struct resource s3c64xx_iis1_resource[] = {
7777
[0] = DEFINE_RES_MEM(S3C64XX_PA_IIS1, SZ_256),
78-
[1] = DEFINE_RES_DMA(DMACH_I2S1_OUT),
79-
[2] = DEFINE_RES_DMA(DMACH_I2S1_IN),
78+
};
79+
80+
static struct s3c_audio_pdata i2s1_pdata = {
81+
.cfg_gpio = s3c64xx_i2s_cfg_gpio,
82+
.dma_playback = DMACH_I2S1_OUT,
83+
.dma_capture = DMACH_I2S1_IN,
8084
};
8185

8286
struct platform_device s3c64xx_device_iis1 = {
@@ -85,19 +89,19 @@ struct platform_device s3c64xx_device_iis1 = {
8589
.num_resources = ARRAY_SIZE(s3c64xx_iis1_resource),
8690
.resource = s3c64xx_iis1_resource,
8791
.dev = {
88-
.platform_data = &i2sv3_pdata,
92+
.platform_data = &i2s1_pdata,
8993
},
9094
};
9195
EXPORT_SYMBOL(s3c64xx_device_iis1);
9296

9397
static struct resource s3c64xx_iisv4_resource[] = {
9498
[0] = DEFINE_RES_MEM(S3C64XX_PA_IISV4, SZ_256),
95-
[1] = DEFINE_RES_DMA(DMACH_HSI_I2SV40_TX),
96-
[2] = DEFINE_RES_DMA(DMACH_HSI_I2SV40_RX),
9799
};
98100

99101
static struct s3c_audio_pdata i2sv4_pdata = {
100102
.cfg_gpio = s3c64xx_i2s_cfg_gpio,
103+
.dma_playback = DMACH_HSI_I2SV40_TX,
104+
.dma_capture = DMACH_HSI_I2SV40_RX,
101105
.type = {
102106
.i2s = {
103107
.quirks = QUIRK_PRI_6CHAN,
@@ -142,12 +146,12 @@ static int s3c64xx_pcm_cfg_gpio(struct platform_device *pdev)
142146

143147
static struct resource s3c64xx_pcm0_resource[] = {
144148
[0] = DEFINE_RES_MEM(S3C64XX_PA_PCM0, SZ_256),
145-
[1] = DEFINE_RES_DMA(DMACH_PCM0_TX),
146-
[2] = DEFINE_RES_DMA(DMACH_PCM0_RX),
147149
};
148150

149151
static struct s3c_audio_pdata s3c_pcm0_pdata = {
150152
.cfg_gpio = s3c64xx_pcm_cfg_gpio,
153+
.dma_capture = DMACH_PCM0_RX,
154+
.dma_playback = DMACH_PCM0_TX,
151155
};
152156

153157
struct platform_device s3c64xx_device_pcm0 = {
@@ -163,12 +167,12 @@ EXPORT_SYMBOL(s3c64xx_device_pcm0);
163167

164168
static struct resource s3c64xx_pcm1_resource[] = {
165169
[0] = DEFINE_RES_MEM(S3C64XX_PA_PCM1, SZ_256),
166-
[1] = DEFINE_RES_DMA(DMACH_PCM1_TX),
167-
[2] = DEFINE_RES_DMA(DMACH_PCM1_RX),
168170
};
169171

170172
static struct s3c_audio_pdata s3c_pcm1_pdata = {
171173
.cfg_gpio = s3c64xx_pcm_cfg_gpio,
174+
.dma_playback = DMACH_PCM1_TX,
175+
.dma_capture = DMACH_PCM1_RX,
172176
};
173177

174178
struct platform_device s3c64xx_device_pcm1 = {
@@ -196,13 +200,14 @@ static int s3c64xx_ac97_cfg_gpe(struct platform_device *pdev)
196200

197201
static struct resource s3c64xx_ac97_resource[] = {
198202
[0] = DEFINE_RES_MEM(S3C64XX_PA_AC97, SZ_256),
199-
[1] = DEFINE_RES_DMA(DMACH_AC97_PCMOUT),
200-
[2] = DEFINE_RES_DMA(DMACH_AC97_PCMIN),
201-
[3] = DEFINE_RES_DMA(DMACH_AC97_MICIN),
202-
[4] = DEFINE_RES_IRQ(IRQ_AC97),
203+
[1] = DEFINE_RES_IRQ(IRQ_AC97),
203204
};
204205

205-
static struct s3c_audio_pdata s3c_ac97_pdata;
206+
static struct s3c_audio_pdata s3c_ac97_pdata = {
207+
.dma_playback = DMACH_AC97_PCMOUT,
208+
.dma_capture = DMACH_AC97_PCMIN,
209+
.dma_capture_mic = DMACH_AC97_MICIN,
210+
};
206211

207212
static u64 s3c64xx_ac97_dmamask = DMA_BIT_MASK(32);
208213

arch/arm/mach-s3c64xx/include/mach/dma.h

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,38 +14,38 @@
1414
#define S3C64XX_DMA_CHAN(name) ((unsigned long)(name))
1515

1616
/* DMA0/SDMA0 */
17-
#define DMACH_UART0 S3C64XX_DMA_CHAN("uart0_tx")
18-
#define DMACH_UART0_SRC2 S3C64XX_DMA_CHAN("uart0_rx")
19-
#define DMACH_UART1 S3C64XX_DMA_CHAN("uart1_tx")
20-
#define DMACH_UART1_SRC2 S3C64XX_DMA_CHAN("uart1_rx")
21-
#define DMACH_UART2 S3C64XX_DMA_CHAN("uart2_tx")
22-
#define DMACH_UART2_SRC2 S3C64XX_DMA_CHAN("uart2_rx")
23-
#define DMACH_UART3 S3C64XX_DMA_CHAN("uart3_tx")
24-
#define DMACH_UART3_SRC2 S3C64XX_DMA_CHAN("uart3_rx")
25-
#define DMACH_PCM0_TX S3C64XX_DMA_CHAN("pcm0_tx")
26-
#define DMACH_PCM0_RX S3C64XX_DMA_CHAN("pcm0_rx")
27-
#define DMACH_I2S0_OUT S3C64XX_DMA_CHAN("i2s0_tx")
28-
#define DMACH_I2S0_IN S3C64XX_DMA_CHAN("i2s0_rx")
17+
#define DMACH_UART0 "uart0_tx"
18+
#define DMACH_UART0_SRC2 "uart0_rx"
19+
#define DMACH_UART1 "uart1_tx"
20+
#define DMACH_UART1_SRC2 "uart1_rx"
21+
#define DMACH_UART2 "uart2_tx"
22+
#define DMACH_UART2_SRC2 "uart2_rx"
23+
#define DMACH_UART3 "uart3_tx"
24+
#define DMACH_UART3_SRC2 "uart3_rx"
25+
#define DMACH_PCM0_TX "pcm0_tx"
26+
#define DMACH_PCM0_RX "pcm0_rx"
27+
#define DMACH_I2S0_OUT "i2s0_tx"
28+
#define DMACH_I2S0_IN "i2s0_rx"
2929
#define DMACH_SPI0_TX S3C64XX_DMA_CHAN("spi0_tx")
3030
#define DMACH_SPI0_RX S3C64XX_DMA_CHAN("spi0_rx")
31-
#define DMACH_HSI_I2SV40_TX S3C64XX_DMA_CHAN("i2s2_tx")
32-
#define DMACH_HSI_I2SV40_RX S3C64XX_DMA_CHAN("i2s2_rx")
31+
#define DMACH_HSI_I2SV40_TX "i2s2_tx"
32+
#define DMACH_HSI_I2SV40_RX "i2s2_rx"
3333

3434
/* DMA1/SDMA1 */
35-
#define DMACH_PCM1_TX S3C64XX_DMA_CHAN("pcm1_tx")
36-
#define DMACH_PCM1_RX S3C64XX_DMA_CHAN("pcm1_rx")
37-
#define DMACH_I2S1_OUT S3C64XX_DMA_CHAN("i2s1_tx")
38-
#define DMACH_I2S1_IN S3C64XX_DMA_CHAN("i2s1_rx")
35+
#define DMACH_PCM1_TX "pcm1_tx"
36+
#define DMACH_PCM1_RX "pcm1_rx"
37+
#define DMACH_I2S1_OUT "i2s1_tx"
38+
#define DMACH_I2S1_IN "i2s1_rx"
3939
#define DMACH_SPI1_TX S3C64XX_DMA_CHAN("spi1_tx")
4040
#define DMACH_SPI1_RX S3C64XX_DMA_CHAN("spi1_rx")
41-
#define DMACH_AC97_PCMOUT S3C64XX_DMA_CHAN("ac97_out")
42-
#define DMACH_AC97_PCMIN S3C64XX_DMA_CHAN("ac97_in")
43-
#define DMACH_AC97_MICIN S3C64XX_DMA_CHAN("ac97_mic")
44-
#define DMACH_PWM S3C64XX_DMA_CHAN("pwm")
45-
#define DMACH_IRDA S3C64XX_DMA_CHAN("irda")
46-
#define DMACH_EXTERNAL S3C64XX_DMA_CHAN("external")
47-
#define DMACH_SECURITY_RX S3C64XX_DMA_CHAN("sec_rx")
48-
#define DMACH_SECURITY_TX S3C64XX_DMA_CHAN("sec_tx")
41+
#define DMACH_AC97_PCMOUT "ac97_out"
42+
#define DMACH_AC97_PCMIN "ac97_in"
43+
#define DMACH_AC97_MICIN "ac97_mic"
44+
#define DMACH_PWM "pwm"
45+
#define DMACH_IRDA "irda"
46+
#define DMACH_EXTERNAL "external"
47+
#define DMACH_SECURITY_RX "sec_rx"
48+
#define DMACH_SECURITY_TX "sec_tx"
4949

5050
enum dma_ch {
5151
DMACH_MAX = 32

arch/arm/plat-samsung/devs.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
#include <linux/platform_data/usb-ohci-s3c2410.h>
6666
#include <plat/usb-phy.h>
6767
#include <plat/regs-spi.h>
68+
#include <linux/platform_data/asoc-s3c.h>
6869
#include <linux/platform_data/spi-s3c64xx.h>
6970

7071
static u64 samsung_device_dma_mask = DMA_BIT_MASK(32);
@@ -74,9 +75,12 @@ static u64 samsung_device_dma_mask = DMA_BIT_MASK(32);
7475
static struct resource s3c_ac97_resource[] = {
7576
[0] = DEFINE_RES_MEM(S3C2440_PA_AC97, S3C2440_SZ_AC97),
7677
[1] = DEFINE_RES_IRQ(IRQ_S3C244X_AC97),
77-
[2] = DEFINE_RES_DMA_NAMED(DMACH_PCM_OUT, "PCM out"),
78-
[3] = DEFINE_RES_DMA_NAMED(DMACH_PCM_IN, "PCM in"),
79-
[4] = DEFINE_RES_DMA_NAMED(DMACH_MIC_IN, "Mic in"),
78+
};
79+
80+
static struct s3c_audio_pdata s3c_ac97_pdata = {
81+
.dma_playback = (void *)DMACH_PCM_OUT,
82+
.dma_capture = (void *)DMACH_PCM_IN,
83+
.dma_capture_mic = (void *)DMACH_MIC_IN,
8084
};
8185

8286
struct platform_device s3c_device_ac97 = {
@@ -87,6 +91,7 @@ struct platform_device s3c_device_ac97 = {
8791
.dev = {
8892
.dma_mask = &samsung_device_dma_mask,
8993
.coherent_dma_mask = DMA_BIT_MASK(32),
94+
.platform_data = &s3c_ac97_pdata,
9095
}
9196
};
9297
#endif /* CONFIG_CPU_S3C2440 */

arch/ia64/include/asm/io.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,7 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
436436
return ioremap(phys_addr, size);
437437
}
438438
#define ioremap_cache ioremap_cache
439+
#define ioremap_uc ioremap_nocache
439440

440441

441442
/*

0 commit comments

Comments
 (0)