IB/ipath: Add flag and handling for chips with swapped register bug
The 6110 had a bug that caused some registers to be swapped; it was fixed for the 7220 (and didn't affect the 6120 because it had fewer registers). This adds a flag and related code to handle that, and includes some minor cleanups in the same area. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Esse commit está contido em:
@@ -1340,14 +1340,9 @@ static void ipath_update_pio_bufs(struct ipath_devdata *dd)
|
||||
/*
|
||||
* Chip Errata: bug 6641; even and odd qwords>3 are swapped
|
||||
*/
|
||||
if (i > 3) {
|
||||
if (i & 1)
|
||||
piov = le64_to_cpu(
|
||||
dd->ipath_pioavailregs_dma[i - 1]);
|
||||
else
|
||||
piov = le64_to_cpu(
|
||||
dd->ipath_pioavailregs_dma[i + 1]);
|
||||
} else
|
||||
if (i > 3 && (dd->ipath_flags & IPATH_SWAP_PIOBUFS))
|
||||
piov = le64_to_cpu(dd->ipath_pioavailregs_dma[i ^ 1]);
|
||||
else
|
||||
piov = le64_to_cpu(dd->ipath_pioavailregs_dma[i]);
|
||||
pchg = _IPATH_ALL_CHECKBITS &
|
||||
~(dd->ipath_pioavailshadow[i] ^ piov);
|
||||
|
Referência em uma nova issue
Block a user