From 33c2f2f4ecb7db4d0d09f577a495946808db58e8 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Thu, 6 Aug 2009 20:45:35 +0100 Subject: [PATCH] --- yaml --- r: 162359 b: refs/heads/master c: 794f1d789520d423ef6d90d5390edea5c1b687c2 h: refs/heads/master i: 162357: fdc0e040ce5526a89c94e33f6db13824ddb2c06b 162355: e94e3d435cccf89f85b1f6bdecff5f1a3c096b91 162351: f46f40c1e473ca1ec9e78d3f2bf00d07b0bedb77 v: v3 --- [refs] | 2 +- trunk/drivers/staging/sep/sep_main_mod.c | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 7ab34277e477..eb5c8e397002 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 79de99e864fb731392bec78f251ce0310fed5d9a +refs/heads/master: 794f1d789520d423ef6d90d5390edea5c1b687c2 diff --git a/trunk/drivers/staging/sep/sep_main_mod.c b/trunk/drivers/staging/sep/sep_main_mod.c index 7e2fd3d1fbe2..b739f7d46291 100644 --- a/trunk/drivers/staging/sep/sep_main_mod.c +++ b/trunk/drivers/staging/sep/sep_main_mod.c @@ -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 */ @@ -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"); @@ -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");