netdev_err(bp->dev,  "Warning: Unqualified SFP+ module detected,"
                              " Port %d from %s part number %s\n",
                         params->port, vendor_name, vendor_pn);
-       phy->flags |= FLAGS_SFP_NOT_APPROVED;
+       if ((val & PORT_FEAT_CFG_OPT_MDL_ENFRCMNT_MASK) !=
+           PORT_FEAT_CFG_OPT_MDL_ENFRCMNT_WARNING_MSG)
+               phy->flags |= FLAGS_SFP_NOT_APPROVED;
        return -EINVAL;
 }
 
                tmp2 &= 0xFFEF;
                bnx2x_cl45_write(bp, phy,
                        MDIO_PMA_DEVAD, MDIO_PMA_REG_8727_OPT_CFG_REG, tmp2);
+               bnx2x_cl45_read(bp, phy,
+                               MDIO_PMA_DEVAD, MDIO_PMA_REG_PHY_IDENTIFIER,
+                               &tmp2);
+               bnx2x_cl45_write(bp, phy,
+                                MDIO_PMA_DEVAD, MDIO_PMA_REG_PHY_IDENTIFIER,
+                                (tmp2 & 0x7fff));
        }
 
        return 0;
                                 MDIO_PMA_DEVAD, MDIO_PMA_LASI_RXCTRL,
                                 ((1<<5) | (1<<2)));
        }
-       DP(NETIF_MSG_LINK, "Enabling 8727 TX laser if SFP is approved\n");
-       bnx2x_8727_specific_func(phy, params, ENABLE_TX);
-       /* If transmitter is disabled, ignore false link up indication */
-       bnx2x_cl45_read(bp, phy,
-                       MDIO_PMA_DEVAD, MDIO_PMA_REG_PHY_IDENTIFIER, &val1);
-       if (val1 & (1<<15)) {
+
+       if (!(phy->flags & FLAGS_SFP_NOT_APPROVED)) {
+               DP(NETIF_MSG_LINK, "Enabling 8727 TX laser\n");
+               bnx2x_sfp_set_transmitter(params, phy, 1);
+       } else {
                DP(NETIF_MSG_LINK, "Tx is disabled\n");
                return 0;
        }