diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2010-03-03 21:22:21 -0700 | 
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2010-03-03 21:22:21 -0700 | 
| commit | dd58ffcf5a5352fc10820c8ffbcd5fed416a2c3a (patch) | |
| tree | f36172b40f9f3fc2c646f70da40e01705399b6b8 /drivers/dma/ipu | |
| parent | aa4d72ae946a4fa40486b871717778734184fa29 (diff) | |
| parent | 56a5d3cf21c71963c8fc506e9b9d3f71641d9c71 (diff) | |
| download | linux-dd58ffcf5a5352fc10820c8ffbcd5fed416a2c3a.tar.bz2 | |
Merge branch 'coh' into dmaengine
Diffstat (limited to 'drivers/dma/ipu')
| -rw-r--r-- | drivers/dma/ipu/ipu_idmac.c | 25 | 
1 files changed, 7 insertions, 18 deletions
| diff --git a/drivers/dma/ipu/ipu_idmac.c b/drivers/dma/ipu/ipu_idmac.c index 1c518f1cc49b..2a446397c884 100644 --- a/drivers/dma/ipu/ipu_idmac.c +++ b/drivers/dma/ipu/ipu_idmac.c @@ -748,12 +748,10 @@ static void ipu_select_buffer(enum ipu_channel channel, int buffer_n)   * @buffer_n:	buffer number to update.   *		0 or 1 are the only valid values.   * @phyaddr:	buffer physical address. - * @return:	Returns 0 on success or negative error code on failure. This - *              function will fail if the buffer is set to ready.   */  /* Called under spin_lock(_irqsave)(&ichan->lock) */ -static int ipu_update_channel_buffer(struct idmac_channel *ichan, -				     int buffer_n, dma_addr_t phyaddr) +static void ipu_update_channel_buffer(struct idmac_channel *ichan, +				      int buffer_n, dma_addr_t phyaddr)  {  	enum ipu_channel channel = ichan->dma_chan.chan_id;  	uint32_t reg; @@ -793,8 +791,6 @@ static int ipu_update_channel_buffer(struct idmac_channel *ichan,  	}  	spin_unlock_irqrestore(&ipu_data.lock, flags); - -	return 0;  }  /* Called under spin_lock_irqsave(&ichan->lock) */ @@ -803,7 +799,6 @@ static int ipu_submit_buffer(struct idmac_channel *ichan,  {  	unsigned int chan_id = ichan->dma_chan.chan_id;  	struct device *dev = &ichan->dma_chan.dev->device; -	int ret;  	if (async_tx_test_ack(&desc->txd))  		return -EINTR; @@ -814,14 +809,7 @@ static int ipu_submit_buffer(struct idmac_channel *ichan,  	 * could make it conditional on status >= IPU_CHANNEL_ENABLED, but  	 * doing it again shouldn't hurt either.  	 */ -	ret = ipu_update_channel_buffer(ichan, buf_idx, -					sg_dma_address(sg)); - -	if (ret < 0) { -		dev_err(dev, "Updating sg %p on channel 0x%x buffer %d failed!\n", -			sg, chan_id, buf_idx); -		return ret; -	} +	ipu_update_channel_buffer(ichan, buf_idx, sg_dma_address(sg));  	ipu_select_buffer(chan_id, buf_idx);  	dev_dbg(dev, "Updated sg %p on channel 0x%x buffer %d\n", @@ -1366,10 +1354,11 @@ static irqreturn_t idmac_interrupt(int irq, void *dev_id)  	if (likely(sgnew) &&  	    ipu_submit_buffer(ichan, descnew, sgnew, ichan->active_buffer) < 0) { -		callback = desc->txd.callback; -		callback_param = desc->txd.callback_param; +		callback = descnew->txd.callback; +		callback_param = descnew->txd.callback_param;  		spin_unlock(&ichan->lock); -		callback(callback_param); +		if (callback) +			callback(callback_param);  		spin_lock(&ichan->lock);  	} |