From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> This reverts commit b3dcad0bfd62fcc9367d8092a71918db53804f53 which is commit cd4a32e60061789676f7f018a94fcc9ec56732a0 upstream. Turned out that this should not have been applied to the stable tree. Link: https://lore.kernel.org/r/20240628172211.17ccefe9@dellmb Reported-by: Marek Behún <kabel@xxxxxxxxxx> Cc: Jiri Pirko <jiri@xxxxxxxxxx> Cc: Jakub Kicinski <kuba@xxxxxxxxxx> Cc: Sasha Levin <sashal@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/net/phy/sfp.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) --- a/drivers/net/phy/sfp.c +++ b/drivers/net/phy/sfp.c @@ -385,23 +385,18 @@ static void sfp_fixup_rollball(struct sf sfp->phy_t_retry = msecs_to_jiffies(1000); } -static void sfp_fixup_fs_2_5gt(struct sfp *sfp) +static void sfp_fixup_fs_10gt(struct sfp *sfp) { + sfp_fixup_10gbaset_30m(sfp); sfp_fixup_rollball(sfp); - /* The RollBall fixup is not enough for FS modules, the PHY chip inside + /* The RollBall fixup is not enough for FS modules, the AQR chip inside * them does not return 0xffff for PHY ID registers in all MMDs for the * while initializing. They need a 4 second wait before accessing PHY. */ sfp->module_t_wait = msecs_to_jiffies(4000); } -static void sfp_fixup_fs_10gt(struct sfp *sfp) -{ - sfp_fixup_10gbaset_30m(sfp); - sfp_fixup_fs_2_5gt(sfp); -} - static void sfp_fixup_halny_gsfp(struct sfp *sfp) { /* Ignore the TX_FAULT and LOS signals on this module. @@ -477,10 +472,6 @@ static const struct sfp_quirk sfp_quirks // Rollball protocol to talk to the PHY. SFP_QUIRK_F("FS", "SFP-10G-T", sfp_fixup_fs_10gt), - // Fiberstore SFP-2.5G-T uses Rollball protocol to talk to the PHY and - // needs 4 sec wait before probing the PHY. - SFP_QUIRK_F("FS", "SFP-2.5G-T", sfp_fixup_fs_2_5gt), - // Fiberstore GPON-ONU-34-20BI can operate at 2500base-X, but report 1.2GBd // NRZ in their EEPROM SFP_QUIRK("FS", "GPON-ONU-34-20BI", sfp_quirk_2500basex, @@ -497,6 +488,9 @@ static const struct sfp_quirk sfp_quirks SFP_QUIRK("HUAWEI", "MA5671A", sfp_quirk_2500basex, sfp_fixup_ignore_tx_fault), + // FS 2.5G Base-T + SFP_QUIRK_M("FS", "SFP-2.5G-T", sfp_quirk_oem_2_5g), + // Lantech 8330-262D-E can operate at 2500base-X, but incorrectly report // 2500MBd NRZ in their EEPROM SFP_QUIRK_M("Lantech", "8330-262D-E", sfp_quirk_2500basex), Patches currently in stable-queue which might be from gregkh@xxxxxxxxxxxxxxxxxxx are queue-6.9/revert-mmc-moxart-mmc-use-sg_miter-for-pio.patch queue-6.9/ftruncate-pass-a-signed-offset.patch queue-6.9/ocfs2-fix-dio-failure-due-to-insufficient-transaction-credits.patch queue-6.9/usb-dwc3-core-remove-lock-of-otg-mode-during-gadget-suspend-resume-to-avoid-deadlock.patch queue-6.9/usb-typec-ucsi-ack-also-failed-get-error-commands.patch queue-6.9/irqchip-loongson-eiointc-use-early_cpu_to_node-instead-of-cpu_to_node.patch queue-6.9/kasan-fix-bad-call-to-unpoison_slab_object.patch queue-6.9/btrfs-zoned-fix-initial-free-space-detection.patch queue-6.9/usb-gadget-printer-fix-races-against-disable.patch queue-6.9/mmc-sdhci-do-not-lock-spinlock-around-mmc_gpio_get_ro.patch queue-6.9/ata-libata-core-add-ata_horkage_nolpm-for-all-crucial-bx-ssd1-models.patch queue-6.9/ata-ahci-clean-up-sysfs-file-on-error.patch queue-6.9/drm-fbdev-dma-only-set-smem_start-is-enable-per-module-option.patch queue-6.9/pci-msi-fix-uaf-in-msi_capability_init.patch queue-6.9/kbuild-install-dtb-files-as-0644-in-makefile.dtbinst.patch queue-6.9/revert-serial-core-only-stop-transmit-when-hw-fifo-is-empty.patch queue-6.9/can-mcp251xfd-fix-infinite-loop-when-xmit-fails.patch queue-6.9/serial-bcm63xx-uart-fix-tx-after-conversion-to-uart_port_tx_limited.patch queue-6.9/hexagon-fix-fadvise64_64-calling-conventions.patch queue-6.9/nvmet-fc-remove-__counted_by-from-nvmet_fc_tgt_queue.fod.patch queue-6.9/serial-8250_omap-implementation-of-errata-i2310.patch queue-6.9/alsa-hda-realtek-fix-mute-micmute-leds-don-t-work-for-elitebook-645-665-g11.patch queue-6.9/irqchip-loongson-liointc-set-different-isrs-for-different-cores.patch queue-6.9/io_uring-signal-sqpoll-task_work-with-twa_signal_no_ipi.patch queue-6.9/bcachefs-btree_gc-can-now-handle-unknown-btrees.patch queue-6.9/drm-amdgpu-atomfirmware-fix-parsing-of-vram_info.patch queue-6.9/usb-dwc3-core-workaround-for-csr-read-timeout.patch queue-6.9/nfs-drop-the-incorrect-assertion-in-nfs_swap_rw.patch queue-6.9/net-can-j1939-enhanced-error-handling-for-tightly-received-rts-messages-in-xtp_rx_rts_session_new.patch queue-6.9/usb-atm-cxacru-fix-endpoint-checking-in-cxacru_bind.patch queue-6.9/revert-net-sfp-enhance-quirk-for-fibrestore-2.5g-copper-sfp-module.patch queue-6.9/mmc-sdhci-do-not-invert-write-protect-twice.patch queue-6.9/sh-rework-sync_file_range-abi.patch queue-6.9/net-can-j1939-initialize-unused-data-in-j1939_send_one.patch queue-6.9/tty-mcf-mcf54418-has-10-uarts.patch queue-6.9/revert-mips-pci-lantiq-restore-reset-gpio-polarity.patch queue-6.9/drm-amdgpu-avoid-using-null-object-of-framebuffer.patch queue-6.9/batman-adv-don-t-accept-tt-entries-for-out-of-spec-vids.patch queue-6.9/mmc-sdhci-pci-convert-pcibios_-return-codes-to-errnos.patch queue-6.9/usb-typec-ucsi-glink-fix-child-node-release-in-probe-function.patch queue-6.9/tty-mxser-remove-__counted_by-from-mxser_board.ports.patch queue-6.9/cpu-hotplug-fix-dynstate-assignment-in-__cpuhp_setup_state_cpuslocked.patch queue-6.9/net-usb-ax88179_178a-improve-link-status-logs.patch queue-6.9/drm-drm_file-fix-pid-refcounting-race.patch queue-6.9/cpufreq-intel_pstate-use-hwp-to-initialize-itmt-if-cppc-is-missing.patch queue-6.9/serial-imx-set-receiver-level-before-starting-uart.patch queue-6.9/usb-gadget-printer-ss-support.patch queue-6.9/iio-accel-fxls8962af-select-iio_buffer-iio_kfifo_buf.patch queue-6.9/bcachefs-fix-sb-downgrade-validation.patch queue-6.9/mm-memory-don-t-require-head-page-for-do_set_pmd.patch queue-6.9/bcachefs-fix-bch2_sb_downgrade_update.patch queue-6.9/iio-chemical-bme680-fix-calibration-data-variable.patch queue-6.9/iio-chemical-bme680-fix-sensor-data-read-operation.patch queue-6.9/iio-chemical-bme680-fix-overflows-in-compensate-functions.patch queue-6.9/bcachefs-fix-sb_field_downgrade-validation.patch queue-6.9/drm-i915-gt-fix-potential-uaf-by-revoke-of-fence-registers.patch queue-6.9/usb-musb-da8xx-fix-a-resource-leak-in-probe.patch queue-6.9/iio-chemical-bme680-fix-pressure-value-output.patch queue-6.9/tty-serial-8250-fix-port-count-mismatch-with-the-device.patch queue-6.9/drm-amd-display-send-dp_total_lttpr_cnt-during-detection-if-lttpr-is-present.patch queue-6.9/cpu-fix-broken-cmdline-nosmp-and-maxcpus-0.patch queue-6.9/iio-humidity-hdc3020-fix-hysteresis-representation.patch queue-6.9/iio-adc-ad7266-fix-variable-checking-bug.patch queue-6.9/mm-fix-incorrect-vbq-reference-in-purge_fragmented_block.patch queue-6.9/mmc-sdhci-pci-o2micro-convert-pcibios_-return-codes-to-errnos.patch queue-6.9/serial-core-introduce-uart_port_tx_limited_flags.patch queue-6.9/usb-typec-ucsi-never-send-a-lone-connector-change-ac.patch queue-6.9/bcachefs-fix-setting-of-downgrade-recovery-passes-errors.patch queue-6.9/net-can-j1939-recover-socket-queue-on-can-bus-error-during-bam-transmission.patch queue-6.9/mmc-sdhci-brcmstb-check-r1_status-for-erase-trim-discard.patch queue-6.9/pinctrl-qcom-spmi-gpio-drop-broken-pm8008-support.patch queue-6.9/ata-libata-core-fix-double-free-on-error.patch queue-6.9/csky-hexagon-fix-broken-sys_sync_file_range.patch queue-6.9/drm-nouveau-dispnv04-fix-null-pointer-dereference-in-nv17_tv_get_ld_modes.patch queue-6.9/usb-gadget-aspeed_udc-fix-device-address-configuration.patch queue-6.9/revert-usb-gadget-u_ether-replace-netif_stop_queue-with-netif_device_detach.patch queue-6.9/usb-ucsi-stm32-fix-command-completion-handling.patch queue-6.9/revert-usb-gadget-u_ether-re-attach-netif-device-to-mirror-detachment.patch queue-6.9/drm-nouveau-dispnv04-fix-null-pointer-dereference-in-nv17_tv_get_hd_modes.patch queue-6.9/syscalls-fix-compat_sys_io_pgetevents_time64-usage.patch