s3cdma 261 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 262 drivers/dma/s3c24xx-dma.c const struct s3c24xx_dma_platdata *pdata = s3cdma->pdata; s3cdma 271 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_reqsel) s3cdma 288 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 294 drivers/dma/s3c24xx-dma.c for (i = 0; i < s3cdma->pdata->num_phy_channels; i++) { s3cdma 295 drivers/dma/s3c24xx-dma.c phy = &s3cdma->phy_chans[i]; s3cdma 315 drivers/dma/s3c24xx-dma.c if (i == s3cdma->pdata->num_phy_channels) { s3cdma 316 drivers/dma/s3c24xx-dma.c dev_warn(&s3cdma->pdev->dev, "no phy channel available\n"); s3cdma 321 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_clocks) { s3cdma 324 drivers/dma/s3c24xx-dma.c dev_err(&s3cdma->pdev->dev, "could not enable clock for channel %d, err %d\n", s3cdma 341 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = phy->host; s3cdma 343 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_clocks) s3cdma 442 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 444 drivers/dma/s3c24xx-dma.c const struct s3c24xx_dma_platdata *pdata = s3cdma->pdata; s3cdma 466 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_reqsel) { s3cdma 479 drivers/dma/s3c24xx-dma.c if (s3cdma->sdata->has_reqsel) s3cdma 522 drivers/dma/s3c24xx-dma.c static void s3c24xx_dma_free_txd_list(struct s3c24xx_dma_engine *s3cdma, s3cdma 538 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 543 drivers/dma/s3c24xx-dma.c dev_dbg(&s3cdma->pdev->dev, "no physical channel available for xfer on %s\n", s3cdma 549 drivers/dma/s3c24xx-dma.c dev_dbg(&s3cdma->pdev->dev, "allocated physical channel %d for xfer on %s\n", s3cdma 561 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 563 drivers/dma/s3c24xx-dma.c dev_dbg(&s3cdma->pdev->dev, "reassigned physical channel %d for xfer on %s\n", s3cdma 583 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 590 drivers/dma/s3c24xx-dma.c list_for_each_entry(p, &s3cdma->memcpy.channels, vc.chan.device_node) s3cdma 597 drivers/dma/s3c24xx-dma.c list_for_each_entry(p, &s3cdma->slave.channels, s3cdma 711 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 718 drivers/dma/s3c24xx-dma.c dev_err(&s3cdma->pdev->dev, "trying to terminate already stopped channel %d\n", s3cdma 737 drivers/dma/s3c24xx-dma.c s3c24xx_dma_free_txd_list(s3cdma, s3cchan); s3cdma 820 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 825 drivers/dma/s3c24xx-dma.c dev_dbg(&s3cdma->pdev->dev, "prepare memcpy of %zu bytes from %s\n", s3cdma 829 drivers/dma/s3c24xx-dma.c dev_err(&s3cdma->pdev->dev, "memcpy size %zu to large\n", len); s3cdma 882 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 883 drivers/dma/s3c24xx-dma.c const struct s3c24xx_dma_platdata *pdata = s3cdma->pdata; s3cdma 892 drivers/dma/s3c24xx-dma.c dev_dbg(&s3cdma->pdev->dev, s3cdma 897 drivers/dma/s3c24xx-dma.c dev_err(&s3cdma->pdev->dev, s3cdma 980 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; s3cdma 981 drivers/dma/s3c24xx-dma.c const struct s3c24xx_dma_platdata *pdata = s3cdma->pdata; s3cdma 990 drivers/dma/s3c24xx-dma.c dev_dbg(&s3cdma->pdev->dev, "prepare transaction of %d bytes from %s\n", s3cdma 1037 drivers/dma/s3c24xx-dma.c dev_err(&s3cdma->pdev->dev, s3cdma 1088 drivers/dma/s3c24xx-dma.c static int s3c24xx_dma_init_virtual_channels(struct s3c24xx_dma_engine *s3cdma, s3cdma 1107 drivers/dma/s3c24xx-dma.c chan->host = s3cdma; s3cdma 1188 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma; s3cdma 1210 drivers/dma/s3c24xx-dma.c s3cdma = devm_kzalloc(&pdev->dev, sizeof(*s3cdma), GFP_KERNEL); s3cdma 1211 drivers/dma/s3c24xx-dma.c if (!s3cdma) s3cdma 1214 drivers/dma/s3c24xx-dma.c s3cdma->pdev = pdev; s3cdma 1215 drivers/dma/s3c24xx-dma.c s3cdma->pdata = pdata; s3cdma 1216 drivers/dma/s3c24xx-dma.c s3cdma->sdata = sdata; s3cdma 1219 drivers/dma/s3c24xx-dma.c s3cdma->base = devm_ioremap_resource(&pdev->dev, res); s3cdma 1220 drivers/dma/s3c24xx-dma.c if (IS_ERR(s3cdma->base)) s3cdma 1221 drivers/dma/s3c24xx-dma.c return PTR_ERR(s3cdma->base); s3cdma 1223 drivers/dma/s3c24xx-dma.c s3cdma->phy_chans = devm_kcalloc(&pdev->dev, s3cdma 1227 drivers/dma/s3c24xx-dma.c if (!s3cdma->phy_chans) s3cdma 1232 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_phy *phy = &s3cdma->phy_chans[i]; s3cdma 1236 drivers/dma/s3c24xx-dma.c phy->base = s3cdma->base + (i * sdata->stride); s3cdma 1237 drivers/dma/s3c24xx-dma.c phy->host = s3cdma; s3cdma 1276 drivers/dma/s3c24xx-dma.c dma_cap_set(DMA_MEMCPY, s3cdma->memcpy.cap_mask); s3cdma 1277 drivers/dma/s3c24xx-dma.c dma_cap_set(DMA_PRIVATE, s3cdma->memcpy.cap_mask); s3cdma 1278 drivers/dma/s3c24xx-dma.c s3cdma->memcpy.dev = &pdev->dev; s3cdma 1279 drivers/dma/s3c24xx-dma.c s3cdma->memcpy.device_free_chan_resources = s3cdma 1281 drivers/dma/s3c24xx-dma.c s3cdma->memcpy.device_prep_dma_memcpy = s3c24xx_dma_prep_memcpy; s3cdma 1282 drivers/dma/s3c24xx-dma.c s3cdma->memcpy.device_tx_status = s3c24xx_dma_tx_status; s3cdma 1283 drivers/dma/s3c24xx-dma.c s3cdma->memcpy.device_issue_pending = s3c24xx_dma_issue_pending; s3cdma 1284 drivers/dma/s3c24xx-dma.c s3cdma->memcpy.device_config = s3c24xx_dma_set_runtime_config; s3cdma 1285 drivers/dma/s3c24xx-dma.c s3cdma->memcpy.device_terminate_all = s3c24xx_dma_terminate_all; s3cdma 1286 drivers/dma/s3c24xx-dma.c s3cdma->memcpy.device_synchronize = s3c24xx_dma_synchronize; s3cdma 1289 drivers/dma/s3c24xx-dma.c dma_cap_set(DMA_SLAVE, s3cdma->slave.cap_mask); s3cdma 1290 drivers/dma/s3c24xx-dma.c dma_cap_set(DMA_CYCLIC, s3cdma->slave.cap_mask); s3cdma 1291 drivers/dma/s3c24xx-dma.c dma_cap_set(DMA_PRIVATE, s3cdma->slave.cap_mask); s3cdma 1292 drivers/dma/s3c24xx-dma.c s3cdma->slave.dev = &pdev->dev; s3cdma 1293 drivers/dma/s3c24xx-dma.c s3cdma->slave.device_free_chan_resources = s3cdma 1295 drivers/dma/s3c24xx-dma.c s3cdma->slave.device_tx_status = s3c24xx_dma_tx_status; s3cdma 1296 drivers/dma/s3c24xx-dma.c s3cdma->slave.device_issue_pending = s3c24xx_dma_issue_pending; s3cdma 1297 drivers/dma/s3c24xx-dma.c s3cdma->slave.device_prep_slave_sg = s3c24xx_dma_prep_slave_sg; s3cdma 1298 drivers/dma/s3c24xx-dma.c s3cdma->slave.device_prep_dma_cyclic = s3c24xx_dma_prep_dma_cyclic; s3cdma 1299 drivers/dma/s3c24xx-dma.c s3cdma->slave.device_config = s3c24xx_dma_set_runtime_config; s3cdma 1300 drivers/dma/s3c24xx-dma.c s3cdma->slave.device_terminate_all = s3c24xx_dma_terminate_all; s3cdma 1301 drivers/dma/s3c24xx-dma.c s3cdma->slave.device_synchronize = s3c24xx_dma_synchronize; s3cdma 1302 drivers/dma/s3c24xx-dma.c s3cdma->slave.filter.map = pdata->slave_map; s3cdma 1303 drivers/dma/s3c24xx-dma.c s3cdma->slave.filter.mapcnt = pdata->slavecnt; s3cdma 1304 drivers/dma/s3c24xx-dma.c s3cdma->slave.filter.fn = s3c24xx_dma_filter; s3cdma 1307 drivers/dma/s3c24xx-dma.c ret = s3c24xx_dma_init_virtual_channels(s3cdma, &s3cdma->memcpy, s3cdma 1317 drivers/dma/s3c24xx-dma.c ret = s3c24xx_dma_init_virtual_channels(s3cdma, &s3cdma->slave, s3cdma 1326 drivers/dma/s3c24xx-dma.c ret = dma_async_device_register(&s3cdma->memcpy); s3cdma 1334 drivers/dma/s3c24xx-dma.c ret = dma_async_device_register(&s3cdma->slave); s3cdma 1342 drivers/dma/s3c24xx-dma.c platform_set_drvdata(pdev, s3cdma); s3cdma 1349 drivers/dma/s3c24xx-dma.c dma_async_device_unregister(&s3cdma->memcpy); s3cdma 1351 drivers/dma/s3c24xx-dma.c s3c24xx_dma_free_virtual_channels(&s3cdma->slave); s3cdma 1353 drivers/dma/s3c24xx-dma.c s3c24xx_dma_free_virtual_channels(&s3cdma->memcpy); s3cdma 1357 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_phy *phy = &s3cdma->phy_chans[i]; s3cdma 1366 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma) s3cdma 1370 drivers/dma/s3c24xx-dma.c for (i = 0; i < s3cdma->pdata->num_phy_channels; i++) { s3cdma 1371 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_phy *phy = &s3cdma->phy_chans[i]; s3cdma 1380 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = platform_get_drvdata(pdev); s3cdma 1384 drivers/dma/s3c24xx-dma.c dma_async_device_unregister(&s3cdma->slave); s3cdma 1385 drivers/dma/s3c24xx-dma.c dma_async_device_unregister(&s3cdma->memcpy); s3cdma 1387 drivers/dma/s3c24xx-dma.c s3c24xx_dma_free_irq(pdev, s3cdma); s3cdma 1389 drivers/dma/s3c24xx-dma.c s3c24xx_dma_free_virtual_channels(&s3cdma->slave); s3cdma 1390 drivers/dma/s3c24xx-dma.c s3c24xx_dma_free_virtual_channels(&s3cdma->memcpy); s3cdma 1394 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_phy *phy = &s3cdma->phy_chans[i];