CAP16_TO_CAP32(FC_RX);
        CAP16_TO_CAP32(FC_TX);
        CAP16_TO_CAP32(ANEG);
+       CAP16_TO_CAP32(FORCE_PAUSE);
        CAP16_TO_CAP32(MDIAUTO);
        CAP16_TO_CAP32(MDISTRAIGHT);
        CAP16_TO_CAP32(FEC_RS);
        CAP32_TO_CAP16(802_3_PAUSE);
        CAP32_TO_CAP16(802_3_ASM_DIR);
        CAP32_TO_CAP16(ANEG);
+       CAP32_TO_CAP16(FORCE_PAUSE);
        CAP32_TO_CAP16(MDIAUTO);
        CAP32_TO_CAP16(MDISTRAIGHT);
        CAP32_TO_CAP16(FEC_RS);
                fw_pause |= FW_PORT_CAP32_FC_RX;
        if (cc_pause & PAUSE_TX)
                fw_pause |= FW_PORT_CAP32_FC_TX;
+       if (!(cc_pause & PAUSE_AUTONEG))
+               fw_pause |= FW_PORT_CAP32_FORCE_PAUSE;
 
        return fw_pause;
 }
                rcap = lc->acaps | fw_fc | fw_fec | fw_mdi;
        }
 
-       if (rcap & ~lc->pcaps) {
+       /* Note that older Firmware doesn't have FW_PORT_CAP32_FORCE_PAUSE, so
+        * we need to exclude this from this check in order to maintain
+        * compatibility ...
+        */
+       if ((rcap & ~lc->pcaps) & ~FW_PORT_CAP32_FORCE_PAUSE) {
                dev_err(adapter->pdev_dev,
                        "Requested Port Capabilities %#x exceed Physical Port Capabilities %#x\n",
                        rcap, lc->pcaps);
 
        FW_PORT_CAP_MDISTRAIGHT         = 0x0400,
        FW_PORT_CAP_FEC_RS              = 0x0800,
        FW_PORT_CAP_FEC_BASER_RS        = 0x1000,
-       FW_PORT_CAP_FEC_RESERVED        = 0x2000,
+       FW_PORT_CAP_FORCE_PAUSE         = 0x2000,
        FW_PORT_CAP_802_3_PAUSE         = 0x4000,
        FW_PORT_CAP_802_3_ASM_DIR       = 0x8000,
 };
 #define        FW_PORT_CAP32_FEC_RESERVED1     0x02000000UL
 #define        FW_PORT_CAP32_FEC_RESERVED2     0x04000000UL
 #define        FW_PORT_CAP32_FEC_RESERVED3     0x08000000UL
-#define        FW_PORT_CAP32_RESERVED2         0xf0000000UL
+#define FW_PORT_CAP32_FORCE_PAUSE      0x10000000UL
+#define FW_PORT_CAP32_RESERVED2                0xe0000000UL
 
 #define FW_PORT_CAP32_SPEED_S  0
 #define FW_PORT_CAP32_SPEED_M  0xfff