mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
ARM: PL08x: ensure loops use cpu_relax()
Tight loops should use cpu_relax() to allow CPUs to reduce power consumption while waiting for events. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
parent
8c8cc2b104
commit
19386b3234
@ -191,7 +191,7 @@ static void pl08x_set_cregs(struct pl08x_driver_data *pl08x,
|
|||||||
{
|
{
|
||||||
/* Wait for channel inactive */
|
/* Wait for channel inactive */
|
||||||
while (pl08x_phy_channel_busy(ch))
|
while (pl08x_phy_channel_busy(ch))
|
||||||
;
|
cpu_relax();
|
||||||
|
|
||||||
dev_vdbg(&pl08x->adev->dev,
|
dev_vdbg(&pl08x->adev->dev,
|
||||||
"WRITE channel %d: csrc=0x%08x, cdst=0x%08x, "
|
"WRITE channel %d: csrc=0x%08x, cdst=0x%08x, "
|
||||||
@ -255,7 +255,7 @@ static void pl08x_enable_phy_chan(struct pl08x_driver_data *pl08x,
|
|||||||
* Do not access config register until channel shows as disabled
|
* Do not access config register until channel shows as disabled
|
||||||
*/
|
*/
|
||||||
while (readl(pl08x->base + PL080_EN_CHAN) & (1 << ch->id))
|
while (readl(pl08x->base + PL080_EN_CHAN) & (1 << ch->id))
|
||||||
;
|
cpu_relax();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Do not access config register until channel shows as inactive
|
* Do not access config register until channel shows as inactive
|
||||||
@ -288,7 +288,7 @@ static void pl08x_pause_phy_chan(struct pl08x_phy_chan *ch)
|
|||||||
|
|
||||||
/* Wait for channel inactive */
|
/* Wait for channel inactive */
|
||||||
while (pl08x_phy_channel_busy(ch))
|
while (pl08x_phy_channel_busy(ch))
|
||||||
;
|
cpu_relax();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pl08x_resume_phy_chan(struct pl08x_phy_chan *ch)
|
static void pl08x_resume_phy_chan(struct pl08x_phy_chan *ch)
|
||||||
|
Loading…
Reference in New Issue
Block a user