.. | .. |
---|
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) { |
---|