Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 280111
b: refs/heads/master
c: 53e4ace
h: refs/heads/master
i:
  280109: ce35dc2
  280107: 2234228
  280103: 91e854e
  280095: 2d576aa
v: v3
  • Loading branch information
Chris Blair authored and Linus Walleij committed Dec 1, 2011
1 parent 64b0b03 commit e452b7f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0ad2deeab5d3fc80fc7cd85638f805830254ef1d
refs/heads/master: 53e4acea0e819a6a8513e10a0773f2259ede0481
20 changes: 18 additions & 2 deletions trunk/drivers/spi/spi-pl022.c
Original file line number Diff line number Diff line change
Expand Up @@ -1516,7 +1516,13 @@ static void pump_messages(struct work_struct *work)
/* nothing more to do - disable spi/ssp and power off */
writew((readw(SSP_CR1(pl022->virtbase)) &
(~SSP_CR1_MASK_SSE)), SSP_CR1(pl022->virtbase));
pm_runtime_put(&pl022->adev->dev);

if (pl022->master_info->autosuspend_delay > 0) {
pm_runtime_mark_last_busy(&pl022->adev->dev);
pm_runtime_put_autosuspend(&pl022->adev->dev);
} else {
pm_runtime_put(&pl022->adev->dev);
}
}
pl022->busy = false;
spin_unlock_irqrestore(&pl022->queue_lock, flags);
Expand Down Expand Up @@ -2247,7 +2253,17 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id)
dev_dbg(dev, "probe succeeded\n");

/* let runtime pm put suspend */
pm_runtime_put(dev);
if (platform_info->autosuspend_delay > 0) {
dev_info(&adev->dev,
"will use autosuspend for runtime pm, delay %dms\n",
platform_info->autosuspend_delay);
pm_runtime_set_autosuspend_delay(dev,
platform_info->autosuspend_delay);
pm_runtime_use_autosuspend(dev);
pm_runtime_put_autosuspend(dev);
} else {
pm_runtime_put(dev);
}
return 0;

err_spi_register:
Expand Down
4 changes: 4 additions & 0 deletions trunk/include/linux/amba/pl022.h
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,9 @@ struct dma_chan;
* @enable_dma: if true enables DMA driven transfers.
* @dma_rx_param: parameter to locate an RX DMA channel.
* @dma_tx_param: parameter to locate a TX DMA channel.
* @autosuspend_delay: delay in ms following transfer completion before the
* runtime power management system suspends the device. A setting of 0
* indicates no delay and the device will be suspended immediately.
*/
struct pl022_ssp_controller {
u16 bus_id;
Expand All @@ -246,6 +249,7 @@ struct pl022_ssp_controller {
bool (*dma_filter)(struct dma_chan *chan, void *filter_param);
void *dma_rx_param;
void *dma_tx_param;
int autosuspend_delay;
};

/**
Expand Down

0 comments on commit e452b7f

Please sign in to comment.