atdma 106 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(chan->device); atdma 109 drivers/dma/at_hdmac.c desc = dma_pool_zalloc(atdma->dma_desc_pool, gfp_flags, &phys); atdma 220 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(atchan->chan_common.device); atdma 249 drivers/dma/at_hdmac.c dma_writel(atdma, CHER, atchan->mask); atdma 444 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(atchan->chan_common.device); atdma 455 drivers/dma/at_hdmac.c dma_pool_free(atdma->memset_pool, desc->memset_vaddr, atdma 618 drivers/dma/at_hdmac.c struct at_dma *atdma = (struct at_dma *)dev_id; atdma 625 drivers/dma/at_hdmac.c imr = dma_readl(atdma, EBCIMR); atdma 626 drivers/dma/at_hdmac.c status = dma_readl(atdma, EBCISR); atdma 632 drivers/dma/at_hdmac.c dev_vdbg(atdma->dma_common.dev, atdma 636 drivers/dma/at_hdmac.c for (i = 0; i < atdma->dma_common.chancnt; i++) { atdma 637 drivers/dma/at_hdmac.c atchan = &atdma->chan[i]; atdma 641 drivers/dma/at_hdmac.c dma_writel(atdma, CHDR, atdma 924 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(chan->device); atdma 943 drivers/dma/at_hdmac.c vaddr = dma_pool_alloc(atdma->memset_pool, GFP_ATOMIC, &paddr); atdma 973 drivers/dma/at_hdmac.c dma_pool_free(atdma->memset_pool, vaddr, paddr); atdma 984 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(chan->device); atdma 1001 drivers/dma/at_hdmac.c vaddr = dma_pool_alloc(atdma->memset_pool, GFP_ATOMIC, &paddr); atdma 1380 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(chan->device); atdma 1388 drivers/dma/at_hdmac.c dma_writel(atdma, CHER, AT_DMA_SUSP(chan_id)); atdma 1399 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(chan->device); atdma 1410 drivers/dma/at_hdmac.c dma_writel(atdma, CHDR, AT_DMA_RES(chan_id)); atdma 1421 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(chan->device); atdma 1439 drivers/dma/at_hdmac.c dma_writel(atdma, CHDR, AT_DMA_RES(chan_id) | atchan->mask); atdma 1442 drivers/dma/at_hdmac.c while (dma_readl(atdma, CHSR) & atchan->mask) atdma 1542 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(chan->device); atdma 1566 drivers/dma/at_hdmac.c BUG_ON(!atslave->dma_dev || atslave->dma_dev != atdma->dma_common.dev); atdma 1582 drivers/dma/at_hdmac.c dev_err(atdma->dma_common.dev, atdma 1612 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(chan->device); atdma 1628 drivers/dma/at_hdmac.c dma_pool_free(atdma->dma_desc_pool, desc, desc->txd.phys); atdma 1778 drivers/dma/at_hdmac.c static void at_dma_off(struct at_dma *atdma) atdma 1780 drivers/dma/at_hdmac.c dma_writel(atdma, EN, 0); atdma 1783 drivers/dma/at_hdmac.c dma_writel(atdma, EBCIDR, -1L); atdma 1786 drivers/dma/at_hdmac.c while (dma_readl(atdma, CHSR) & atdma->all_chan_mask) atdma 1793 drivers/dma/at_hdmac.c struct at_dma *atdma; atdma 1824 drivers/dma/at_hdmac.c atdma = kzalloc(size, GFP_KERNEL); atdma 1825 drivers/dma/at_hdmac.c if (!atdma) atdma 1829 drivers/dma/at_hdmac.c atdma->dma_common.cap_mask = plat_dat->cap_mask; atdma 1830 drivers/dma/at_hdmac.c atdma->all_chan_mask = (1 << plat_dat->nr_channels) - 1; atdma 1838 drivers/dma/at_hdmac.c atdma->regs = ioremap(io->start, size); atdma 1839 drivers/dma/at_hdmac.c if (!atdma->regs) { atdma 1844 drivers/dma/at_hdmac.c atdma->clk = clk_get(&pdev->dev, "dma_clk"); atdma 1845 drivers/dma/at_hdmac.c if (IS_ERR(atdma->clk)) { atdma 1846 drivers/dma/at_hdmac.c err = PTR_ERR(atdma->clk); atdma 1849 drivers/dma/at_hdmac.c err = clk_prepare_enable(atdma->clk); atdma 1854 drivers/dma/at_hdmac.c at_dma_off(atdma); atdma 1856 drivers/dma/at_hdmac.c err = request_irq(irq, at_dma_interrupt, 0, "at_hdmac", atdma); atdma 1860 drivers/dma/at_hdmac.c platform_set_drvdata(pdev, atdma); atdma 1863 drivers/dma/at_hdmac.c atdma->dma_desc_pool = dma_pool_create("at_hdmac_desc_pool", atdma 1866 drivers/dma/at_hdmac.c if (!atdma->dma_desc_pool) { atdma 1873 drivers/dma/at_hdmac.c atdma->memset_pool = dma_pool_create("at_hdmac_memset_pool", atdma 1875 drivers/dma/at_hdmac.c if (!atdma->memset_pool) { atdma 1882 drivers/dma/at_hdmac.c while (dma_readl(atdma, EBCISR)) atdma 1886 drivers/dma/at_hdmac.c INIT_LIST_HEAD(&atdma->dma_common.channels); atdma 1888 drivers/dma/at_hdmac.c struct at_dma_chan *atchan = &atdma->chan[i]; atdma 1892 drivers/dma/at_hdmac.c atchan->chan_common.device = &atdma->dma_common; atdma 1895 drivers/dma/at_hdmac.c &atdma->dma_common.channels); atdma 1897 drivers/dma/at_hdmac.c atchan->ch_regs = atdma->regs + ch_regs(i); atdma 1907 drivers/dma/at_hdmac.c atc_enable_chan_irq(atdma, i); atdma 1911 drivers/dma/at_hdmac.c atdma->dma_common.device_alloc_chan_resources = atc_alloc_chan_resources; atdma 1912 drivers/dma/at_hdmac.c atdma->dma_common.device_free_chan_resources = atc_free_chan_resources; atdma 1913 drivers/dma/at_hdmac.c atdma->dma_common.device_tx_status = atc_tx_status; atdma 1914 drivers/dma/at_hdmac.c atdma->dma_common.device_issue_pending = atc_issue_pending; atdma 1915 drivers/dma/at_hdmac.c atdma->dma_common.dev = &pdev->dev; atdma 1918 drivers/dma/at_hdmac.c if (dma_has_cap(DMA_INTERLEAVE, atdma->dma_common.cap_mask)) atdma 1919 drivers/dma/at_hdmac.c atdma->dma_common.device_prep_interleaved_dma = atc_prep_dma_interleaved; atdma 1921 drivers/dma/at_hdmac.c if (dma_has_cap(DMA_MEMCPY, atdma->dma_common.cap_mask)) atdma 1922 drivers/dma/at_hdmac.c atdma->dma_common.device_prep_dma_memcpy = atc_prep_dma_memcpy; atdma 1924 drivers/dma/at_hdmac.c if (dma_has_cap(DMA_MEMSET, atdma->dma_common.cap_mask)) { atdma 1925 drivers/dma/at_hdmac.c atdma->dma_common.device_prep_dma_memset = atc_prep_dma_memset; atdma 1926 drivers/dma/at_hdmac.c atdma->dma_common.device_prep_dma_memset_sg = atc_prep_dma_memset_sg; atdma 1927 drivers/dma/at_hdmac.c atdma->dma_common.fill_align = DMAENGINE_ALIGN_4_BYTES; atdma 1930 drivers/dma/at_hdmac.c if (dma_has_cap(DMA_SLAVE, atdma->dma_common.cap_mask)) { atdma 1931 drivers/dma/at_hdmac.c atdma->dma_common.device_prep_slave_sg = atc_prep_slave_sg; atdma 1933 drivers/dma/at_hdmac.c dma_cap_set(DMA_CYCLIC, atdma->dma_common.cap_mask); atdma 1934 drivers/dma/at_hdmac.c atdma->dma_common.device_prep_dma_cyclic = atc_prep_dma_cyclic; atdma 1935 drivers/dma/at_hdmac.c atdma->dma_common.device_config = atc_config; atdma 1936 drivers/dma/at_hdmac.c atdma->dma_common.device_pause = atc_pause; atdma 1937 drivers/dma/at_hdmac.c atdma->dma_common.device_resume = atc_resume; atdma 1938 drivers/dma/at_hdmac.c atdma->dma_common.device_terminate_all = atc_terminate_all; atdma 1939 drivers/dma/at_hdmac.c atdma->dma_common.src_addr_widths = ATC_DMA_BUSWIDTHS; atdma 1940 drivers/dma/at_hdmac.c atdma->dma_common.dst_addr_widths = ATC_DMA_BUSWIDTHS; atdma 1941 drivers/dma/at_hdmac.c atdma->dma_common.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV); atdma 1942 drivers/dma/at_hdmac.c atdma->dma_common.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST; atdma 1945 drivers/dma/at_hdmac.c dma_writel(atdma, EN, AT_DMA_ENABLE); atdma 1948 drivers/dma/at_hdmac.c dma_has_cap(DMA_MEMCPY, atdma->dma_common.cap_mask) ? "cpy " : "", atdma 1949 drivers/dma/at_hdmac.c dma_has_cap(DMA_MEMSET, atdma->dma_common.cap_mask) ? "set " : "", atdma 1950 drivers/dma/at_hdmac.c dma_has_cap(DMA_SLAVE, atdma->dma_common.cap_mask) ? "slave " : "", atdma 1953 drivers/dma/at_hdmac.c dma_async_device_register(&atdma->dma_common); atdma 1962 drivers/dma/at_hdmac.c at_dma_xlate, atdma); atdma 1972 drivers/dma/at_hdmac.c dma_async_device_unregister(&atdma->dma_common); atdma 1973 drivers/dma/at_hdmac.c dma_pool_destroy(atdma->memset_pool); atdma 1975 drivers/dma/at_hdmac.c dma_pool_destroy(atdma->dma_desc_pool); atdma 1977 drivers/dma/at_hdmac.c free_irq(platform_get_irq(pdev, 0), atdma); atdma 1979 drivers/dma/at_hdmac.c clk_disable_unprepare(atdma->clk); atdma 1981 drivers/dma/at_hdmac.c clk_put(atdma->clk); atdma 1983 drivers/dma/at_hdmac.c iounmap(atdma->regs); atdma 1984 drivers/dma/at_hdmac.c atdma->regs = NULL; atdma 1988 drivers/dma/at_hdmac.c kfree(atdma); atdma 1994 drivers/dma/at_hdmac.c struct at_dma *atdma = platform_get_drvdata(pdev); atdma 1998 drivers/dma/at_hdmac.c at_dma_off(atdma); atdma 2001 drivers/dma/at_hdmac.c dma_async_device_unregister(&atdma->dma_common); atdma 2003 drivers/dma/at_hdmac.c dma_pool_destroy(atdma->memset_pool); atdma 2004 drivers/dma/at_hdmac.c dma_pool_destroy(atdma->dma_desc_pool); atdma 2005 drivers/dma/at_hdmac.c free_irq(platform_get_irq(pdev, 0), atdma); atdma 2007 drivers/dma/at_hdmac.c list_for_each_entry_safe(chan, _chan, &atdma->dma_common.channels, atdma 2012 drivers/dma/at_hdmac.c atc_disable_chan_irq(atdma, chan->chan_id); atdma 2018 drivers/dma/at_hdmac.c clk_disable_unprepare(atdma->clk); atdma 2019 drivers/dma/at_hdmac.c clk_put(atdma->clk); atdma 2021 drivers/dma/at_hdmac.c iounmap(atdma->regs); atdma 2022 drivers/dma/at_hdmac.c atdma->regs = NULL; atdma 2027 drivers/dma/at_hdmac.c kfree(atdma); atdma 2034 drivers/dma/at_hdmac.c struct at_dma *atdma = platform_get_drvdata(pdev); atdma 2037 drivers/dma/at_hdmac.c clk_disable_unprepare(atdma->clk); atdma 2042 drivers/dma/at_hdmac.c struct at_dma *atdma = dev_get_drvdata(dev); atdma 2045 drivers/dma/at_hdmac.c list_for_each_entry_safe(chan, _chan, &atdma->dma_common.channels, atdma 2076 drivers/dma/at_hdmac.c struct at_dma *atdma = dev_get_drvdata(dev); atdma 2080 drivers/dma/at_hdmac.c list_for_each_entry_safe(chan, _chan, &atdma->dma_common.channels, atdma 2088 drivers/dma/at_hdmac.c atdma->save_imr = dma_readl(atdma, EBCIMR); atdma 2091 drivers/dma/at_hdmac.c at_dma_off(atdma); atdma 2092 drivers/dma/at_hdmac.c clk_disable_unprepare(atdma->clk); atdma 2098 drivers/dma/at_hdmac.c struct at_dma *atdma = to_at_dma(atchan->chan_common.device); atdma 2107 drivers/dma/at_hdmac.c dma_writel(atdma, CHER, atchan->mask); atdma 2117 drivers/dma/at_hdmac.c struct at_dma *atdma = dev_get_drvdata(dev); atdma 2121 drivers/dma/at_hdmac.c clk_prepare_enable(atdma->clk); atdma 2122 drivers/dma/at_hdmac.c dma_writel(atdma, EN, AT_DMA_ENABLE); atdma 2125 drivers/dma/at_hdmac.c while (dma_readl(atdma, EBCISR)) atdma 2129 drivers/dma/at_hdmac.c dma_writel(atdma, EBCIER, atdma->save_imr); atdma 2130 drivers/dma/at_hdmac.c list_for_each_entry_safe(chan, _chan, &atdma->dma_common.channels, atdma 339 drivers/dma/at_hdmac_regs.h #define dma_readl(atdma, name) \ atdma 340 drivers/dma/at_hdmac_regs.h __raw_readl((atdma)->regs + AT_DMA_##name) atdma 341 drivers/dma/at_hdmac_regs.h #define dma_writel(atdma, name, val) \ atdma 342 drivers/dma/at_hdmac_regs.h __raw_writel((val), (atdma)->regs + AT_DMA_##name) atdma 360 drivers/dma/at_hdmac_regs.h struct at_dma *atdma = to_at_dma(atchan->chan_common.device); atdma 365 drivers/dma/at_hdmac_regs.h dma_readl(atdma, EBCIMR), atdma 366 drivers/dma/at_hdmac_regs.h dma_readl(atdma, CHSR)); atdma 390 drivers/dma/at_hdmac_regs.h static void atc_setup_irq(struct at_dma *atdma, int chan_id, int on) atdma 398 drivers/dma/at_hdmac_regs.h dma_writel(atdma, EBCIER, ebci); atdma 400 drivers/dma/at_hdmac_regs.h dma_writel(atdma, EBCIDR, ebci); atdma 403 drivers/dma/at_hdmac_regs.h static void atc_enable_chan_irq(struct at_dma *atdma, int chan_id) atdma 405 drivers/dma/at_hdmac_regs.h atc_setup_irq(atdma, chan_id, 1); atdma 408 drivers/dma/at_hdmac_regs.h static void atc_disable_chan_irq(struct at_dma *atdma, int chan_id) atdma 410 drivers/dma/at_hdmac_regs.h atc_setup_irq(atdma, chan_id, 0); atdma 420 drivers/dma/at_hdmac_regs.h struct at_dma *atdma = to_at_dma(atchan->chan_common.device); atdma 422 drivers/dma/at_hdmac_regs.h return !!(dma_readl(atdma, CHSR) & atchan->mask);