diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-18 15:50:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-18 15:50:55 -0500 |
commit | d90f351a9bec6af3e8e7cefbbff94072461c3c9a (patch) | |
tree | 71db07e8820b63a60fefcd7e3d1f044450a4b55d /arch | |
parent | c1a198d9235b9e7d6942027374e44f78ebdcb455 (diff) | |
parent | 238d1c6041ebcb5ce7c075b696f6cc9962991e94 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32
Pull AVR32 updates from Hans-Christian Noren Egtvedt.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32:
mmc: atmel: get rid of struct mci_dma_data
mmc: atmel-mci: restore dma on AVR32
avr32: wire up missing syscalls
avr32: wire up accept4 syscall
Diffstat (limited to 'arch')
-rw-r--r-- | arch/avr32/include/uapi/asm/unistd.h | 4 | ||||
-rw-r--r-- | arch/avr32/kernel/syscall_table.S | 4 | ||||
-rw-r--r-- | arch/avr32/mach-at32ap/at32ap700x.c | 31 |
3 files changed, 31 insertions, 8 deletions
diff --git a/arch/avr32/include/uapi/asm/unistd.h b/arch/avr32/include/uapi/asm/unistd.h index bbe2fba565cd..b60132bb27ea 100644 --- a/arch/avr32/include/uapi/asm/unistd.h +++ b/arch/avr32/include/uapi/asm/unistd.h | |||
@@ -333,5 +333,9 @@ | |||
333 | #define __NR_memfd_create 318 | 333 | #define __NR_memfd_create 318 |
334 | #define __NR_bpf 319 | 334 | #define __NR_bpf 319 |
335 | #define __NR_execveat 320 | 335 | #define __NR_execveat 320 |
336 | #define __NR_accept4 321 | ||
337 | #define __NR_userfaultfd 322 | ||
338 | #define __NR_membarrier 323 | ||
339 | #define __NR_mlock2 324 | ||
336 | 340 | ||
337 | #endif /* _UAPI__ASM_AVR32_UNISTD_H */ | 341 | #endif /* _UAPI__ASM_AVR32_UNISTD_H */ |
diff --git a/arch/avr32/kernel/syscall_table.S b/arch/avr32/kernel/syscall_table.S index c3b593bfc3b3..1915a443b491 100644 --- a/arch/avr32/kernel/syscall_table.S +++ b/arch/avr32/kernel/syscall_table.S | |||
@@ -334,4 +334,8 @@ sys_call_table: | |||
334 | .long sys_memfd_create | 334 | .long sys_memfd_create |
335 | .long sys_bpf | 335 | .long sys_bpf |
336 | .long sys_execveat /* 320 */ | 336 | .long sys_execveat /* 320 */ |
337 | .long sys_accept4 | ||
338 | .long sys_userfaultfd | ||
339 | .long sys_membarrier | ||
340 | .long sys_mlock2 | ||
337 | .long sys_ni_syscall /* r8 is saturated at nr_syscalls */ | 341 | .long sys_ni_syscall /* r8 is saturated at nr_syscalls */ |
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c index b4cb3bd89d8a..bf445aa48282 100644 --- a/arch/avr32/mach-at32ap/at32ap700x.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/spi/spi.h> | 17 | #include <linux/spi/spi.h> |
18 | #include <linux/usb/atmel_usba_udc.h> | 18 | #include <linux/usb/atmel_usba_udc.h> |
19 | 19 | ||
20 | #include <linux/platform_data/mmc-atmel-mci.h> | ||
21 | #include <linux/atmel-mci.h> | 20 | #include <linux/atmel-mci.h> |
22 | 21 | ||
23 | #include <asm/io.h> | 22 | #include <asm/io.h> |
@@ -1321,11 +1320,26 @@ static struct clk atmel_mci0_pclk = { | |||
1321 | .index = 9, | 1320 | .index = 9, |
1322 | }; | 1321 | }; |
1323 | 1322 | ||
1323 | static bool at32_mci_dma_filter(struct dma_chan *chan, void *pdata) | ||
1324 | { | ||
1325 | struct dw_dma_slave *sl = pdata; | ||
1326 | |||
1327 | if (!sl) | ||
1328 | return false; | ||
1329 | |||
1330 | if (sl->dma_dev == chan->device->dev) { | ||
1331 | chan->private = sl; | ||
1332 | return true; | ||
1333 | } | ||
1334 | |||
1335 | return false; | ||
1336 | } | ||
1337 | |||
1324 | struct platform_device *__init | 1338 | struct platform_device *__init |
1325 | at32_add_device_mci(unsigned int id, struct mci_platform_data *data) | 1339 | at32_add_device_mci(unsigned int id, struct mci_platform_data *data) |
1326 | { | 1340 | { |
1327 | struct platform_device *pdev; | 1341 | struct platform_device *pdev; |
1328 | struct mci_dma_data *slave; | 1342 | struct dw_dma_slave *slave; |
1329 | u32 pioa_mask; | 1343 | u32 pioa_mask; |
1330 | u32 piob_mask; | 1344 | u32 piob_mask; |
1331 | 1345 | ||
@@ -1344,17 +1358,18 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data) | |||
1344 | ARRAY_SIZE(atmel_mci0_resource))) | 1358 | ARRAY_SIZE(atmel_mci0_resource))) |
1345 | goto fail; | 1359 | goto fail; |
1346 | 1360 | ||
1347 | slave = kzalloc(sizeof(struct mci_dma_data), GFP_KERNEL); | 1361 | slave = kzalloc(sizeof(*slave), GFP_KERNEL); |
1348 | if (!slave) | 1362 | if (!slave) |
1349 | goto fail; | 1363 | goto fail; |
1350 | 1364 | ||
1351 | slave->sdata.dma_dev = &dw_dmac0_device.dev; | 1365 | slave->dma_dev = &dw_dmac0_device.dev; |
1352 | slave->sdata.src_id = 0; | 1366 | slave->src_id = 0; |
1353 | slave->sdata.dst_id = 1; | 1367 | slave->dst_id = 1; |
1354 | slave->sdata.src_master = 1; | 1368 | slave->src_master = 1; |
1355 | slave->sdata.dst_master = 0; | 1369 | slave->dst_master = 0; |
1356 | 1370 | ||
1357 | data->dma_slave = slave; | 1371 | data->dma_slave = slave; |
1372 | data->dma_filter = at32_mci_dma_filter; | ||
1358 | 1373 | ||
1359 | if (platform_device_add_data(pdev, data, | 1374 | if (platform_device_add_data(pdev, data, |
1360 | sizeof(struct mci_platform_data))) | 1375 | sizeof(struct mci_platform_data))) |