diff options
| -rw-r--r-- | arch/powerpc/platforms/powernv/opal-nvram.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/powernv/opal-nvram.c b/arch/powerpc/platforms/powernv/opal-nvram.c index ba2ff06a2c98..1bceb95f422d 100644 --- a/arch/powerpc/platforms/powernv/opal-nvram.c +++ b/arch/powerpc/platforms/powernv/opal-nvram.c | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | 11 | ||
| 12 | #define DEBUG | 12 | #define DEBUG |
| 13 | 13 | ||
| 14 | #include <linux/delay.h> | ||
| 14 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
| 15 | #include <linux/init.h> | 16 | #include <linux/init.h> |
| 16 | #include <linux/of.h> | 17 | #include <linux/of.h> |
| @@ -56,8 +57,12 @@ static ssize_t opal_nvram_write(char *buf, size_t count, loff_t *index) | |||
| 56 | 57 | ||
| 57 | while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) { | 58 | while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) { |
| 58 | rc = opal_write_nvram(__pa(buf), count, off); | 59 | rc = opal_write_nvram(__pa(buf), count, off); |
| 59 | if (rc == OPAL_BUSY_EVENT) | 60 | if (rc == OPAL_BUSY_EVENT) { |
| 61 | msleep(OPAL_BUSY_DELAY_MS); | ||
| 60 | opal_poll_events(NULL); | 62 | opal_poll_events(NULL); |
| 63 | } else if (rc == OPAL_BUSY) { | ||
| 64 | msleep(OPAL_BUSY_DELAY_MS); | ||
| 65 | } | ||
| 61 | } | 66 | } |
| 62 | 67 | ||
| 63 | if (rc) | 68 | if (rc) |
