Lines Matching refs:hsu

154 	if (nr >= chip->hsu->nr_channels)  in hsu_dma_get_status()
157 hsuc = &chip->hsu->chan[nr]; in hsu_dma_get_status()
212 if (nr >= chip->hsu->nr_channels) in hsu_dma_do_irq()
215 hsuc = &chip->hsu->chan[nr]; in hsu_dma_do_irq()
425 struct hsu_dma *hsu; in hsu_dma_probe() local
430 hsu = devm_kzalloc(chip->dev, sizeof(*hsu), GFP_KERNEL); in hsu_dma_probe()
431 if (!hsu) in hsu_dma_probe()
434 chip->hsu = hsu; in hsu_dma_probe()
437 hsu->nr_channels = (chip->length - chip->offset) / HSU_DMA_CHAN_LENGTH; in hsu_dma_probe()
439 hsu->chan = devm_kcalloc(chip->dev, hsu->nr_channels, in hsu_dma_probe()
440 sizeof(*hsu->chan), GFP_KERNEL); in hsu_dma_probe()
441 if (!hsu->chan) in hsu_dma_probe()
444 INIT_LIST_HEAD(&hsu->dma.channels); in hsu_dma_probe()
445 for (i = 0; i < hsu->nr_channels; i++) { in hsu_dma_probe()
446 struct hsu_dma_chan *hsuc = &hsu->chan[i]; in hsu_dma_probe()
449 vchan_init(&hsuc->vchan, &hsu->dma); in hsu_dma_probe()
455 dma_cap_set(DMA_SLAVE, hsu->dma.cap_mask); in hsu_dma_probe()
456 dma_cap_set(DMA_PRIVATE, hsu->dma.cap_mask); in hsu_dma_probe()
458 hsu->dma.device_free_chan_resources = hsu_dma_free_chan_resources; in hsu_dma_probe()
460 hsu->dma.device_prep_slave_sg = hsu_dma_prep_slave_sg; in hsu_dma_probe()
462 hsu->dma.device_issue_pending = hsu_dma_issue_pending; in hsu_dma_probe()
463 hsu->dma.device_tx_status = hsu_dma_tx_status; in hsu_dma_probe()
465 hsu->dma.device_config = hsu_dma_slave_config; in hsu_dma_probe()
466 hsu->dma.device_pause = hsu_dma_pause; in hsu_dma_probe()
467 hsu->dma.device_resume = hsu_dma_resume; in hsu_dma_probe()
468 hsu->dma.device_terminate_all = hsu_dma_terminate_all; in hsu_dma_probe()
469 hsu->dma.device_synchronize = hsu_dma_synchronize; in hsu_dma_probe()
471 hsu->dma.src_addr_widths = HSU_DMA_BUSWIDTHS; in hsu_dma_probe()
472 hsu->dma.dst_addr_widths = HSU_DMA_BUSWIDTHS; in hsu_dma_probe()
473 hsu->dma.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV); in hsu_dma_probe()
474 hsu->dma.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST; in hsu_dma_probe()
476 hsu->dma.dev = chip->dev; in hsu_dma_probe()
478 dma_set_max_seg_size(hsu->dma.dev, HSU_CH_DxTSR_MASK); in hsu_dma_probe()
480 ret = dma_async_device_register(&hsu->dma); in hsu_dma_probe()
484 dev_info(chip->dev, "Found HSU DMA, %d channels\n", hsu->nr_channels); in hsu_dma_probe()
491 struct hsu_dma *hsu = chip->hsu; in hsu_dma_remove() local
494 dma_async_device_unregister(&hsu->dma); in hsu_dma_remove()
496 for (i = 0; i < hsu->nr_channels; i++) { in hsu_dma_remove()
497 struct hsu_dma_chan *hsuc = &hsu->chan[i]; in hsu_dma_remove()