From 539c86f4b0c2c5f8e75f234489efe89fa26f29ce Mon Sep 17 00:00:00 2001 From: Mark Allyn Date: Thu, 9 Dec 2010 09:32:13 -0800 Subject: [PATCH] --- yaml --- r: 228357 b: refs/heads/master c: be38efe11748684d54ff86810443979a59b96cfc h: refs/heads/master i: 228355: 3bd5715d88d6a0cabb299001342403948efbce5b v: v3 --- [refs] | 2 +- trunk/drivers/staging/sep/sep_driver.c | 9 ++++++++- trunk/drivers/staging/sep/sep_driver_config.h | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 19f1f808b7f7..ea15802d0d0a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8f9346a091ac523afa73643aae69f74f0f8a6e80 +refs/heads/master: be38efe11748684d54ff86810443979a59b96cfc diff --git a/trunk/drivers/staging/sep/sep_driver.c b/trunk/drivers/staging/sep/sep_driver.c index 5a54f984e28e..83475eb77ad8 100644 --- a/trunk/drivers/staging/sep/sep_driver.c +++ b/trunk/drivers/staging/sep/sep_driver.c @@ -53,6 +53,7 @@ #include #include #include +#include #include #include "../memrar/memrar.h" @@ -3244,6 +3245,9 @@ static int sep_reconfig_shared_area(struct sep_device *sep) { int ret_val; + /* use to limit waiting for SEP */ + unsigned long end_time; + dev_dbg(&sep->pdev->dev, "reconfig shared area start\n"); /* Send the new SHARED MESSAGE AREA to the SEP */ @@ -3255,7 +3259,10 @@ static int sep_reconfig_shared_area(struct sep_device *sep) /* Poll for SEP response */ ret_val = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR1_REG_ADDR); - while (ret_val != 0xffffffff && ret_val != sep->shared_bus) + end_time = jiffies + (WAIT_TIME * HZ); + + while ((time_before(jiffies, end_time)) && (ret_val != 0xffffffff) && + (ret_val != sep->shared_bus)) ret_val = sep_read_reg(sep, HW_HOST_SEP_HOST_GPR1_REG_ADDR); /* Check the return value (register) */ diff --git a/trunk/drivers/staging/sep/sep_driver_config.h b/trunk/drivers/staging/sep/sep_driver_config.h index b96045f178cd..92338c0f6bd2 100644 --- a/trunk/drivers/staging/sep/sep_driver_config.h +++ b/trunk/drivers/staging/sep/sep_driver_config.h @@ -230,5 +230,7 @@ held by the proccess (struct file) */ /* the token that defines the data pool pointers address */ #define SEP_EXT_CACHE_ADDR_VAL_TOKEN 0xBABABABA +/* Time limit for SEP to finish */ +#define WAIT_TIME 10 #endif /* SEP DRIVER CONFIG */