wifi: rtw89: pci: add quirks to avoid using PCI DAC for X99 board across chips
Ping-Ke Shih
maintainerPATCH 1/1 wifi: rtw89: pci: add quirks to avoid using PCI DAC for X99 board across chips
RTL8852BE can't enable 36-bits DMA on Intel X99 motherboard, which isn't a sold combination so add quirk across all chips, not only on specific chip RTL8852BE,
Reported-by Iohann Tachy <[email protected]>
Closes https://lore.kernel.org/linux-wireless/CAPVS0eLR5KCmBEkGHnSxwKQM0hwCSaL0TSaTMNT_GJQK1sT8hg@mail.gmail.com/T/#m976028ea900ea6f2c5fbbd1ff14a92377227f555 open here
Signed-off-by Ping-Ke Shih <[email protected]>
--- drivers/net/wireless/realtek/rtw89/core.h | 1 + drivers/net/wireless/realtek/rtw89/pci.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+)
drivers/net/wireless/realtek/rtw89/core.h +1 -0
@@ -5205,6 +5205,7 @@ enum rtw89_flags {enum rtw89_quirks {RTW89_QUIRK_PCI_BER , +RTW89_QUIRK_PCI_NO_DAC ,RTW89_QUIRK_THERMAL_PROT_120C ,RTW89_QUIRK_THERMAL_PROT_110C ,
drivers/net/wireless/realtek/rtw89/pci.c +16 -0
@@ -19,6 +19,18 @@ MODULE_PARM_DESC(disable_clkreq, "Set Y to disable PCI clkreq support");MODULE_PARM_DESC (disable_aspm_l1,"Set Y to disable PCI ASPM L1 support" );MODULE_PARM_DESC (disable_aspm_l1ss,"Set Y to disable PCI L1SS support" ); +static const struct dmi_system_id rtw89_pci_quirks[] = { + { + .ident ="MACHINIST X99-RS9" , + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"MACHINIST" ), +DMI_MATCH (DMI_PRODUCT_NAME ,"X99-RS9" ), + }, + .driver_data = (void *)RTW89_QUIRK_PCI_NO_DAC , + }, + {}, +}; +static int rtw89_pci_get_phy_offset_by_link_speed (struct rtw89_dev *rtwdev,u32 *phy_offset) {
@@ -3305,6 +3317,9 @@ static bool rtw89_pci_is_dac_compatible_bridge(struct rtw89_dev *rtwdev)if (!bridge)return false; +if (test_bit (RTW89_QUIRK_PCI_NO_DAC , rtwdev->quirks)) +return false; +switch (bridge->vendor) {case PCI_VENDOR_ID_INTEL :return true;
@@ -4765,6 +4780,7 @@ int rtw89_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) rtwdev->hci.cpwm_addr = pci_info->cpwm_addr;rtw89_check_quirks (rtwdev, info->quirks); +rtw89_check_quirks (rtwdev, rtw89_pci_quirks);rtw89_check_pci_ssid_quirks (rtwdev, pdev, pci_info->ssid_quirks);SET_IEEE80211_DEV (rtwdev->hw, &pdev->dev);
base-commit: 4c1552473acf03cad828884b4e1c90b97a89b265
Signature · 1 line
2.25.1