Skip to content

Commit

Permalink
Staging: sep: We have two different repeats of the same logic
Browse files Browse the repository at this point in the history
So how about a little helper

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Alan Cox authored and Greg Kroah-Hartman committed Sep 15, 2009
1 parent 79de99e commit 794f1d7
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions drivers/staging/sep/sep_main_mod.c
Original file line number Diff line number Diff line change
Expand Up @@ -3803,6 +3803,15 @@ static int sep_set_time(unsigned long *address_ptr,
return 0;
}

static void sep_wait_busy(struct sep_device *dev)
{
u32 reg;

do {
reg = sep_read_reg(sep_dev, HW_HOST_SEP_BUSY_REG_ADDR);
} while (reg);
}

/*
PATCH for configuring the DMA to single burst instead of multi-burst
*/
Expand All @@ -3822,9 +3831,7 @@ static void sep_configure_dma_burst(void)
DEBUG_PRINT_0(SEP_DEBUG_LEVEL_BASIC,
"SEP Driver:<-------- sep_configure_dma_burst finished request access to registers from SEP (write reg) \n");

regVal = sep_read_reg(sep_dev, HW_HOST_SEP_BUSY_REG_ADDR);
while (regVal)
regVal = sep_read_reg(sep_dev, HW_HOST_SEP_BUSY_REG_ADDR);
sep_wait_busy(sep_dev);

DEBUG_PRINT_0(SEP_DEBUG_LEVEL_BASIC,
"SEP Driver:<-------- sep_configure_dma_burst finished request access to registers from SEP (while(revVal) wait loop) \n");
Expand All @@ -3834,9 +3841,7 @@ static void sep_configure_dma_burst(void)

/* release the sep busy */
sep_write_reg(sep_dev, HW_HOST_HOST_SEP_GPR0_REG_ADDR, 0x0UL);
regVal = sep_read_reg(sep_dev, HW_HOST_SEP_BUSY_REG_ADDR);
while (regVal != 0x0)
regVal = sep_read_reg(sep_dev, HW_HOST_SEP_BUSY_REG_ADDR);
sep_wait_busy(sep_dev);

DEBUG_PRINT_0(SEP_DEBUG_LEVEL_BASIC,
"SEP Driver:<-------- sep_configure_dma_burst done \n");
Expand Down

0 comments on commit 794f1d7

Please sign in to comment.