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];