| .. | .. |
|---|
| 12 | 12 | #define SFC_MAX_IOSIZE_VER4 (0xFFFFFFFF) |
|---|
| 13 | 13 | |
|---|
| 14 | 14 | static void __iomem *g_sfc_reg; |
|---|
| 15 | +static u32 sfc_version; |
|---|
| 15 | 16 | |
|---|
| 16 | 17 | static void sfc_reset(void) |
|---|
| 17 | 18 | { |
|---|
| .. | .. |
|---|
| 75 | 76 | |
|---|
| 76 | 77 | if (sfc_get_version() >= SFC_VER_4) |
|---|
| 77 | 78 | writel(1, g_sfc_reg + SFC_LEN_CTRL); |
|---|
| 79 | + sfc_version = sfc_get_version(); |
|---|
| 78 | 80 | |
|---|
| 79 | 81 | return SFC_OK; |
|---|
| 80 | 82 | } |
|---|
| .. | .. |
|---|
| 116 | 118 | op->sfctrl.d32 |= 0x2; |
|---|
| 117 | 119 | cmd.b.datasize = size; |
|---|
| 118 | 120 | |
|---|
| 119 | | - if (sfc_get_version() >= SFC_VER_4) |
|---|
| 121 | + if (sfc_version >= SFC_VER_4) |
|---|
| 120 | 122 | writel(size, g_sfc_reg + SFC_LEN_EXT); |
|---|
| 121 | 123 | else |
|---|
| 122 | 124 | cmd.b.datasize = size; |
|---|
| .. | .. |
|---|
| 238 | 240 | break; |
|---|
| 239 | 241 | } |
|---|
| 240 | 242 | |
|---|
| 243 | + if (!bytes) |
|---|
| 244 | + break; |
|---|
| 241 | 245 | sfc_delay(1); |
|---|
| 242 | 246 | |
|---|
| 243 | 247 | if (timeout++ > 10000) { |
|---|