Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'dmaengine-fix-4.4-rc2' of git://git.infradead.org/users/vkoul/slave-dma

Pull dmaengine fixes from Vinod Koul:
"This has odd fixes spreadout drivers, not major here

- usbdmac fixes for pm
- edma build and logic fixes
- build warn fixes for few drivers"

* tag 'dmaengine-fix-4.4-rc2' of git://git.infradead.org/users/vkoul/slave-dma:
dmaengine: at_hdmac: use %pad format string for dma_addr_t
dmaengine: at_xdmac: use %pad format string for dma_addr_t
dmaengine: imx-sdma: remove __init annotation on sdma_event_remap
dmaengine: edma: predecence bug in GET_NUM_QDMACH()
dmaengine: edma: fix build without CONFIG_OF
dmaengine: of_dma: Correct return code for of_dma_request_slave_channel in case !CONFIG_OF
dmaengine: sh: usb-dmac: Fix pm_runtime_{enable,disable}() imbalance
dmaengine: sh: usb-dmac: Fix crash on runtime suspend

+35 -30
+10 -10
drivers/dma/at_hdmac.c
··· 729 729 return NULL; 730 730 731 731 dev_info(chan2dev(chan), 732 - "%s: src=0x%08x, dest=0x%08x, numf=%d, frame_size=%d, flags=0x%lx\n", 733 - __func__, xt->src_start, xt->dst_start, xt->numf, 732 + "%s: src=%pad, dest=%pad, numf=%d, frame_size=%d, flags=0x%lx\n", 733 + __func__, &xt->src_start, &xt->dst_start, xt->numf, 734 734 xt->frame_size, flags); 735 735 736 736 /* ··· 824 824 u32 ctrla; 825 825 u32 ctrlb; 826 826 827 - dev_vdbg(chan2dev(chan), "prep_dma_memcpy: d0x%x s0x%x l0x%zx f0x%lx\n", 828 - dest, src, len, flags); 827 + dev_vdbg(chan2dev(chan), "prep_dma_memcpy: d%pad s%pad l0x%zx f0x%lx\n", 828 + &dest, &src, len, flags); 829 829 830 830 if (unlikely(!len)) { 831 831 dev_dbg(chan2dev(chan), "prep_dma_memcpy: length is zero!\n"); ··· 938 938 void __iomem *vaddr; 939 939 dma_addr_t paddr; 940 940 941 - dev_vdbg(chan2dev(chan), "%s: d0x%x v0x%x l0x%zx f0x%lx\n", __func__, 942 - dest, value, len, flags); 941 + dev_vdbg(chan2dev(chan), "%s: d%pad v0x%x l0x%zx f0x%lx\n", __func__, 942 + &dest, value, len, flags); 943 943 944 944 if (unlikely(!len)) { 945 945 dev_dbg(chan2dev(chan), "%s: length is zero!\n", __func__); ··· 1022 1022 dma_addr_t dest = sg_dma_address(sg); 1023 1023 size_t len = sg_dma_len(sg); 1024 1024 1025 - dev_vdbg(chan2dev(chan), "%s: d0x%08x, l0x%zx\n", 1026 - __func__, dest, len); 1025 + dev_vdbg(chan2dev(chan), "%s: d%pad, l0x%zx\n", 1026 + __func__, &dest, len); 1027 1027 1028 1028 if (!is_dma_fill_aligned(chan->device, dest, 0, len)) { 1029 1029 dev_err(chan2dev(chan), "%s: buffer is not aligned\n", ··· 1439 1439 unsigned int periods = buf_len / period_len; 1440 1440 unsigned int i; 1441 1441 1442 - dev_vdbg(chan2dev(chan), "prep_dma_cyclic: %s buf@0x%08x - %d (%d/%d)\n", 1442 + dev_vdbg(chan2dev(chan), "prep_dma_cyclic: %s buf@%pad - %d (%d/%d)\n", 1443 1443 direction == DMA_MEM_TO_DEV ? "TO DEVICE" : "FROM DEVICE", 1444 - buf_addr, 1444 + &buf_addr, 1445 1445 periods, buf_len, period_len); 1446 1446 1447 1447 if (unlikely(!atslave || !buf_len || !period_len)) {
+3 -3
drivers/dma/at_hdmac_regs.h
··· 385 385 static void atc_dump_lli(struct at_dma_chan *atchan, struct at_lli *lli) 386 386 { 387 387 dev_crit(chan2dev(&atchan->chan_common), 388 - " desc: s0x%x d0x%x ctrl0x%x:0x%x l0x%x\n", 389 - lli->saddr, lli->daddr, 390 - lli->ctrla, lli->ctrlb, lli->dscr); 388 + " desc: s%pad d%pad ctrl0x%x:0x%x l0x%pad\n", 389 + &lli->saddr, &lli->daddr, 390 + lli->ctrla, lli->ctrlb, &lli->dscr); 391 391 } 392 392 393 393
+10 -10
drivers/dma/at_xdmac.c
··· 920 920 desc->lld.mbr_cfg = chan_cc; 921 921 922 922 dev_dbg(chan2dev(chan), 923 - "%s: lld: mbr_sa=0x%08x, mbr_da=0x%08x, mbr_ubc=0x%08x, mbr_cfg=0x%08x\n", 924 - __func__, desc->lld.mbr_sa, desc->lld.mbr_da, 923 + "%s: lld: mbr_sa=%pad, mbr_da=%pad, mbr_ubc=0x%08x, mbr_cfg=0x%08x\n", 924 + __func__, &desc->lld.mbr_sa, &desc->lld.mbr_da, 925 925 desc->lld.mbr_ubc, desc->lld.mbr_cfg); 926 926 927 927 /* Chain lld. */ ··· 953 953 if ((xt->numf > 1) && (xt->frame_size > 1)) 954 954 return NULL; 955 955 956 - dev_dbg(chan2dev(chan), "%s: src=0x%08x, dest=0x%08x, numf=%d, frame_size=%d, flags=0x%lx\n", 957 - __func__, xt->src_start, xt->dst_start, xt->numf, 956 + dev_dbg(chan2dev(chan), "%s: src=%pad, dest=%pad, numf=%d, frame_size=%d, flags=0x%lx\n", 957 + __func__, &xt->src_start, &xt->dst_start, xt->numf, 958 958 xt->frame_size, flags); 959 959 960 960 src_addr = xt->src_start; ··· 1179 1179 desc->lld.mbr_cfg = chan_cc; 1180 1180 1181 1181 dev_dbg(chan2dev(chan), 1182 - "%s: lld: mbr_da=0x%08x, mbr_ds=0x%08x, mbr_ubc=0x%08x, mbr_cfg=0x%08x\n", 1183 - __func__, desc->lld.mbr_da, desc->lld.mbr_ds, desc->lld.mbr_ubc, 1182 + "%s: lld: mbr_da=%pad, mbr_ds=%pad, mbr_ubc=0x%08x, mbr_cfg=0x%08x\n", 1183 + __func__, &desc->lld.mbr_da, &desc->lld.mbr_ds, desc->lld.mbr_ubc, 1184 1184 desc->lld.mbr_cfg); 1185 1185 1186 1186 return desc; ··· 1193 1193 struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan); 1194 1194 struct at_xdmac_desc *desc; 1195 1195 1196 - dev_dbg(chan2dev(chan), "%s: dest=0x%08x, len=%d, pattern=0x%x, flags=0x%lx\n", 1197 - __func__, dest, len, value, flags); 1196 + dev_dbg(chan2dev(chan), "%s: dest=%pad, len=%d, pattern=0x%x, flags=0x%lx\n", 1197 + __func__, &dest, len, value, flags); 1198 1198 1199 1199 if (unlikely(!len)) 1200 1200 return NULL; ··· 1229 1229 1230 1230 /* Prepare descriptors. */ 1231 1231 for_each_sg(sgl, sg, sg_len, i) { 1232 - dev_dbg(chan2dev(chan), "%s: dest=0x%08x, len=%d, pattern=0x%x, flags=0x%lx\n", 1233 - __func__, sg_dma_address(sg), sg_dma_len(sg), 1232 + dev_dbg(chan2dev(chan), "%s: dest=%pad, len=%d, pattern=0x%x, flags=0x%lx\n", 1233 + __func__, &sg_dma_address(sg), sg_dma_len(sg), 1234 1234 value, flags); 1235 1235 desc = at_xdmac_memset_create_desc(chan, atchan, 1236 1236 sg_dma_address(sg),
+2 -2
drivers/dma/edma.c
··· 107 107 108 108 /* CCCFG register */ 109 109 #define GET_NUM_DMACH(x) (x & 0x7) /* bits 0-2 */ 110 - #define GET_NUM_QDMACH(x) (x & 0x70 >> 4) /* bits 4-6 */ 110 + #define GET_NUM_QDMACH(x) ((x & 0x70) >> 4) /* bits 4-6 */ 111 111 #define GET_NUM_PAENTRY(x) ((x & 0x7000) >> 12) /* bits 12-14 */ 112 112 #define GET_NUM_EVQUE(x) ((x & 0x70000) >> 16) /* bits 16-18 */ 113 113 #define GET_NUM_REGN(x) ((x & 0x300000) >> 20) /* bits 20-21 */ ··· 1565 1565 struct platform_device *tc_pdev; 1566 1566 int ret; 1567 1567 1568 - if (!tc) 1568 + if (!IS_ENABLED(CONFIG_OF) || !tc) 1569 1569 return; 1570 1570 1571 1571 tc_pdev = of_find_device_by_node(tc->node);
+1 -1
drivers/dma/imx-sdma.c
··· 1462 1462 1463 1463 #define EVENT_REMAP_CELLS 3 1464 1464 1465 - static int __init sdma_event_remap(struct sdma_engine *sdma) 1465 + static int sdma_event_remap(struct sdma_engine *sdma) 1466 1466 { 1467 1467 struct device_node *np = sdma->dev->of_node; 1468 1468 struct device_node *gpr_np = of_parse_phandle(np, "gpr", 0);
+8 -3
drivers/dma/sh/usb-dmac.c
··· 679 679 struct usb_dmac *dmac = dev_get_drvdata(dev); 680 680 int i; 681 681 682 - for (i = 0; i < dmac->n_channels; ++i) 682 + for (i = 0; i < dmac->n_channels; ++i) { 683 + if (!dmac->channels[i].iomem) 684 + break; 683 685 usb_dmac_chan_halt(&dmac->channels[i]); 686 + } 684 687 685 688 return 0; 686 689 } ··· 802 799 ret = pm_runtime_get_sync(&pdev->dev); 803 800 if (ret < 0) { 804 801 dev_err(&pdev->dev, "runtime PM get sync failed (%d)\n", ret); 805 - return ret; 802 + goto error_pm; 806 803 } 807 804 808 805 ret = usb_dmac_init(dmac); 809 - pm_runtime_put(&pdev->dev); 810 806 811 807 if (ret) { 812 808 dev_err(&pdev->dev, "failed to reset device\n"); ··· 853 851 if (ret < 0) 854 852 goto error; 855 853 854 + pm_runtime_put(&pdev->dev); 856 855 return 0; 857 856 858 857 error: 859 858 of_dma_controller_free(pdev->dev.of_node); 859 + pm_runtime_put(&pdev->dev); 860 + error_pm: 860 861 pm_runtime_disable(&pdev->dev); 861 862 return ret; 862 863 }
+1 -1
include/linux/of_dma.h
··· 80 80 static inline struct dma_chan *of_dma_request_slave_channel(struct device_node *np, 81 81 const char *name) 82 82 { 83 - return NULL; 83 + return ERR_PTR(-ENODEV); 84 84 } 85 85 86 86 static inline struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec,