Magellan Linux

Contents of /trunk/kernel-alx-legacy/patches-4.9/0143-4.9.44-all-fixes.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3608 - (show annotations) (download)
Fri Aug 14 07:34:29 2020 UTC (3 years, 8 months ago) by niro
File size: 77223 byte(s)
-added kerenl-alx-legacy pkg
1 diff --git a/Makefile b/Makefile
2 index 77953bf3f40a..3e95dfdbe572 100644
3 --- a/Makefile
4 +++ b/Makefile
5 @@ -1,6 +1,6 @@
6 VERSION = 4
7 PATCHLEVEL = 9
8 -SUBLEVEL = 43
9 +SUBLEVEL = 44
10 EXTRAVERSION =
11 NAME = Roaring Lionus
12
13 diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S
14 index 1910223a9c02..cea2bb1621e6 100644
15 --- a/arch/mips/dec/int-handler.S
16 +++ b/arch/mips/dec/int-handler.S
17 @@ -147,23 +147,12 @@
18 * Find irq with highest priority
19 */
20 # open coded PTR_LA t1, cpu_mask_nr_tbl
21 -#if (_MIPS_SZPTR == 32)
22 +#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
23 # open coded la t1, cpu_mask_nr_tbl
24 lui t1, %hi(cpu_mask_nr_tbl)
25 addiu t1, %lo(cpu_mask_nr_tbl)
26 -
27 -#endif
28 -#if (_MIPS_SZPTR == 64)
29 - # open coded dla t1, cpu_mask_nr_tbl
30 - .set push
31 - .set noat
32 - lui t1, %highest(cpu_mask_nr_tbl)
33 - lui AT, %hi(cpu_mask_nr_tbl)
34 - daddiu t1, t1, %higher(cpu_mask_nr_tbl)
35 - daddiu AT, AT, %lo(cpu_mask_nr_tbl)
36 - dsll t1, 32
37 - daddu t1, t1, AT
38 - .set pop
39 +#else
40 +#error GCC `-msym32' option required for 64-bit DECstation builds
41 #endif
42 1: lw t2,(t1)
43 nop
44 @@ -214,23 +203,12 @@
45 * Find irq with highest priority
46 */
47 # open coded PTR_LA t1,asic_mask_nr_tbl
48 -#if (_MIPS_SZPTR == 32)
49 +#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
50 # open coded la t1, asic_mask_nr_tbl
51 lui t1, %hi(asic_mask_nr_tbl)
52 addiu t1, %lo(asic_mask_nr_tbl)
53 -
54 -#endif
55 -#if (_MIPS_SZPTR == 64)
56 - # open coded dla t1, asic_mask_nr_tbl
57 - .set push
58 - .set noat
59 - lui t1, %highest(asic_mask_nr_tbl)
60 - lui AT, %hi(asic_mask_nr_tbl)
61 - daddiu t1, t1, %higher(asic_mask_nr_tbl)
62 - daddiu AT, AT, %lo(asic_mask_nr_tbl)
63 - dsll t1, 32
64 - daddu t1, t1, AT
65 - .set pop
66 +#else
67 +#error GCC `-msym32' option required for 64-bit DECstation builds
68 #endif
69 2: lw t2,(t1)
70 nop
71 diff --git a/arch/xtensa/kernel/xtensa_ksyms.c b/arch/xtensa/kernel/xtensa_ksyms.c
72 index 4d2872fd9bb5..a71d2739fa82 100644
73 --- a/arch/xtensa/kernel/xtensa_ksyms.c
74 +++ b/arch/xtensa/kernel/xtensa_ksyms.c
75 @@ -94,13 +94,11 @@ unsigned long __sync_fetch_and_or_4(unsigned long *p, unsigned long v)
76 }
77 EXPORT_SYMBOL(__sync_fetch_and_or_4);
78
79 -#ifdef CONFIG_NET
80 /*
81 * Networking support
82 */
83 EXPORT_SYMBOL(csum_partial);
84 EXPORT_SYMBOL(csum_partial_copy_generic);
85 -#endif /* CONFIG_NET */
86
87 /*
88 * Architecture-specific symbols
89 diff --git a/arch/xtensa/mm/cache.c b/arch/xtensa/mm/cache.c
90 index 1a804a2f9a5b..3c75c4e597da 100644
91 --- a/arch/xtensa/mm/cache.c
92 +++ b/arch/xtensa/mm/cache.c
93 @@ -103,6 +103,7 @@ void clear_user_highpage(struct page *page, unsigned long vaddr)
94 clear_page_alias(kvaddr, paddr);
95 preempt_enable();
96 }
97 +EXPORT_SYMBOL(clear_user_highpage);
98
99 void copy_user_highpage(struct page *dst, struct page *src,
100 unsigned long vaddr, struct vm_area_struct *vma)
101 @@ -119,10 +120,7 @@ void copy_user_highpage(struct page *dst, struct page *src,
102 copy_page_alias(dst_vaddr, src_vaddr, dst_paddr, src_paddr);
103 preempt_enable();
104 }
105 -
106 -#endif /* DCACHE_WAY_SIZE > PAGE_SIZE */
107 -
108 -#if (DCACHE_WAY_SIZE > PAGE_SIZE) && XCHAL_DCACHE_IS_WRITEBACK
109 +EXPORT_SYMBOL(copy_user_highpage);
110
111 /*
112 * Any time the kernel writes to a user page cache page, or it is about to
113 @@ -176,7 +174,7 @@ void flush_dcache_page(struct page *page)
114
115 /* There shouldn't be an entry in the cache for this page anymore. */
116 }
117 -
118 +EXPORT_SYMBOL(flush_dcache_page);
119
120 /*
121 * For now, flush the whole cache. FIXME??
122 @@ -188,6 +186,7 @@ void local_flush_cache_range(struct vm_area_struct *vma,
123 __flush_invalidate_dcache_all();
124 __invalidate_icache_all();
125 }
126 +EXPORT_SYMBOL(local_flush_cache_range);
127
128 /*
129 * Remove any entry in the cache for this page.
130 @@ -207,8 +206,9 @@ void local_flush_cache_page(struct vm_area_struct *vma, unsigned long address,
131 __flush_invalidate_dcache_page_alias(virt, phys);
132 __invalidate_icache_page_alias(virt, phys);
133 }
134 +EXPORT_SYMBOL(local_flush_cache_page);
135
136 -#endif
137 +#endif /* DCACHE_WAY_SIZE > PAGE_SIZE */
138
139 void
140 update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
141 @@ -225,7 +225,7 @@ update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
142
143 flush_tlb_page(vma, addr);
144
145 -#if (DCACHE_WAY_SIZE > PAGE_SIZE) && XCHAL_DCACHE_IS_WRITEBACK
146 +#if (DCACHE_WAY_SIZE > PAGE_SIZE)
147
148 if (!PageReserved(page) && test_bit(PG_arch_1, &page->flags)) {
149 unsigned long phys = page_to_phys(page);
150 @@ -256,7 +256,7 @@ update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
151 * flush_dcache_page() on the page.
152 */
153
154 -#if (DCACHE_WAY_SIZE > PAGE_SIZE) && XCHAL_DCACHE_IS_WRITEBACK
155 +#if (DCACHE_WAY_SIZE > PAGE_SIZE)
156
157 void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
158 unsigned long vaddr, void *dst, const void *src,
159 diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
160 index afdd55ddf821..1ac9a95e1d78 100644
161 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
162 +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
163 @@ -264,8 +264,8 @@ static int submit_reloc(struct etnaviv_gem_submit *submit, void *stream,
164 if (ret)
165 return ret;
166
167 - if (r->reloc_offset >= bo->obj->base.size - sizeof(*ptr)) {
168 - DRM_ERROR("relocation %u outside object", i);
169 + if (r->reloc_offset > bo->obj->base.size - sizeof(*ptr)) {
170 + DRM_ERROR("relocation %u outside object\n", i);
171 return -EINVAL;
172 }
173
174 diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
175 index 95a72771eea6..89a77743ab29 100644
176 --- a/drivers/gpu/drm/i915/intel_color.c
177 +++ b/drivers/gpu/drm/i915/intel_color.c
178 @@ -394,6 +394,7 @@ static void broadwell_load_luts(struct drm_crtc_state *state)
179 }
180
181 /* Program the max register to clamp values > 1.0. */
182 + i = lut_size - 1;
183 I915_WRITE(PREC_PAL_GC_MAX(pipe, 0),
184 drm_color_lut_extract(lut[i].red, 16));
185 I915_WRITE(PREC_PAL_GC_MAX(pipe, 1),
186 diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
187 index 59b380dbf27f..c3888822add1 100644
188 --- a/drivers/iio/accel/bmc150-accel-core.c
189 +++ b/drivers/iio/accel/bmc150-accel-core.c
190 @@ -193,7 +193,6 @@ struct bmc150_accel_data {
191 struct regmap *regmap;
192 int irq;
193 struct bmc150_accel_interrupt interrupts[BMC150_ACCEL_INTERRUPTS];
194 - atomic_t active_intr;
195 struct bmc150_accel_trigger triggers[BMC150_ACCEL_TRIGGERS];
196 struct mutex mutex;
197 u8 fifo_mode, watermark;
198 @@ -493,11 +492,6 @@ static int bmc150_accel_set_interrupt(struct bmc150_accel_data *data, int i,
199 goto out_fix_power_state;
200 }
201
202 - if (state)
203 - atomic_inc(&data->active_intr);
204 - else
205 - atomic_dec(&data->active_intr);
206 -
207 return 0;
208
209 out_fix_power_state:
210 @@ -1709,8 +1703,7 @@ static int bmc150_accel_resume(struct device *dev)
211 struct bmc150_accel_data *data = iio_priv(indio_dev);
212
213 mutex_lock(&data->mutex);
214 - if (atomic_read(&data->active_intr))
215 - bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0);
216 + bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0);
217 bmc150_accel_fifo_set_mode(data);
218 mutex_unlock(&data->mutex);
219
220 diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c
221 index 228a003adeed..d1bde6d2721e 100644
222 --- a/drivers/iio/adc/vf610_adc.c
223 +++ b/drivers/iio/adc/vf610_adc.c
224 @@ -77,7 +77,7 @@
225 #define VF610_ADC_ADSTS_MASK 0x300
226 #define VF610_ADC_ADLPC_EN 0x80
227 #define VF610_ADC_ADHSC_EN 0x400
228 -#define VF610_ADC_REFSEL_VALT 0x100
229 +#define VF610_ADC_REFSEL_VALT 0x800
230 #define VF610_ADC_REFSEL_VBG 0x1000
231 #define VF610_ADC_ADTRG_HARD 0x2000
232 #define VF610_ADC_AVGS_8 0x4000
233 diff --git a/drivers/iio/light/tsl2563.c b/drivers/iio/light/tsl2563.c
234 index 04598ae993d4..f0d3f749aa01 100644
235 --- a/drivers/iio/light/tsl2563.c
236 +++ b/drivers/iio/light/tsl2563.c
237 @@ -626,7 +626,7 @@ static irqreturn_t tsl2563_event_handler(int irq, void *private)
238 struct tsl2563_chip *chip = iio_priv(dev_info);
239
240 iio_push_event(dev_info,
241 - IIO_UNMOD_EVENT_CODE(IIO_LIGHT,
242 + IIO_UNMOD_EVENT_CODE(IIO_INTENSITY,
243 0,
244 IIO_EV_TYPE_THRESH,
245 IIO_EV_DIR_EITHER),
246 diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
247 index 323dba35bc9a..b2ca10c4d2a5 100644
248 --- a/drivers/mmc/core/mmc.c
249 +++ b/drivers/mmc/core/mmc.c
250 @@ -1258,7 +1258,7 @@ int mmc_hs400_to_hs200(struct mmc_card *card)
251 static int mmc_select_hs400es(struct mmc_card *card)
252 {
253 struct mmc_host *host = card->host;
254 - int err = 0;
255 + int err = -EINVAL;
256 u8 val;
257
258 if (!(host->caps & MMC_CAP_8_BIT_DATA)) {
259 diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
260 index f222f8a7ba52..31a6ee307d80 100644
261 --- a/drivers/mtd/nand/nand_base.c
262 +++ b/drivers/mtd/nand/nand_base.c
263 @@ -64,8 +64,14 @@ static int nand_ooblayout_ecc_sp(struct mtd_info *mtd, int section,
264
265 if (!section) {
266 oobregion->offset = 0;
267 - oobregion->length = 4;
268 + if (mtd->oobsize == 16)
269 + oobregion->length = 4;
270 + else
271 + oobregion->length = 3;
272 } else {
273 + if (mtd->oobsize == 8)
274 + return -ERANGE;
275 +
276 oobregion->offset = 6;
277 oobregion->length = ecc->total - 4;
278 }
279 @@ -1081,7 +1087,9 @@ static int nand_setup_data_interface(struct nand_chip *chip)
280 * Ensure the timing mode has been changed on the chip side
281 * before changing timings on the controller side.
282 */
283 - if (chip->onfi_version) {
284 + if (chip->onfi_version &&
285 + (le16_to_cpu(chip->onfi_params.opt_cmd) &
286 + ONFI_OPT_CMD_SET_GET_FEATURES)) {
287 u8 tmode_param[ONFI_SUBFEATURE_PARAM_LEN] = {
288 chip->onfi_timing_mode_default,
289 };
290 diff --git a/drivers/pinctrl/intel/pinctrl-merrifield.c b/drivers/pinctrl/intel/pinctrl-merrifield.c
291 index 9931be6af0ca..04d6fd2be08c 100644
292 --- a/drivers/pinctrl/intel/pinctrl-merrifield.c
293 +++ b/drivers/pinctrl/intel/pinctrl-merrifield.c
294 @@ -343,9 +343,9 @@ static const struct pinctrl_pin_desc mrfld_pins[] = {
295
296 static const unsigned int mrfld_sdio_pins[] = { 50, 51, 52, 53, 54, 55, 56 };
297 static const unsigned int mrfld_spi5_pins[] = { 90, 91, 92, 93, 94, 95, 96 };
298 -static const unsigned int mrfld_uart0_pins[] = { 124, 125, 126, 127 };
299 -static const unsigned int mrfld_uart1_pins[] = { 128, 129, 130, 131 };
300 -static const unsigned int mrfld_uart2_pins[] = { 132, 133, 134, 135 };
301 +static const unsigned int mrfld_uart0_pins[] = { 115, 116, 117, 118 };
302 +static const unsigned int mrfld_uart1_pins[] = { 119, 120, 121, 122 };
303 +static const unsigned int mrfld_uart2_pins[] = { 123, 124, 125, 126 };
304 static const unsigned int mrfld_pwm0_pins[] = { 144 };
305 static const unsigned int mrfld_pwm1_pins[] = { 145 };
306 static const unsigned int mrfld_pwm2_pins[] = { 132 };
307 diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
308 index c3928aa3fefa..7511723c6b05 100644
309 --- a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
310 +++ b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
311 @@ -85,6 +85,7 @@ static const struct pinctrl_pin_desc meson_gxbb_periphs_pins[] = {
312 MESON_PIN(GPIODV_15, EE_OFF),
313 MESON_PIN(GPIODV_16, EE_OFF),
314 MESON_PIN(GPIODV_17, EE_OFF),
315 + MESON_PIN(GPIODV_18, EE_OFF),
316 MESON_PIN(GPIODV_19, EE_OFF),
317 MESON_PIN(GPIODV_20, EE_OFF),
318 MESON_PIN(GPIODV_21, EE_OFF),
319 diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c
320 index d32fa2b5ff82..e8aee6d88a40 100644
321 --- a/drivers/pinctrl/samsung/pinctrl-exynos.c
322 +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c
323 @@ -195,8 +195,6 @@ static int exynos_irq_request_resources(struct irq_data *irqd)
324
325 spin_unlock_irqrestore(&bank->slock, flags);
326
327 - exynos_irq_unmask(irqd);
328 -
329 return 0;
330 }
331
332 @@ -217,8 +215,6 @@ static void exynos_irq_release_resources(struct irq_data *irqd)
333 shift = irqd->hwirq * bank_type->fld_width[PINCFG_TYPE_FUNC];
334 mask = (1 << bank_type->fld_width[PINCFG_TYPE_FUNC]) - 1;
335
336 - exynos_irq_mask(irqd);
337 -
338 spin_lock_irqsave(&bank->slock, flags);
339
340 con = readl(d->virt_base + reg_con);
341 diff --git a/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c b/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
342 index 862a096c5dba..be5c71df148d 100644
343 --- a/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
344 +++ b/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
345 @@ -811,6 +811,7 @@ static const struct sunxi_desc_pin sun4i_a10_pins[] = {
346 SUNXI_FUNCTION(0x2, "lcd1"), /* D16 */
347 SUNXI_FUNCTION(0x3, "pata"), /* ATAD12 */
348 SUNXI_FUNCTION(0x4, "keypad"), /* IN6 */
349 + SUNXI_FUNCTION(0x5, "sim"), /* DET */
350 SUNXI_FUNCTION_IRQ(0x6, 16), /* EINT16 */
351 SUNXI_FUNCTION(0x7, "csi1")), /* D16 */
352 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17),
353 diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
354 index 77a0236ee781..b190904c864a 100644
355 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
356 +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
357 @@ -508,57 +508,71 @@ static const unsigned usb1_pins[] = {48, 49};
358 static const int usb1_muxvals[] = {0, 0};
359 static const unsigned usb2_pins[] = {50, 51};
360 static const int usb2_muxvals[] = {0, 0};
361 -static const unsigned port_range_pins[] = {
362 +static const unsigned port_range0_pins[] = {
363 159, 160, 161, 162, 163, 164, 165, 166, /* PORT0x */
364 0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */
365 8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */
366 - 16, 17, 18, -1, -1, -1, -1, -1, /* PORT3x */
367 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT4x */
368 - -1, -1, -1, 46, 47, 48, 49, 50, /* PORT5x */
369 - 51, -1, -1, 54, 55, 56, 57, 58, /* PORT6x */
370 + 16, 17, 18, /* PORT30-32 */
371 +};
372 +static const int port_range0_muxvals[] = {
373 + 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
374 + 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
375 + 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
376 + 15, 15, 15, /* PORT30-32 */
377 +};
378 +static const unsigned port_range1_pins[] = {
379 + 46, 47, 48, 49, 50, /* PORT53-57 */
380 + 51, /* PORT60 */
381 +};
382 +static const int port_range1_muxvals[] = {
383 + 15, 15, 15, 15, 15, /* PORT53-57 */
384 + 15, /* PORT60 */
385 +};
386 +static const unsigned port_range2_pins[] = {
387 + 54, 55, 56, 57, 58, /* PORT63-67 */
388 59, 60, 69, 70, 71, 72, 73, 74, /* PORT7x */
389 75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */
390 83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */
391 91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */
392 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */
393 - 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
394 - 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
395 - 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
396 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */
397 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */
398 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */
399 - 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
400 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */
401 - 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
402 - 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
403 - 139, 140, 141, 142, -1, -1, -1, -1, /* PORT22x */
404 - 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
405 - 155, 156, 157, 143, 144, 145, 146, 158, /* PORT24x */
406 };
407 -static const int port_range_muxvals[] = {
408 - 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
409 - 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
410 - 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
411 - 15, 15, 15, -1, -1, -1, -1, -1, /* PORT3x */
412 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT4x */
413 - -1, -1, -1, 15, 15, 15, 15, 15, /* PORT5x */
414 - 15, -1, -1, 15, 15, 15, 15, 15, /* PORT6x */
415 +static const int port_range2_muxvals[] = {
416 + 15, 15, 15, 15, 15, /* PORT63-67 */
417 15, 15, 15, 15, 15, 15, 15, 15, /* PORT7x */
418 15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */
419 15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */
420 15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */
421 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */
422 +};
423 +static const unsigned port_range3_pins[] = {
424 + 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
425 + 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
426 + 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
427 +};
428 +static const int port_range3_muxvals[] = {
429 15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */
430 15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */
431 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */
432 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */
433 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */
434 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */
435 +};
436 +static const unsigned port_range4_pins[] = {
437 + 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
438 +};
439 +static const int port_range4_muxvals[] = {
440 15, 15, 15, 15, 15, 15, 15, 15, /* PORT18x */
441 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */
442 +};
443 +static const unsigned port_range5_pins[] = {
444 + 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
445 + 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
446 + 139, 140, 141, 142, /* PORT220-223 */
447 +};
448 +static const int port_range5_muxvals[] = {
449 15, 15, 15, 15, 15, 15, 15, 15, /* PORT20x */
450 15, 15, 15, 15, 15, 15, 15, 15, /* PORT21x */
451 - 15, 15, 15, 15, -1, -1, -1, -1, /* PORT22x */
452 + 15, 15, 15, 15, /* PORT220-223 */
453 +};
454 +static const unsigned port_range6_pins[] = {
455 + 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
456 + 155, 156, 157, 143, 144, 145, 146, 158, /* PORT24x */
457 +};
458 +static const int port_range6_muxvals[] = {
459 15, 15, 15, 15, 15, 15, 15, 15, /* PORT23x */
460 15, 15, 15, 15, 15, 15, 15, 15, /* PORT24x */
461 };
462 @@ -607,147 +621,153 @@ static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = {
463 UNIPHIER_PINCTRL_GROUP(usb0),
464 UNIPHIER_PINCTRL_GROUP(usb1),
465 UNIPHIER_PINCTRL_GROUP(usb2),
466 - UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range),
467 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range0),
468 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range1),
469 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range2),
470 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range3),
471 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range4),
472 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range5),
473 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range6),
474 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq),
475 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_alternatives),
476 - UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range, 0),
477 - UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range, 1),
478 - UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range, 2),
479 - UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range, 3),
480 - UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range, 4),
481 - UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range, 5),
482 - UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range, 6),
483 - UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range, 7),
484 - UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range, 8),
485 - UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range, 9),
486 - UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range, 10),
487 - UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range, 11),
488 - UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range, 12),
489 - UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range, 13),
490 - UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range, 14),
491 - UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range, 15),
492 - UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range, 16),
493 - UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range, 17),
494 - UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range, 18),
495 - UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range, 19),
496 - UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range, 20),
497 - UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range, 21),
498 - UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range, 22),
499 - UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range, 23),
500 - UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range, 24),
501 - UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range, 25),
502 - UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range, 26),
503 - UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range, 43),
504 - UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range, 44),
505 - UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range, 45),
506 - UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range, 46),
507 - UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range, 47),
508 - UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range, 48),
509 - UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range, 51),
510 - UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range, 52),
511 - UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range, 53),
512 - UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range, 54),
513 - UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range, 55),
514 - UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range, 56),
515 - UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range, 57),
516 - UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range, 58),
517 - UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range, 59),
518 - UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range, 60),
519 - UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range, 61),
520 - UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range, 62),
521 - UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range, 63),
522 - UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range, 64),
523 - UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range, 65),
524 - UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range, 66),
525 - UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range, 67),
526 - UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range, 68),
527 - UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range, 69),
528 - UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range, 70),
529 - UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range, 71),
530 - UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range, 72),
531 - UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range, 73),
532 - UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range, 74),
533 - UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range, 75),
534 - UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range, 76),
535 - UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range, 77),
536 - UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range, 78),
537 - UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range, 79),
538 - UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range, 80),
539 - UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range, 81),
540 - UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range, 82),
541 - UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range, 83),
542 - UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range, 84),
543 - UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range, 85),
544 - UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range, 86),
545 - UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range, 87),
546 - UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range, 96),
547 - UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range, 97),
548 - UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range, 98),
549 - UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range, 99),
550 - UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range, 100),
551 - UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range, 101),
552 - UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range, 102),
553 - UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range, 103),
554 - UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range, 104),
555 - UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range, 105),
556 - UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range, 106),
557 - UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range, 107),
558 - UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range, 108),
559 - UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range, 109),
560 - UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range, 110),
561 - UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range, 111),
562 - UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range, 112),
563 - UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range, 113),
564 - UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range, 114),
565 - UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range, 115),
566 - UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range, 116),
567 - UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range, 117),
568 - UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range, 118),
569 - UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range, 119),
570 - UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range, 144),
571 - UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range, 145),
572 - UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range, 146),
573 - UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range, 147),
574 - UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range, 148),
575 - UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range, 149),
576 - UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range, 150),
577 - UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range, 151),
578 - UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range, 160),
579 - UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range, 161),
580 - UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range, 162),
581 - UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range, 163),
582 - UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range, 164),
583 - UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range, 165),
584 - UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range, 166),
585 - UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range, 167),
586 - UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range, 168),
587 - UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range, 169),
588 - UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range, 170),
589 - UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range, 171),
590 - UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range, 172),
591 - UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range, 173),
592 - UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range, 174),
593 - UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range, 175),
594 - UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range, 176),
595 - UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range, 177),
596 - UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range, 178),
597 - UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range, 179),
598 - UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range, 184),
599 - UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range, 185),
600 - UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range, 186),
601 - UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range, 187),
602 - UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range, 188),
603 - UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range, 189),
604 - UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range, 190),
605 - UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range, 191),
606 - UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range, 192),
607 - UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range, 193),
608 - UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range, 194),
609 - UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range, 195),
610 - UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range, 196),
611 - UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range, 197),
612 - UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range, 198),
613 - UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range, 199),
614 + UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range0, 0),
615 + UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range0, 1),
616 + UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range0, 2),
617 + UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range0, 3),
618 + UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range0, 4),
619 + UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range0, 5),
620 + UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range0, 6),
621 + UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range0, 7),
622 + UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range0, 8),
623 + UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range0, 9),
624 + UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range0, 10),
625 + UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range0, 11),
626 + UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range0, 12),
627 + UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range0, 13),
628 + UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range0, 14),
629 + UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range0, 15),
630 + UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range0, 16),
631 + UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range0, 17),
632 + UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range0, 18),
633 + UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range0, 19),
634 + UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range0, 20),
635 + UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range0, 21),
636 + UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range0, 22),
637 + UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range0, 23),
638 + UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range0, 24),
639 + UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range0, 25),
640 + UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range0, 26),
641 + UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range1, 0),
642 + UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range1, 1),
643 + UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range1, 2),
644 + UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range1, 3),
645 + UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range1, 4),
646 + UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range1, 5),
647 + UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range2, 0),
648 + UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range2, 1),
649 + UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range2, 2),
650 + UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range2, 3),
651 + UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range2, 4),
652 + UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range2, 5),
653 + UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range2, 6),
654 + UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range2, 7),
655 + UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range2, 8),
656 + UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range2, 9),
657 + UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range2, 10),
658 + UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range2, 11),
659 + UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range2, 12),
660 + UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range2, 13),
661 + UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range2, 14),
662 + UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range2, 15),
663 + UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range2, 16),
664 + UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range2, 17),
665 + UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range2, 18),
666 + UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range2, 19),
667 + UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range2, 20),
668 + UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range2, 21),
669 + UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range2, 22),
670 + UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range2, 23),
671 + UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range2, 24),
672 + UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range2, 25),
673 + UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range2, 26),
674 + UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range2, 27),
675 + UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range2, 28),
676 + UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range2, 29),
677 + UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range2, 30),
678 + UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range2, 31),
679 + UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range2, 32),
680 + UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range2, 33),
681 + UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range2, 34),
682 + UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range2, 35),
683 + UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range2, 36),
684 + UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range3, 0),
685 + UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range3, 1),
686 + UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range3, 2),
687 + UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range3, 3),
688 + UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range3, 4),
689 + UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range3, 5),
690 + UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range3, 6),
691 + UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range3, 7),
692 + UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range3, 8),
693 + UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range3, 9),
694 + UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range3, 10),
695 + UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range3, 11),
696 + UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range3, 12),
697 + UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range3, 13),
698 + UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range3, 14),
699 + UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range3, 15),
700 + UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range3, 16),
701 + UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range3, 17),
702 + UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range3, 18),
703 + UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range3, 19),
704 + UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range3, 20),
705 + UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range3, 21),
706 + UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range3, 22),
707 + UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range3, 23),
708 + UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range4, 0),
709 + UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range4, 1),
710 + UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range4, 2),
711 + UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range4, 3),
712 + UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range4, 4),
713 + UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range4, 5),
714 + UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range4, 6),
715 + UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range4, 7),
716 + UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range5, 0),
717 + UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range5, 1),
718 + UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range5, 2),
719 + UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range5, 3),
720 + UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range5, 4),
721 + UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range5, 5),
722 + UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range5, 6),
723 + UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range5, 7),
724 + UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range5, 8),
725 + UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range5, 9),
726 + UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range5, 10),
727 + UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range5, 11),
728 + UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range5, 12),
729 + UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range5, 13),
730 + UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range5, 14),
731 + UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range5, 15),
732 + UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range5, 16),
733 + UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range5, 17),
734 + UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range5, 18),
735 + UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range5, 19),
736 + UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range6, 0),
737 + UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range6, 1),
738 + UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range6, 2),
739 + UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range6, 3),
740 + UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range6, 4),
741 + UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range6, 5),
742 + UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range6, 6),
743 + UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range6, 7),
744 + UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range6, 8),
745 + UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range6, 9),
746 + UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range6, 10),
747 + UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range6, 11),
748 + UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range6, 12),
749 + UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range6, 13),
750 + UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range6, 14),
751 + UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range6, 15),
752 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq, 0),
753 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq, 1),
754 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq, 2),
755 diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
756 index 96686336e3a3..73b828b22901 100644
757 --- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
758 +++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
759 @@ -597,7 +597,7 @@ static const unsigned usb2_pins[] = {50, 51};
760 static const int usb2_muxvals[] = {0, 0};
761 static const unsigned usb3_pins[] = {52, 53};
762 static const int usb3_muxvals[] = {0, 0};
763 -static const unsigned port_range_pins[] = {
764 +static const unsigned port_range0_pins[] = {
765 168, 169, 170, 171, 172, 173, 174, 175, /* PORT0x */
766 0, 1, 2, 3, 4, 5, 6, 7, /* PORT1x */
767 8, 9, 10, 11, 12, 13, 14, 15, /* PORT2x */
768 @@ -609,23 +609,8 @@ static const unsigned port_range_pins[] = {
769 75, 76, 77, 78, 79, 80, 81, 82, /* PORT8x */
770 83, 84, 85, 86, 87, 88, 89, 90, /* PORT9x */
771 91, 92, 93, 94, 95, 96, 97, 98, /* PORT10x */
772 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */
773 - 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
774 - 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
775 - 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
776 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */
777 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */
778 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */
779 - 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
780 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */
781 - 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
782 - 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
783 - 139, 140, 141, 142, 143, 144, 145, 146, /* PORT22x */
784 - 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
785 - 155, 156, 157, 158, 159, 160, 161, 162, /* PORT24x */
786 - 163, 164, 165, 166, 167, /* PORT25x */
787 };
788 -static const int port_range_muxvals[] = {
789 +static const int port_range0_muxvals[] = {
790 15, 15, 15, 15, 15, 15, 15, 15, /* PORT0x */
791 15, 15, 15, 15, 15, 15, 15, 15, /* PORT1x */
792 15, 15, 15, 15, 15, 15, 15, 15, /* PORT2x */
793 @@ -637,21 +622,38 @@ static const int port_range_muxvals[] = {
794 15, 15, 15, 15, 15, 15, 15, 15, /* PORT8x */
795 15, 15, 15, 15, 15, 15, 15, 15, /* PORT9x */
796 15, 15, 15, 15, 15, 15, 15, 15, /* PORT10x */
797 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT11x */
798 +};
799 +static const unsigned port_range1_pins[] = {
800 + 99, 100, 101, 102, 103, 104, 105, 106, /* PORT12x */
801 + 107, 108, 109, 110, 111, 112, 113, 114, /* PORT13x */
802 + 115, 116, 117, 118, 119, 120, 121, 122, /* PORT14x */
803 +};
804 +static const int port_range1_muxvals[] = {
805 15, 15, 15, 15, 15, 15, 15, 15, /* PORT12x */
806 15, 15, 15, 15, 15, 15, 15, 15, /* PORT13x */
807 15, 15, 15, 15, 15, 15, 15, 15, /* PORT14x */
808 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT15x */
809 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT16x */
810 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT17x */
811 +};
812 +static const unsigned port_range2_pins[] = {
813 + 61, 62, 63, 64, 65, 66, 67, 68, /* PORT18x */
814 +};
815 +static const int port_range2_muxvals[] = {
816 15, 15, 15, 15, 15, 15, 15, 15, /* PORT18x */
817 - -1, -1, -1, -1, -1, -1, -1, -1, /* PORT19x */
818 +};
819 +static const unsigned port_range3_pins[] = {
820 + 123, 124, 125, 126, 127, 128, 129, 130, /* PORT20x */
821 + 131, 132, 133, 134, 135, 136, 137, 138, /* PORT21x */
822 + 139, 140, 141, 142, 143, 144, 145, 146, /* PORT22x */
823 + 147, 148, 149, 150, 151, 152, 153, 154, /* PORT23x */
824 + 155, 156, 157, 158, 159, 160, 161, 162, /* PORT24x */
825 + 163, 164, 165, 166, 167, /* PORT250-254 */
826 +};
827 +static const int port_range3_muxvals[] = {
828 15, 15, 15, 15, 15, 15, 15, 15, /* PORT20x */
829 15, 15, 15, 15, 15, 15, 15, 15, /* PORT21x */
830 15, 15, 15, 15, 15, 15, 15, 15, /* PORT22x */
831 15, 15, 15, 15, 15, 15, 15, 15, /* PORT23x */
832 15, 15, 15, 15, 15, 15, 15, 15, /* PORT24x */
833 - 15, 15, 15, 15, 15, /* PORT25x */
834 + 15, 15, 15, 15, 15, /* PORT250-254 */
835 };
836 static const unsigned xirq_pins[] = {
837 149, 150, 151, 152, 153, 154, 155, 156, /* XIRQ0-7 */
838 @@ -695,174 +697,177 @@ static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = {
839 UNIPHIER_PINCTRL_GROUP(usb1),
840 UNIPHIER_PINCTRL_GROUP(usb2),
841 UNIPHIER_PINCTRL_GROUP(usb3),
842 - UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range),
843 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range0),
844 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range1),
845 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range2),
846 + UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_PORT(port_range3),
847 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq),
848 UNIPHIER_PINCTRL_GROUP_GPIO_RANGE_IRQ(xirq_alternatives),
849 - UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range, 0),
850 - UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range, 1),
851 - UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range, 2),
852 - UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range, 3),
853 - UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range, 4),
854 - UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range, 5),
855 - UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range, 6),
856 - UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range, 7),
857 - UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range, 8),
858 - UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range, 9),
859 - UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range, 10),
860 - UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range, 11),
861 - UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range, 12),
862 - UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range, 13),
863 - UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range, 14),
864 - UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range, 15),
865 - UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range, 16),
866 - UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range, 17),
867 - UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range, 18),
868 - UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range, 19),
869 - UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range, 20),
870 - UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range, 21),
871 - UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range, 22),
872 - UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range, 23),
873 - UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range, 24),
874 - UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range, 25),
875 - UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range, 26),
876 - UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range, 27),
877 - UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range, 28),
878 - UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range, 29),
879 - UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range, 30),
880 - UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range, 31),
881 - UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range, 32),
882 - UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range, 33),
883 - UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range, 34),
884 - UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range, 35),
885 - UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range, 36),
886 - UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range, 37),
887 - UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range, 38),
888 - UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range, 39),
889 - UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range, 40),
890 - UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range, 41),
891 - UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range, 42),
892 - UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range, 43),
893 - UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range, 44),
894 - UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range, 45),
895 - UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range, 46),
896 - UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range, 47),
897 - UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range, 48),
898 - UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range, 49),
899 - UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range, 50),
900 - UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range, 51),
901 - UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range, 52),
902 - UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range, 53),
903 - UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range, 54),
904 - UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range, 55),
905 - UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range, 56),
906 - UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range, 57),
907 - UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range, 58),
908 - UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range, 59),
909 - UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range, 60),
910 - UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range, 61),
911 - UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range, 62),
912 - UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range, 63),
913 - UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range, 64),
914 - UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range, 65),
915 - UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range, 66),
916 - UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range, 67),
917 - UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range, 68),
918 - UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range, 69),
919 - UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range, 70),
920 - UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range, 71),
921 - UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range, 72),
922 - UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range, 73),
923 - UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range, 74),
924 - UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range, 75),
925 - UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range, 76),
926 - UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range, 77),
927 - UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range, 78),
928 - UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range, 79),
929 - UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range, 80),
930 - UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range, 81),
931 - UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range, 82),
932 - UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range, 83),
933 - UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range, 84),
934 - UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range, 85),
935 - UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range, 86),
936 - UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range, 87),
937 - UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range, 96),
938 - UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range, 97),
939 - UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range, 98),
940 - UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range, 99),
941 - UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range, 100),
942 - UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range, 101),
943 - UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range, 102),
944 - UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range, 103),
945 - UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range, 104),
946 - UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range, 105),
947 - UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range, 106),
948 - UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range, 107),
949 - UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range, 108),
950 - UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range, 109),
951 - UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range, 110),
952 - UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range, 111),
953 - UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range, 112),
954 - UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range, 113),
955 - UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range, 114),
956 - UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range, 115),
957 - UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range, 116),
958 - UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range, 117),
959 - UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range, 118),
960 - UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range, 119),
961 - UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range, 144),
962 - UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range, 145),
963 - UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range, 146),
964 - UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range, 147),
965 - UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range, 148),
966 - UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range, 149),
967 - UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range, 150),
968 - UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range, 151),
969 - UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range, 160),
970 - UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range, 161),
971 - UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range, 162),
972 - UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range, 163),
973 - UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range, 164),
974 - UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range, 165),
975 - UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range, 166),
976 - UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range, 167),
977 - UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range, 168),
978 - UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range, 169),
979 - UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range, 170),
980 - UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range, 171),
981 - UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range, 172),
982 - UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range, 173),
983 - UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range, 174),
984 - UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range, 175),
985 - UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range, 176),
986 - UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range, 177),
987 - UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range, 178),
988 - UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range, 179),
989 - UNIPHIER_PINCTRL_GROUP_SINGLE(port224, port_range, 180),
990 - UNIPHIER_PINCTRL_GROUP_SINGLE(port225, port_range, 181),
991 - UNIPHIER_PINCTRL_GROUP_SINGLE(port226, port_range, 182),
992 - UNIPHIER_PINCTRL_GROUP_SINGLE(port227, port_range, 183),
993 - UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range, 184),
994 - UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range, 185),
995 - UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range, 186),
996 - UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range, 187),
997 - UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range, 188),
998 - UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range, 189),
999 - UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range, 190),
1000 - UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range, 191),
1001 - UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range, 192),
1002 - UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range, 193),
1003 - UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range, 194),
1004 - UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range, 195),
1005 - UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range, 196),
1006 - UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range, 197),
1007 - UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range, 198),
1008 - UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range, 199),
1009 - UNIPHIER_PINCTRL_GROUP_SINGLE(port250, port_range, 200),
1010 - UNIPHIER_PINCTRL_GROUP_SINGLE(port251, port_range, 201),
1011 - UNIPHIER_PINCTRL_GROUP_SINGLE(port252, port_range, 202),
1012 - UNIPHIER_PINCTRL_GROUP_SINGLE(port253, port_range, 203),
1013 - UNIPHIER_PINCTRL_GROUP_SINGLE(port254, port_range, 204),
1014 + UNIPHIER_PINCTRL_GROUP_SINGLE(port00, port_range0, 0),
1015 + UNIPHIER_PINCTRL_GROUP_SINGLE(port01, port_range0, 1),
1016 + UNIPHIER_PINCTRL_GROUP_SINGLE(port02, port_range0, 2),
1017 + UNIPHIER_PINCTRL_GROUP_SINGLE(port03, port_range0, 3),
1018 + UNIPHIER_PINCTRL_GROUP_SINGLE(port04, port_range0, 4),
1019 + UNIPHIER_PINCTRL_GROUP_SINGLE(port05, port_range0, 5),
1020 + UNIPHIER_PINCTRL_GROUP_SINGLE(port06, port_range0, 6),
1021 + UNIPHIER_PINCTRL_GROUP_SINGLE(port07, port_range0, 7),
1022 + UNIPHIER_PINCTRL_GROUP_SINGLE(port10, port_range0, 8),
1023 + UNIPHIER_PINCTRL_GROUP_SINGLE(port11, port_range0, 9),
1024 + UNIPHIER_PINCTRL_GROUP_SINGLE(port12, port_range0, 10),
1025 + UNIPHIER_PINCTRL_GROUP_SINGLE(port13, port_range0, 11),
1026 + UNIPHIER_PINCTRL_GROUP_SINGLE(port14, port_range0, 12),
1027 + UNIPHIER_PINCTRL_GROUP_SINGLE(port15, port_range0, 13),
1028 + UNIPHIER_PINCTRL_GROUP_SINGLE(port16, port_range0, 14),
1029 + UNIPHIER_PINCTRL_GROUP_SINGLE(port17, port_range0, 15),
1030 + UNIPHIER_PINCTRL_GROUP_SINGLE(port20, port_range0, 16),
1031 + UNIPHIER_PINCTRL_GROUP_SINGLE(port21, port_range0, 17),
1032 + UNIPHIER_PINCTRL_GROUP_SINGLE(port22, port_range0, 18),
1033 + UNIPHIER_PINCTRL_GROUP_SINGLE(port23, port_range0, 19),
1034 + UNIPHIER_PINCTRL_GROUP_SINGLE(port24, port_range0, 20),
1035 + UNIPHIER_PINCTRL_GROUP_SINGLE(port25, port_range0, 21),
1036 + UNIPHIER_PINCTRL_GROUP_SINGLE(port26, port_range0, 22),
1037 + UNIPHIER_PINCTRL_GROUP_SINGLE(port27, port_range0, 23),
1038 + UNIPHIER_PINCTRL_GROUP_SINGLE(port30, port_range0, 24),
1039 + UNIPHIER_PINCTRL_GROUP_SINGLE(port31, port_range0, 25),
1040 + UNIPHIER_PINCTRL_GROUP_SINGLE(port32, port_range0, 26),
1041 + UNIPHIER_PINCTRL_GROUP_SINGLE(port33, port_range0, 27),
1042 + UNIPHIER_PINCTRL_GROUP_SINGLE(port34, port_range0, 28),
1043 + UNIPHIER_PINCTRL_GROUP_SINGLE(port35, port_range0, 29),
1044 + UNIPHIER_PINCTRL_GROUP_SINGLE(port36, port_range0, 30),
1045 + UNIPHIER_PINCTRL_GROUP_SINGLE(port37, port_range0, 31),
1046 + UNIPHIER_PINCTRL_GROUP_SINGLE(port40, port_range0, 32),
1047 + UNIPHIER_PINCTRL_GROUP_SINGLE(port41, port_range0, 33),
1048 + UNIPHIER_PINCTRL_GROUP_SINGLE(port42, port_range0, 34),
1049 + UNIPHIER_PINCTRL_GROUP_SINGLE(port43, port_range0, 35),
1050 + UNIPHIER_PINCTRL_GROUP_SINGLE(port44, port_range0, 36),
1051 + UNIPHIER_PINCTRL_GROUP_SINGLE(port45, port_range0, 37),
1052 + UNIPHIER_PINCTRL_GROUP_SINGLE(port46, port_range0, 38),
1053 + UNIPHIER_PINCTRL_GROUP_SINGLE(port47, port_range0, 39),
1054 + UNIPHIER_PINCTRL_GROUP_SINGLE(port50, port_range0, 40),
1055 + UNIPHIER_PINCTRL_GROUP_SINGLE(port51, port_range0, 41),
1056 + UNIPHIER_PINCTRL_GROUP_SINGLE(port52, port_range0, 42),
1057 + UNIPHIER_PINCTRL_GROUP_SINGLE(port53, port_range0, 43),
1058 + UNIPHIER_PINCTRL_GROUP_SINGLE(port54, port_range0, 44),
1059 + UNIPHIER_PINCTRL_GROUP_SINGLE(port55, port_range0, 45),
1060 + UNIPHIER_PINCTRL_GROUP_SINGLE(port56, port_range0, 46),
1061 + UNIPHIER_PINCTRL_GROUP_SINGLE(port57, port_range0, 47),
1062 + UNIPHIER_PINCTRL_GROUP_SINGLE(port60, port_range0, 48),
1063 + UNIPHIER_PINCTRL_GROUP_SINGLE(port61, port_range0, 49),
1064 + UNIPHIER_PINCTRL_GROUP_SINGLE(port62, port_range0, 50),
1065 + UNIPHIER_PINCTRL_GROUP_SINGLE(port63, port_range0, 51),
1066 + UNIPHIER_PINCTRL_GROUP_SINGLE(port64, port_range0, 52),
1067 + UNIPHIER_PINCTRL_GROUP_SINGLE(port65, port_range0, 53),
1068 + UNIPHIER_PINCTRL_GROUP_SINGLE(port66, port_range0, 54),
1069 + UNIPHIER_PINCTRL_GROUP_SINGLE(port67, port_range0, 55),
1070 + UNIPHIER_PINCTRL_GROUP_SINGLE(port70, port_range0, 56),
1071 + UNIPHIER_PINCTRL_GROUP_SINGLE(port71, port_range0, 57),
1072 + UNIPHIER_PINCTRL_GROUP_SINGLE(port72, port_range0, 58),
1073 + UNIPHIER_PINCTRL_GROUP_SINGLE(port73, port_range0, 59),
1074 + UNIPHIER_PINCTRL_GROUP_SINGLE(port74, port_range0, 60),
1075 + UNIPHIER_PINCTRL_GROUP_SINGLE(port75, port_range0, 61),
1076 + UNIPHIER_PINCTRL_GROUP_SINGLE(port76, port_range0, 62),
1077 + UNIPHIER_PINCTRL_GROUP_SINGLE(port77, port_range0, 63),
1078 + UNIPHIER_PINCTRL_GROUP_SINGLE(port80, port_range0, 64),
1079 + UNIPHIER_PINCTRL_GROUP_SINGLE(port81, port_range0, 65),
1080 + UNIPHIER_PINCTRL_GROUP_SINGLE(port82, port_range0, 66),
1081 + UNIPHIER_PINCTRL_GROUP_SINGLE(port83, port_range0, 67),
1082 + UNIPHIER_PINCTRL_GROUP_SINGLE(port84, port_range0, 68),
1083 + UNIPHIER_PINCTRL_GROUP_SINGLE(port85, port_range0, 69),
1084 + UNIPHIER_PINCTRL_GROUP_SINGLE(port86, port_range0, 70),
1085 + UNIPHIER_PINCTRL_GROUP_SINGLE(port87, port_range0, 71),
1086 + UNIPHIER_PINCTRL_GROUP_SINGLE(port90, port_range0, 72),
1087 + UNIPHIER_PINCTRL_GROUP_SINGLE(port91, port_range0, 73),
1088 + UNIPHIER_PINCTRL_GROUP_SINGLE(port92, port_range0, 74),
1089 + UNIPHIER_PINCTRL_GROUP_SINGLE(port93, port_range0, 75),
1090 + UNIPHIER_PINCTRL_GROUP_SINGLE(port94, port_range0, 76),
1091 + UNIPHIER_PINCTRL_GROUP_SINGLE(port95, port_range0, 77),
1092 + UNIPHIER_PINCTRL_GROUP_SINGLE(port96, port_range0, 78),
1093 + UNIPHIER_PINCTRL_GROUP_SINGLE(port97, port_range0, 79),
1094 + UNIPHIER_PINCTRL_GROUP_SINGLE(port100, port_range0, 80),
1095 + UNIPHIER_PINCTRL_GROUP_SINGLE(port101, port_range0, 81),
1096 + UNIPHIER_PINCTRL_GROUP_SINGLE(port102, port_range0, 82),
1097 + UNIPHIER_PINCTRL_GROUP_SINGLE(port103, port_range0, 83),
1098 + UNIPHIER_PINCTRL_GROUP_SINGLE(port104, port_range0, 84),
1099 + UNIPHIER_PINCTRL_GROUP_SINGLE(port105, port_range0, 85),
1100 + UNIPHIER_PINCTRL_GROUP_SINGLE(port106, port_range0, 86),
1101 + UNIPHIER_PINCTRL_GROUP_SINGLE(port107, port_range0, 87),
1102 + UNIPHIER_PINCTRL_GROUP_SINGLE(port120, port_range1, 0),
1103 + UNIPHIER_PINCTRL_GROUP_SINGLE(port121, port_range1, 1),
1104 + UNIPHIER_PINCTRL_GROUP_SINGLE(port122, port_range1, 2),
1105 + UNIPHIER_PINCTRL_GROUP_SINGLE(port123, port_range1, 3),
1106 + UNIPHIER_PINCTRL_GROUP_SINGLE(port124, port_range1, 4),
1107 + UNIPHIER_PINCTRL_GROUP_SINGLE(port125, port_range1, 5),
1108 + UNIPHIER_PINCTRL_GROUP_SINGLE(port126, port_range1, 6),
1109 + UNIPHIER_PINCTRL_GROUP_SINGLE(port127, port_range1, 7),
1110 + UNIPHIER_PINCTRL_GROUP_SINGLE(port130, port_range1, 8),
1111 + UNIPHIER_PINCTRL_GROUP_SINGLE(port131, port_range1, 9),
1112 + UNIPHIER_PINCTRL_GROUP_SINGLE(port132, port_range1, 10),
1113 + UNIPHIER_PINCTRL_GROUP_SINGLE(port133, port_range1, 11),
1114 + UNIPHIER_PINCTRL_GROUP_SINGLE(port134, port_range1, 12),
1115 + UNIPHIER_PINCTRL_GROUP_SINGLE(port135, port_range1, 13),
1116 + UNIPHIER_PINCTRL_GROUP_SINGLE(port136, port_range1, 14),
1117 + UNIPHIER_PINCTRL_GROUP_SINGLE(port137, port_range1, 15),
1118 + UNIPHIER_PINCTRL_GROUP_SINGLE(port140, port_range1, 16),
1119 + UNIPHIER_PINCTRL_GROUP_SINGLE(port141, port_range1, 17),
1120 + UNIPHIER_PINCTRL_GROUP_SINGLE(port142, port_range1, 18),
1121 + UNIPHIER_PINCTRL_GROUP_SINGLE(port143, port_range1, 19),
1122 + UNIPHIER_PINCTRL_GROUP_SINGLE(port144, port_range1, 20),
1123 + UNIPHIER_PINCTRL_GROUP_SINGLE(port145, port_range1, 21),
1124 + UNIPHIER_PINCTRL_GROUP_SINGLE(port146, port_range1, 22),
1125 + UNIPHIER_PINCTRL_GROUP_SINGLE(port147, port_range1, 23),
1126 + UNIPHIER_PINCTRL_GROUP_SINGLE(port180, port_range2, 0),
1127 + UNIPHIER_PINCTRL_GROUP_SINGLE(port181, port_range2, 1),
1128 + UNIPHIER_PINCTRL_GROUP_SINGLE(port182, port_range2, 2),
1129 + UNIPHIER_PINCTRL_GROUP_SINGLE(port183, port_range2, 3),
1130 + UNIPHIER_PINCTRL_GROUP_SINGLE(port184, port_range2, 4),
1131 + UNIPHIER_PINCTRL_GROUP_SINGLE(port185, port_range2, 5),
1132 + UNIPHIER_PINCTRL_GROUP_SINGLE(port186, port_range2, 6),
1133 + UNIPHIER_PINCTRL_GROUP_SINGLE(port187, port_range2, 7),
1134 + UNIPHIER_PINCTRL_GROUP_SINGLE(port200, port_range3, 0),
1135 + UNIPHIER_PINCTRL_GROUP_SINGLE(port201, port_range3, 1),
1136 + UNIPHIER_PINCTRL_GROUP_SINGLE(port202, port_range3, 2),
1137 + UNIPHIER_PINCTRL_GROUP_SINGLE(port203, port_range3, 3),
1138 + UNIPHIER_PINCTRL_GROUP_SINGLE(port204, port_range3, 4),
1139 + UNIPHIER_PINCTRL_GROUP_SINGLE(port205, port_range3, 5),
1140 + UNIPHIER_PINCTRL_GROUP_SINGLE(port206, port_range3, 6),
1141 + UNIPHIER_PINCTRL_GROUP_SINGLE(port207, port_range3, 7),
1142 + UNIPHIER_PINCTRL_GROUP_SINGLE(port210, port_range3, 8),
1143 + UNIPHIER_PINCTRL_GROUP_SINGLE(port211, port_range3, 9),
1144 + UNIPHIER_PINCTRL_GROUP_SINGLE(port212, port_range3, 10),
1145 + UNIPHIER_PINCTRL_GROUP_SINGLE(port213, port_range3, 11),
1146 + UNIPHIER_PINCTRL_GROUP_SINGLE(port214, port_range3, 12),
1147 + UNIPHIER_PINCTRL_GROUP_SINGLE(port215, port_range3, 13),
1148 + UNIPHIER_PINCTRL_GROUP_SINGLE(port216, port_range3, 14),
1149 + UNIPHIER_PINCTRL_GROUP_SINGLE(port217, port_range3, 15),
1150 + UNIPHIER_PINCTRL_GROUP_SINGLE(port220, port_range3, 16),
1151 + UNIPHIER_PINCTRL_GROUP_SINGLE(port221, port_range3, 17),
1152 + UNIPHIER_PINCTRL_GROUP_SINGLE(port222, port_range3, 18),
1153 + UNIPHIER_PINCTRL_GROUP_SINGLE(port223, port_range3, 19),
1154 + UNIPHIER_PINCTRL_GROUP_SINGLE(port224, port_range3, 20),
1155 + UNIPHIER_PINCTRL_GROUP_SINGLE(port225, port_range3, 21),
1156 + UNIPHIER_PINCTRL_GROUP_SINGLE(port226, port_range3, 22),
1157 + UNIPHIER_PINCTRL_GROUP_SINGLE(port227, port_range3, 23),
1158 + UNIPHIER_PINCTRL_GROUP_SINGLE(port230, port_range3, 24),
1159 + UNIPHIER_PINCTRL_GROUP_SINGLE(port231, port_range3, 25),
1160 + UNIPHIER_PINCTRL_GROUP_SINGLE(port232, port_range3, 26),
1161 + UNIPHIER_PINCTRL_GROUP_SINGLE(port233, port_range3, 27),
1162 + UNIPHIER_PINCTRL_GROUP_SINGLE(port234, port_range3, 28),
1163 + UNIPHIER_PINCTRL_GROUP_SINGLE(port235, port_range3, 29),
1164 + UNIPHIER_PINCTRL_GROUP_SINGLE(port236, port_range3, 30),
1165 + UNIPHIER_PINCTRL_GROUP_SINGLE(port237, port_range3, 31),
1166 + UNIPHIER_PINCTRL_GROUP_SINGLE(port240, port_range3, 32),
1167 + UNIPHIER_PINCTRL_GROUP_SINGLE(port241, port_range3, 33),
1168 + UNIPHIER_PINCTRL_GROUP_SINGLE(port242, port_range3, 34),
1169 + UNIPHIER_PINCTRL_GROUP_SINGLE(port243, port_range3, 35),
1170 + UNIPHIER_PINCTRL_GROUP_SINGLE(port244, port_range3, 36),
1171 + UNIPHIER_PINCTRL_GROUP_SINGLE(port245, port_range3, 37),
1172 + UNIPHIER_PINCTRL_GROUP_SINGLE(port246, port_range3, 38),
1173 + UNIPHIER_PINCTRL_GROUP_SINGLE(port247, port_range3, 39),
1174 + UNIPHIER_PINCTRL_GROUP_SINGLE(port250, port_range3, 40),
1175 + UNIPHIER_PINCTRL_GROUP_SINGLE(port251, port_range3, 41),
1176 + UNIPHIER_PINCTRL_GROUP_SINGLE(port252, port_range3, 42),
1177 + UNIPHIER_PINCTRL_GROUP_SINGLE(port253, port_range3, 43),
1178 + UNIPHIER_PINCTRL_GROUP_SINGLE(port254, port_range3, 44),
1179 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq0, xirq, 0),
1180 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq1, xirq, 1),
1181 UNIPHIER_PINCTRL_GROUP_SINGLE(xirq2, xirq, 2),
1182 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
1183 index ec9979070479..7458df4b6854 100644
1184 --- a/drivers/staging/comedi/comedi_fops.c
1185 +++ b/drivers/staging/comedi/comedi_fops.c
1186 @@ -2385,6 +2385,7 @@ static ssize_t comedi_write(struct file *file, const char __user *buf,
1187 continue;
1188 }
1189
1190 + set_current_state(TASK_RUNNING);
1191 wp = async->buf_write_ptr;
1192 n1 = min(n, async->prealloc_bufsz - wp);
1193 n2 = n - n1;
1194 @@ -2517,6 +2518,8 @@ static ssize_t comedi_read(struct file *file, char __user *buf, size_t nbytes,
1195 }
1196 continue;
1197 }
1198 +
1199 + set_current_state(TASK_RUNNING);
1200 rp = async->buf_read_ptr;
1201 n1 = min(n, async->prealloc_bufsz - rp);
1202 n2 = n - n1;
1203 diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c
1204 index 6b992634f009..598f0faa48c8 100644
1205 --- a/drivers/staging/iio/resolver/ad2s1210.c
1206 +++ b/drivers/staging/iio/resolver/ad2s1210.c
1207 @@ -472,7 +472,7 @@ static int ad2s1210_read_raw(struct iio_dev *indio_dev,
1208 long m)
1209 {
1210 struct ad2s1210_state *st = iio_priv(indio_dev);
1211 - bool negative;
1212 + u16 negative;
1213 int ret = 0;
1214 u16 pos;
1215 s16 vel;
1216 diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
1217 index 155fe0e0623f..e49fcd5e61f7 100644
1218 --- a/drivers/target/iscsi/iscsi_target.c
1219 +++ b/drivers/target/iscsi/iscsi_target.c
1220 @@ -418,6 +418,7 @@ int iscsit_reset_np_thread(
1221 return 0;
1222 }
1223 np->np_thread_state = ISCSI_NP_THREAD_RESET;
1224 + atomic_inc(&np->np_reset_count);
1225
1226 if (np->np_thread) {
1227 spin_unlock_bh(&np->np_thread_lock);
1228 @@ -2177,6 +2178,7 @@ iscsit_setup_text_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
1229 cmd->cmd_sn = be32_to_cpu(hdr->cmdsn);
1230 cmd->exp_stat_sn = be32_to_cpu(hdr->exp_statsn);
1231 cmd->data_direction = DMA_NONE;
1232 + kfree(cmd->text_in_ptr);
1233 cmd->text_in_ptr = NULL;
1234
1235 return 0;
1236 diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c
1237 index 6128e8e80170..9ccd5da8f204 100644
1238 --- a/drivers/target/iscsi/iscsi_target_login.c
1239 +++ b/drivers/target/iscsi/iscsi_target_login.c
1240 @@ -1233,9 +1233,11 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
1241 flush_signals(current);
1242
1243 spin_lock_bh(&np->np_thread_lock);
1244 - if (np->np_thread_state == ISCSI_NP_THREAD_RESET) {
1245 + if (atomic_dec_if_positive(&np->np_reset_count) >= 0) {
1246 np->np_thread_state = ISCSI_NP_THREAD_ACTIVE;
1247 + spin_unlock_bh(&np->np_thread_lock);
1248 complete(&np->np_restart_comp);
1249 + return 1;
1250 } else if (np->np_thread_state == ISCSI_NP_THREAD_SHUTDOWN) {
1251 spin_unlock_bh(&np->np_thread_lock);
1252 goto exit;
1253 @@ -1268,7 +1270,8 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
1254 goto exit;
1255 } else if (rc < 0) {
1256 spin_lock_bh(&np->np_thread_lock);
1257 - if (np->np_thread_state == ISCSI_NP_THREAD_RESET) {
1258 + if (atomic_dec_if_positive(&np->np_reset_count) >= 0) {
1259 + np->np_thread_state = ISCSI_NP_THREAD_ACTIVE;
1260 spin_unlock_bh(&np->np_thread_lock);
1261 complete(&np->np_restart_comp);
1262 iscsit_put_transport(conn->conn_transport);
1263 diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c
1264 index 1949f50725a5..0e2e71f6c198 100644
1265 --- a/drivers/target/target_core_tpg.c
1266 +++ b/drivers/target/target_core_tpg.c
1267 @@ -364,7 +364,7 @@ void core_tpg_del_initiator_node_acl(struct se_node_acl *acl)
1268 mutex_lock(&tpg->acl_node_mutex);
1269 if (acl->dynamic_node_acl)
1270 acl->dynamic_node_acl = 0;
1271 - list_del(&acl->acl_list);
1272 + list_del_init(&acl->acl_list);
1273 mutex_unlock(&tpg->acl_node_mutex);
1274
1275 target_shutdown_sessions(acl);
1276 @@ -540,7 +540,7 @@ int core_tpg_deregister(struct se_portal_group *se_tpg)
1277 * in transport_deregister_session().
1278 */
1279 list_for_each_entry_safe(nacl, nacl_tmp, &node_list, acl_list) {
1280 - list_del(&nacl->acl_list);
1281 + list_del_init(&nacl->acl_list);
1282
1283 core_tpg_wait_for_nacl_pr_ref(nacl);
1284 core_free_device_list_for_node(nacl, se_tpg);
1285 diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
1286 index e8a1f5cadba5..bacfa8f81be8 100644
1287 --- a/drivers/target/target_core_transport.c
1288 +++ b/drivers/target/target_core_transport.c
1289 @@ -465,7 +465,7 @@ static void target_complete_nacl(struct kref *kref)
1290 }
1291
1292 mutex_lock(&se_tpg->acl_node_mutex);
1293 - list_del(&nacl->acl_list);
1294 + list_del_init(&nacl->acl_list);
1295 mutex_unlock(&se_tpg->acl_node_mutex);
1296
1297 core_tpg_wait_for_nacl_pr_ref(nacl);
1298 @@ -537,7 +537,7 @@ void transport_free_session(struct se_session *se_sess)
1299 spin_unlock_irqrestore(&se_nacl->nacl_sess_lock, flags);
1300
1301 if (se_nacl->dynamic_stop)
1302 - list_del(&se_nacl->acl_list);
1303 + list_del_init(&se_nacl->acl_list);
1304 }
1305 mutex_unlock(&se_tpg->acl_node_mutex);
1306
1307 diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
1308 index 8a7c6bbaed7e..882fc4e08284 100644
1309 --- a/drivers/usb/core/hcd.c
1310 +++ b/drivers/usb/core/hcd.c
1311 @@ -1877,7 +1877,7 @@ void usb_hcd_flush_endpoint(struct usb_device *udev,
1312 /* No more submits can occur */
1313 spin_lock_irq(&hcd_urb_list_lock);
1314 rescan:
1315 - list_for_each_entry (urb, &ep->urb_list, urb_list) {
1316 + list_for_each_entry_reverse(urb, &ep->urb_list, urb_list) {
1317 int is_in;
1318
1319 if (urb->unlinked)
1320 @@ -2474,6 +2474,8 @@ void usb_hc_died (struct usb_hcd *hcd)
1321 }
1322 if (usb_hcd_is_primary_hcd(hcd) && hcd->shared_hcd) {
1323 hcd = hcd->shared_hcd;
1324 + clear_bit(HCD_FLAG_RH_RUNNING, &hcd->flags);
1325 + set_bit(HCD_FLAG_DEAD, &hcd->flags);
1326 if (hcd->rh_registered) {
1327 clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
1328
1329 diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
1330 index f953d6d647f2..80d4ef31ba8d 100644
1331 --- a/drivers/usb/core/hub.c
1332 +++ b/drivers/usb/core/hub.c
1333 @@ -4728,7 +4728,8 @@ hub_power_remaining(struct usb_hub *hub)
1334 static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
1335 u16 portchange)
1336 {
1337 - int status, i;
1338 + int status = -ENODEV;
1339 + int i;
1340 unsigned unit_load;
1341 struct usb_device *hdev = hub->hdev;
1342 struct usb_hcd *hcd = bus_to_hcd(hdev->bus);
1343 @@ -4932,9 +4933,10 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
1344
1345 done:
1346 hub_port_disable(hub, port1, 1);
1347 - if (hcd->driver->relinquish_port && !hub->hdev->parent)
1348 - hcd->driver->relinquish_port(hcd, port1);
1349 -
1350 + if (hcd->driver->relinquish_port && !hub->hdev->parent) {
1351 + if (status != -ENOTCONN && status != -ENODEV)
1352 + hcd->driver->relinquish_port(hcd, port1);
1353 + }
1354 }
1355
1356 /* Handle physical or logical connection change events.
1357 diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
1358 index 3116edfcdc18..574da2b4529c 100644
1359 --- a/drivers/usb/core/quirks.c
1360 +++ b/drivers/usb/core/quirks.c
1361 @@ -150,6 +150,9 @@ static const struct usb_device_id usb_quirk_list[] = {
1362 /* appletouch */
1363 { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME },
1364
1365 + /* Genesys Logic hub, internally used by Moshi USB to Ethernet Adapter */
1366 + { USB_DEVICE(0x05e3, 0x0616), .driver_info = USB_QUIRK_NO_LPM },
1367 +
1368 /* Avision AV600U */
1369 { USB_DEVICE(0x0638, 0x0a13), .driver_info =
1370 USB_QUIRK_STRING_FETCH_255 },
1371 @@ -249,6 +252,7 @@ static const struct usb_device_id usb_amd_resume_quirk_list[] = {
1372 { USB_DEVICE(0x093a, 0x2500), .driver_info = USB_QUIRK_RESET_RESUME },
1373 { USB_DEVICE(0x093a, 0x2510), .driver_info = USB_QUIRK_RESET_RESUME },
1374 { USB_DEVICE(0x093a, 0x2521), .driver_info = USB_QUIRK_RESET_RESUME },
1375 + { USB_DEVICE(0x03f0, 0x2b4a), .driver_info = USB_QUIRK_RESET_RESUME },
1376
1377 /* Logitech Optical Mouse M90/M100 */
1378 { USB_DEVICE(0x046d, 0xc05a), .driver_info = USB_QUIRK_RESET_RESUME },
1379 diff --git a/drivers/usb/gadget/udc/renesas_usb3.c b/drivers/usb/gadget/udc/renesas_usb3.c
1380 index ba78e3f7aea8..d2cfefadca3c 100644
1381 --- a/drivers/usb/gadget/udc/renesas_usb3.c
1382 +++ b/drivers/usb/gadget/udc/renesas_usb3.c
1383 @@ -685,21 +685,32 @@ static struct renesas_usb3_request *usb3_get_request(struct renesas_usb3_ep
1384 return usb3_req;
1385 }
1386
1387 -static void usb3_request_done(struct renesas_usb3_ep *usb3_ep,
1388 - struct renesas_usb3_request *usb3_req, int status)
1389 +static void __usb3_request_done(struct renesas_usb3_ep *usb3_ep,
1390 + struct renesas_usb3_request *usb3_req,
1391 + int status)
1392 {
1393 struct renesas_usb3 *usb3 = usb3_ep_to_usb3(usb3_ep);
1394 - unsigned long flags;
1395
1396 dev_dbg(usb3_to_dev(usb3), "giveback: ep%2d, %u, %u, %d\n",
1397 usb3_ep->num, usb3_req->req.length, usb3_req->req.actual,
1398 status);
1399 usb3_req->req.status = status;
1400 - spin_lock_irqsave(&usb3->lock, flags);
1401 usb3_ep->started = false;
1402 list_del_init(&usb3_req->queue);
1403 - spin_unlock_irqrestore(&usb3->lock, flags);
1404 + spin_unlock(&usb3->lock);
1405 usb_gadget_giveback_request(&usb3_ep->ep, &usb3_req->req);
1406 + spin_lock(&usb3->lock);
1407 +}
1408 +
1409 +static void usb3_request_done(struct renesas_usb3_ep *usb3_ep,
1410 + struct renesas_usb3_request *usb3_req, int status)
1411 +{
1412 + struct renesas_usb3 *usb3 = usb3_ep_to_usb3(usb3_ep);
1413 + unsigned long flags;
1414 +
1415 + spin_lock_irqsave(&usb3->lock, flags);
1416 + __usb3_request_done(usb3_ep, usb3_req, status);
1417 + spin_unlock_irqrestore(&usb3->lock, flags);
1418 }
1419
1420 static void usb3_irq_epc_pipe0_status_end(struct renesas_usb3 *usb3)
1421 diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
1422 index c8989c62a262..5f4ca7890435 100644
1423 --- a/drivers/usb/host/pci-quirks.c
1424 +++ b/drivers/usb/host/pci-quirks.c
1425 @@ -98,6 +98,7 @@ enum amd_chipset_gen {
1426 AMD_CHIPSET_HUDSON2,
1427 AMD_CHIPSET_BOLTON,
1428 AMD_CHIPSET_YANGTZE,
1429 + AMD_CHIPSET_TAISHAN,
1430 AMD_CHIPSET_UNKNOWN,
1431 };
1432
1433 @@ -141,6 +142,11 @@ static int amd_chipset_sb_type_init(struct amd_chipset_info *pinfo)
1434 pinfo->sb_type.gen = AMD_CHIPSET_SB700;
1435 else if (rev >= 0x40 && rev <= 0x4f)
1436 pinfo->sb_type.gen = AMD_CHIPSET_SB800;
1437 + }
1438 + pinfo->smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD,
1439 + 0x145c, NULL);
1440 + if (pinfo->smbus_dev) {
1441 + pinfo->sb_type.gen = AMD_CHIPSET_TAISHAN;
1442 } else {
1443 pinfo->smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD,
1444 PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, NULL);
1445 @@ -260,11 +266,12 @@ int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev)
1446 {
1447 /* Make sure amd chipset type has already been initialized */
1448 usb_amd_find_chipset_info();
1449 - if (amd_chipset.sb_type.gen != AMD_CHIPSET_YANGTZE)
1450 - return 0;
1451 -
1452 - dev_dbg(&pdev->dev, "QUIRK: Enable AMD remote wakeup fix\n");
1453 - return 1;
1454 + if (amd_chipset.sb_type.gen == AMD_CHIPSET_YANGTZE ||
1455 + amd_chipset.sb_type.gen == AMD_CHIPSET_TAISHAN) {
1456 + dev_dbg(&pdev->dev, "QUIRK: Enable AMD remote wakeup fix\n");
1457 + return 1;
1458 + }
1459 + return 0;
1460 }
1461 EXPORT_SYMBOL_GPL(usb_hcd_amd_remote_wakeup_quirk);
1462
1463 diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
1464 index 99beda9e241d..55c624f2a8c0 100644
1465 --- a/drivers/usb/musb/musb_host.c
1466 +++ b/drivers/usb/musb/musb_host.c
1467 @@ -139,6 +139,7 @@ static void musb_h_tx_flush_fifo(struct musb_hw_ep *ep)
1468 "Could not flush host TX%d fifo: csr: %04x\n",
1469 ep->epnum, csr))
1470 return;
1471 + mdelay(1);
1472 }
1473 }
1474
1475 diff --git a/drivers/usb/renesas_usbhs/rcar3.c b/drivers/usb/renesas_usbhs/rcar3.c
1476 index d544b331c9f2..02b67abfc2a1 100644
1477 --- a/drivers/usb/renesas_usbhs/rcar3.c
1478 +++ b/drivers/usb/renesas_usbhs/rcar3.c
1479 @@ -20,9 +20,13 @@
1480 /* Low Power Status register (LPSTS) */
1481 #define LPSTS_SUSPM 0x4000
1482
1483 -/* USB General control register 2 (UGCTRL2), bit[31:6] should be 0 */
1484 +/*
1485 + * USB General control register 2 (UGCTRL2)
1486 + * Remarks: bit[31:11] and bit[9:6] should be 0
1487 + */
1488 #define UGCTRL2_RESERVED_3 0x00000001 /* bit[3:0] should be B'0001 */
1489 #define UGCTRL2_USB0SEL_OTG 0x00000030
1490 +#define UGCTRL2_VBUSSEL 0x00000400
1491
1492 static void usbhs_write32(struct usbhs_priv *priv, u32 reg, u32 data)
1493 {
1494 @@ -34,7 +38,8 @@ static int usbhs_rcar3_power_ctrl(struct platform_device *pdev,
1495 {
1496 struct usbhs_priv *priv = usbhs_pdev_to_priv(pdev);
1497
1498 - usbhs_write32(priv, UGCTRL2, UGCTRL2_RESERVED_3 | UGCTRL2_USB0SEL_OTG);
1499 + usbhs_write32(priv, UGCTRL2, UGCTRL2_RESERVED_3 | UGCTRL2_USB0SEL_OTG |
1500 + UGCTRL2_VBUSSEL);
1501
1502 if (enable) {
1503 usbhs_bset(priv, LPSTS, LPSTS_SUSPM, LPSTS_SUSPM);
1504 diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
1505 index 84b444f69c9b..470b17b0c11b 100644
1506 --- a/drivers/usb/serial/cp210x.c
1507 +++ b/drivers/usb/serial/cp210x.c
1508 @@ -136,6 +136,7 @@ static const struct usb_device_id id_table[] = {
1509 { USB_DEVICE(0x10C4, 0x8998) }, /* KCF Technologies PRN */
1510 { USB_DEVICE(0x10C4, 0x8A2A) }, /* HubZ dual ZigBee and Z-Wave dongle */
1511 { USB_DEVICE(0x10C4, 0x8A5E) }, /* CEL EM3588 ZigBee USB Stick Long Range */
1512 + { USB_DEVICE(0x10C4, 0x8B34) }, /* Qivicon ZigBee USB Radio Stick */
1513 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
1514 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
1515 { USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */
1516 diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
1517 index ebe51f11105d..fe123153b1a5 100644
1518 --- a/drivers/usb/serial/option.c
1519 +++ b/drivers/usb/serial/option.c
1520 @@ -2025,6 +2025,8 @@ static const struct usb_device_id option_ids[] = {
1521 { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */
1522 { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff), /* D-Link DWM-221 B1 */
1523 .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
1524 + { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff), /* D-Link DWM-222 */
1525 + .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
1526 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */
1527 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */
1528 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/A3 */
1529 diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
1530 index 1db4b61bdf7b..a51b28379850 100644
1531 --- a/drivers/usb/serial/pl2303.c
1532 +++ b/drivers/usb/serial/pl2303.c
1533 @@ -49,6 +49,7 @@ static const struct usb_device_id id_table[] = {
1534 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) },
1535 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) },
1536 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
1537 + { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_UC485) },
1538 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID2) },
1539 { USB_DEVICE(ATEN_VENDOR_ID2, ATEN_PRODUCT_ID) },
1540 { USB_DEVICE(ELCOM_VENDOR_ID, ELCOM_PRODUCT_ID) },
1541 diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
1542 index 09d9be88209e..3b5a15d1dc0d 100644
1543 --- a/drivers/usb/serial/pl2303.h
1544 +++ b/drivers/usb/serial/pl2303.h
1545 @@ -27,6 +27,7 @@
1546 #define ATEN_VENDOR_ID 0x0557
1547 #define ATEN_VENDOR_ID2 0x0547
1548 #define ATEN_PRODUCT_ID 0x2008
1549 +#define ATEN_PRODUCT_UC485 0x2021
1550 #define ATEN_PRODUCT_ID2 0x2118
1551
1552 #define IODATA_VENDOR_ID 0x04bb
1553 diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
1554 index cbea9f329e71..cde115359793 100644
1555 --- a/drivers/usb/storage/unusual_uas.h
1556 +++ b/drivers/usb/storage/unusual_uas.h
1557 @@ -124,9 +124,9 @@ UNUSUAL_DEV(0x0bc2, 0xab2a, 0x0000, 0x9999,
1558 /* Reported-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> */
1559 UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999,
1560 "Initio Corporation",
1561 - "",
1562 + "INIC-3069",
1563 USB_SC_DEVICE, USB_PR_DEVICE, NULL,
1564 - US_FL_NO_ATA_1X),
1565 + US_FL_NO_ATA_1X | US_FL_IGNORE_RESIDUE),
1566
1567 /* Reported-by: Tom Arild Naess <tanaess@gmail.com> */
1568 UNUSUAL_DEV(0x152d, 0x0539, 0x0000, 0x9999,
1569 diff --git a/fs/fuse/file.c b/fs/fuse/file.c
1570 index 5ec5870e423a..996aa23c409e 100644
1571 --- a/fs/fuse/file.c
1572 +++ b/fs/fuse/file.c
1573 @@ -46,7 +46,7 @@ struct fuse_file *fuse_file_alloc(struct fuse_conn *fc)
1574 {
1575 struct fuse_file *ff;
1576
1577 - ff = kmalloc(sizeof(struct fuse_file), GFP_KERNEL);
1578 + ff = kzalloc(sizeof(struct fuse_file), GFP_KERNEL);
1579 if (unlikely(!ff))
1580 return NULL;
1581
1582 diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
1583 index f31fd0dd92c6..b1daeafbea92 100644
1584 --- a/fs/nfs/Kconfig
1585 +++ b/fs/nfs/Kconfig
1586 @@ -121,6 +121,7 @@ config PNFS_FILE_LAYOUT
1587 config PNFS_BLOCK
1588 tristate
1589 depends on NFS_V4_1 && BLK_DEV_DM
1590 + depends on 64BIT || LBDAF
1591 default NFS_V4
1592
1593 config PNFS_OBJLAYOUT
1594 diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
1595 index f7a3f6b05369..90099896b838 100644
1596 --- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
1597 +++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
1598 @@ -30,6 +30,7 @@ void nfs4_ff_layout_free_deviceid(struct nfs4_ff_layout_ds *mirror_ds)
1599 {
1600 nfs4_print_deviceid(&mirror_ds->id_node.deviceid);
1601 nfs4_pnfs_ds_put(mirror_ds->ds);
1602 + kfree(mirror_ds->ds_versions);
1603 kfree_rcu(mirror_ds, id_node.rcu);
1604 }
1605
1606 diff --git a/include/target/iscsi/iscsi_target_core.h b/include/target/iscsi/iscsi_target_core.h
1607 index c8132b419148..6021c3acb6c5 100644
1608 --- a/include/target/iscsi/iscsi_target_core.h
1609 +++ b/include/target/iscsi/iscsi_target_core.h
1610 @@ -785,6 +785,7 @@ struct iscsi_np {
1611 int np_sock_type;
1612 enum np_thread_state_table np_thread_state;
1613 bool enabled;
1614 + atomic_t np_reset_count;
1615 enum iscsi_timer_flags_table np_login_timer_flags;
1616 u32 np_exports;
1617 enum np_flags_table np_flags;
1618 diff --git a/kernel/futex.c b/kernel/futex.c
1619 index 4c6b6e697b73..88bad86180ac 100644
1620 --- a/kernel/futex.c
1621 +++ b/kernel/futex.c
1622 @@ -668,13 +668,14 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
1623 * this reference was taken by ihold under the page lock
1624 * pinning the inode in place so i_lock was unnecessary. The
1625 * only way for this check to fail is if the inode was
1626 - * truncated in parallel so warn for now if this happens.
1627 + * truncated in parallel which is almost certainly an
1628 + * application bug. In such a case, just retry.
1629 *
1630 * We are not calling into get_futex_key_refs() in file-backed
1631 * cases, therefore a successful atomic_inc return below will
1632 * guarantee that get_futex_key() will still imply smp_mb(); (B).
1633 */
1634 - if (WARN_ON_ONCE(!atomic_inc_not_zero(&inode->i_count))) {
1635 + if (!atomic_inc_not_zero(&inode->i_count)) {
1636 rcu_read_unlock();
1637 put_page(page);
1638
1639 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
1640 index 77b797c2d094..9419aa4e5441 100644
1641 --- a/mm/page_alloc.c
1642 +++ b/mm/page_alloc.c
1643 @@ -7335,7 +7335,7 @@ int alloc_contig_range(unsigned long start, unsigned long end,
1644
1645 /* Make sure the range is really isolated. */
1646 if (test_pages_isolated(outer_start, end, false)) {
1647 - pr_info("%s: [%lx, %lx) PFNs busy\n",
1648 + pr_info_ratelimited("%s: [%lx, %lx) PFNs busy\n",
1649 __func__, outer_start, end);
1650 ret = -EBUSY;
1651 goto done;
1652 diff --git a/mm/shmem.c b/mm/shmem.c
1653 index d99cfb6eb03a..7ee5444ffb6d 100644
1654 --- a/mm/shmem.c
1655 +++ b/mm/shmem.c
1656 @@ -1007,7 +1007,11 @@ static int shmem_setattr(struct dentry *dentry, struct iattr *attr)
1657 */
1658 if (IS_ENABLED(CONFIG_TRANSPARENT_HUGE_PAGECACHE)) {
1659 spin_lock(&sbinfo->shrinklist_lock);
1660 - if (list_empty(&info->shrinklist)) {
1661 + /*
1662 + * _careful to defend against unlocked access to
1663 + * ->shrink_list in shmem_unused_huge_shrink()
1664 + */
1665 + if (list_empty_careful(&info->shrinklist)) {
1666 list_add_tail(&info->shrinklist,
1667 &sbinfo->shrinklist);
1668 sbinfo->shrinklist_len++;
1669 @@ -1774,7 +1778,11 @@ alloc_nohuge: page = shmem_alloc_and_acct_page(gfp, info, sbinfo,
1670 * to shrink under memory pressure.
1671 */
1672 spin_lock(&sbinfo->shrinklist_lock);
1673 - if (list_empty(&info->shrinklist)) {
1674 + /*
1675 + * _careful to defend against unlocked access to
1676 + * ->shrink_list in shmem_unused_huge_shrink()
1677 + */
1678 + if (list_empty_careful(&info->shrinklist)) {
1679 list_add_tail(&info->shrinklist,
1680 &sbinfo->shrinklist);
1681 sbinfo->shrinklist_len++;