struct lli *llis_va;
struct lli *llis_bus;
- if (!txd) {
- dev_err(&pl08x->adev->dev, "%s no descriptor\n", __func__);
- return 0;
- }
-
txd->llis_va = dma_pool_alloc(pl08x->pool, GFP_NOWAIT,
&txd->llis_bus);
if (!txd->llis_va) {
static void pl08x_free_txd(struct pl08x_driver_data *pl08x,
struct pl08x_txd *txd)
{
- if (!txd)
- dev_err(&pl08x->adev->dev,
- "%s no descriptor to free\n",
- __func__);
-
/* Free the LLI */
dma_pool_free(pl08x->pool, txd->llis_va,
txd->llis_bus);
struct pl08x_driver_data *pl08x = plchan->host;
unsigned long flags;
- if (!plchan)
- BUG();
-
spin_lock_irqsave(&plchan->lock, flags);
if (plchan->at) {
if (callback)
callback(callback_param);
- /*
- * Device callbacks should NOT clear
- * the current transaction on the channel
- * Linus: sometimes they should?
- */
- if (!plchan->at)
- BUG();
-
/*
* Free the descriptor if it's not for a device
* using a circular buffer