Commit 28c0074f authored by Heiner Kallweit's avatar Heiner Kallweit Committed by Jakub Kicinski
Browse files

r8169: bail out from probe if fiber mode is detected on RTL8127AF



It was reported that on a card with RTL8127AF (SFP + DAC) link-up isn't
detected. Realtek hides the SFP behind the internal PHY, which isn't
behaving fully compliance with clause 22 any longer in fiber mode.
Due to not having access to chip documentation there isn't much I can
do for now. Instead of silently failing to detect link-up in fiber mode,
inform the user that fiber mode isn't support and bail out.

The logic to detect fiber mode is borrowed from Realtek's r8127 driver.

Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Link: https://patch.msgid.link/fab6605a-54e2-4f54-b194-11c2b9caaaa9@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e8c84b98
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -5451,6 +5451,15 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
	}
	tp->aspm_manageable = !rc;

	/* Fiber mode on RTL8127AF isn't supported */
	if (rtl_is_8125(tp)) {
		u16 data = r8168_mac_ocp_read(tp, 0xd006);

		if ((data & 0xff) == 0x07)
			return dev_err_probe(&pdev->dev, -ENODEV,
					     "Fiber mode not supported\n");
	}

	tp->dash_type = rtl_get_dash_type(tp);
	tp->dash_enabled = rtl_dash_is_enabled(tp);