]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[sky2] Use 32-bit read to read Y2_VAUX_AVAIL
authorMike McCormack <mikem@ring3k.org>
Thu, 23 Mar 2017 15:54:03 +0000 (17:54 +0200)
committerMichael Brown <mcb30@ipxe.org>
Thu, 23 Mar 2017 15:54:03 +0000 (17:54 +0200)
B0_CTST is a 24bit register according to the vendor driver (sk98lin).
A 16bit read on B0_CTST will always return 0 for Y2_VAUX_AVAIL
(1<<16), so use a 32bit read when testing Y2_VAUX_AVAIL.

[This patch is copied directly from the Linux kernel tree.]

Signed-off-by: Mike McCormack <mikem@ring3k.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/sky2.c
src/drivers/net/sky2.h

index 35ff66c6dc62344ec4e59c2b1476505d7a49c055..211f224668991830d921e962267dd5f5bc938f1f 100644 (file)
@@ -246,7 +246,7 @@ static void sky2_power_aux(struct sky2_hw *hw)
                            Y2_COR_CLK_LNK2_DIS | Y2_CLK_GAT_LNK2_DIS);
 
        /* switch power to VAUX */
-       if (sky2_read16(hw, B0_CTST) & Y2_VAUX_AVAIL)
+       if (sky2_read32(hw, B0_CTST) & Y2_VAUX_AVAIL)
                sky2_write8(hw, B0_POWER_CTRL,
                            (PC_VAUX_ENA | PC_VCC_ENA |
                             PC_VAUX_ON | PC_VCC_OFF));
index 9bb63010e1e5be48f42bdd4c9b1be5f2fdfa2352..9c3313128632583539ca7c1cc2e461ef7caec917 100644 (file)
@@ -294,7 +294,7 @@ enum csr_regs {
        Y2_CFG_AER      = 0x1d00,       /* PCI Advanced Error Report region */
 };
 
-/*     B0_CTST                 16 bit  Control/Status register */
+/*     B0_CTST                 24 bit  Control/Status register */
 enum {
        Y2_VMAIN_AVAIL  = 1<<17,/* VMAIN available (YUKON-2 only) */
        Y2_VAUX_AVAIL   = 1<<16,/* VAUX available (YUKON-2 only) */