diff --git a/repos/dde_linux/patches/wifi.patch b/repos/dde_linux/patches/wifi.patch index 66914089f..9f5564ed6 100644 --- a/repos/dde_linux/patches/wifi.patch +++ b/repos/dde_linux/patches/wifi.patch @@ -67,7 +67,7 @@ #include --- a/drivers/net/wireless/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/iwlwifi/pcie/drv.c -@@ -78,318 +78,322 @@ +@@ -78,318 +78,325 @@ /* Hardware specific file defines the PCI IDs table for that hardware module */ static DEFINE_PCI_DEVICE_TABLE(iwl_hw_card_ids) = { @@ -262,7 +262,10 @@ - -#if IS_ENABLED(CONFIG_IWLMVM) -/* 7260 Series */ -- {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, ++ {IWL_PCI_DEVICE(0x4238, 0x1111, iwl6000_3agn_cfg)}, /* x201 */ ++ {IWL_PCI_DEVICE(0x0085, 0x1311, iwl6005_2agn_cfg)}, /* x220 */ ++ {IWL_PCI_DEVICE(0x088E, 0x4060, iwl6035_2agn_cfg)}, /* plumbum */ + {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4072, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4170, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4060, iwl7260_2n_cfg)}, @@ -348,7 +351,7 @@ - {IWL_PCI_DEVICE(0x08B3, 0x8570, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x1070, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x1170, iwl3160_2ac_cfg)}, -- + -/* 7265 Series */ - {IWL_PCI_DEVICE(0x095A, 0x5010, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5110, iwl7265_2ac_cfg)}, @@ -383,10 +386,6 @@ - {IWL_PCI_DEVICE(0x095B, 0x5290, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5490, iwl7265_2ac_cfg)}, -#endif /* CONFIG_IWLMVM */ -+ {IWL_PCI_DEVICE(0x4238, 0x1111, iwl6000_3agn_cfg)}, /* x201 */ -+ {IWL_PCI_DEVICE(0x0085, 0x1311, iwl6005_2agn_cfg)}, /* x220 */ -+ {IWL_PCI_DEVICE(0x088E, 0x4060, iwl6035_2agn_cfg)}, /* plumbum */ -+ +//#if IS_ENABLED(CONFIG_IWLDVM) +// {IWL_PCI_DEVICE(0x4232, 0x1201, iwl5100_agn_cfg)}, /* Mini Card */ +// {IWL_PCI_DEVICE(0x4232, 0x1301, iwl5100_agn_cfg)}, /* Half Mini Card */ @@ -578,69 +577,71 @@ +// +//#if IS_ENABLED(CONFIG_IWLMVM) +///* 7260 Series */ -+// {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4072, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4170, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4060, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x406A, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4160, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4062, iwl7260_n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4162, iwl7260_n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0x4270, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0x4272, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0x4260, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0x426A, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0x4262, iwl7260_n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4470, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4472, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4460, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x446A, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4462, iwl7260_n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4870, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x486E, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4A70, iwl7260_2ac_cfg_high_temp)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4A6E, iwl7260_2ac_cfg_high_temp)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4A6C, iwl7260_2ac_cfg_high_temp)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4570, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4560, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0x4370, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0x4360, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x5070, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x5072, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x5170, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x5770, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4020, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x402A, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0x4220, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0x4420, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC070, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC072, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC170, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC060, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC06A, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC160, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC062, iwl7260_n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC162, iwl7260_n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC770, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC760, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0xC270, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0xC272, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0xC260, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0xC26A, iwl7260_n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0xC262, iwl7260_n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC470, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC472, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC460, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC462, iwl7260_n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC570, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC560, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0xC370, iwl7260_2ac_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC360, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC020, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC02A, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B2, 0xC220, iwl7260_2n_cfg)}, -+// {IWL_PCI_DEVICE(0x08B1, 0xC420, iwl7260_2n_cfg)}, -+// ++// {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4072, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4170, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4060, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x406A, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4160, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4062, iwl7260_n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4162, iwl7260_n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0x4270, iwl7260_2ac_cfg)}, ++ ++// {IWL_PCI_DEVICE(0x08B2, 0x4272, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0x4260, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0x426A, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0x4262, iwl7260_n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4470, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4472, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4460, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x446A, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4462, iwl7260_n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4870, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x486E, iwl7260_2ac_cfg)}, ++ ++// {IWL_PCI_DEVICE(0x08B1, 0x4A70, iwl7260_2ac_cfg_high_temp)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4A6E, iwl7260_2ac_cfg_high_temp)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4A6C, iwl7260_2ac_cfg_high_temp)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4570, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4560, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0x4370, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0x4360, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x5070, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x5072, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x5170, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x5770, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4020, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x402A, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0x4220, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0x4420, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC070, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC072, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC170, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC060, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC06A, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC160, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC062, iwl7260_n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC162, iwl7260_n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC770, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC760, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0xC270, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0xC272, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0xC260, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0xC26A, iwl7260_n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0xC262, iwl7260_n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC470, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC472, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC460, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC462, iwl7260_n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC570, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC560, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0xC370, iwl7260_2ac_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC360, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC020, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC02A, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B2, 0xC220, iwl7260_2n_cfg)}, ++// {IWL_PCI_DEVICE(0x08B1, 0xC420, iwl7260_2n_cfg)}, ++ +///* 3160 Series */ +// {IWL_PCI_DEVICE(0x08B3, 0x0070, iwl3160_2ac_cfg)}, +// {IWL_PCI_DEVICE(0x08B3, 0x0072, iwl3160_2ac_cfg)}, @@ -881,3 +882,40 @@ if (lq_sta->search_better_tbl) { /* revert to active table if search table is not valid*/ tbl->lq_type = LQ_NONE; +--- a/drivers/net/wireless/iwlwifi/mvm/ops.c ++++ b/drivers/net/wireless/iwlwifi/mvm/ops.c +@@ -385,6 +385,11 @@ + trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds); + trans_cfg.rx_buf_size_8k = iwlwifi_mod_params.amsdu_size_8K; + ++ if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_PM_CMD_SUPPORT) ++ mvm->pm_ops = &pm_mac_ops; ++ else ++ mvm->pm_ops = &pm_legacy_ops; ++ + if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_DW_BC_TABLE) + trans_cfg.bc_table_dword = true; + +@@ -462,11 +467,6 @@ + if (err) + goto out_unregister; + +- if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_PM_CMD_SUPPORT) +- mvm->pm_ops = &pm_mac_ops; +- else +- mvm->pm_ops = &pm_legacy_ops; +- + memset(&mvm->rx_stats, 0, sizeof(struct mvm_statistics_rx)); + + return op_mode; +--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c ++++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c +@@ -1923,7 +1923,7 @@ + .add_interface = iwl_mvm_mac_add_interface, + .remove_interface = iwl_mvm_mac_remove_interface, + .config = iwl_mvm_mac_config, +- .prepare_multicast = iwl_mvm_prepare_multicast, ++ .prepare_multicast = 0, + .configure_filter = iwl_mvm_configure_filter, + .bss_info_changed = iwl_mvm_bss_info_changed, + .hw_scan = iwl_mvm_mac_hw_scan, diff --git a/repos/dde_linux/patches/wifi_mem.patch b/repos/dde_linux/patches/wifi_mem.patch index e5d14d5d3..afe7e4452 100644 --- a/repos/dde_linux/patches/wifi_mem.patch +++ b/repos/dde_linux/patches/wifi_mem.patch @@ -80,3 +80,45 @@ /* * Try a regular allocation, when that fails and we're not entitled * to the reserves, fail. +--- a/drivers/net/wireless/iwlwifi/mvm/bt-coex.c ++++ b/drivers/net/wireless/iwlwifi/mvm/bt-coex.c +@@ -365,7 +365,7 @@ + if (!(mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_NEWBT_COEX)) + return 0; + +- bt_cmd = kzalloc(sizeof(*bt_cmd), GFP_KERNEL); ++ bt_cmd = kzalloc(sizeof(*bt_cmd), GFP_KERNEL | GFP_LX_DMA); + if (!bt_cmd) + return -ENOMEM; + cmd.data[0] = bt_cmd; +@@ -467,7 +467,7 @@ + + mvm->bt_kill_msk = bt_kill_msk; + +- bt_cmd = kzalloc(sizeof(*bt_cmd), GFP_KERNEL); ++ bt_cmd = kzalloc(sizeof(*bt_cmd), GFP_KERNEL | GFP_LX_DMA); + if (!bt_cmd) + return -ENOMEM; + cmd.data[0] = bt_cmd; +--- a/drivers/net/wireless/iwlwifi/iwl-phy-db.c ++++ a/drivers/net/wireless/iwlwifi/iwl-phy-db.c +@@ -233,7 +233,7 @@ + return -EINVAL; + + kfree(entry->data); +- entry->data = kmemdup(phy_db_notif->data, size, alloc_ctx); ++ entry->data = kmemdup(phy_db_notif->data, size, alloc_ctx | GFP_LX_DMA); + if (!entry->data) { + entry->size = 0; + return -ENOMEM; +--- a/drivers/net/wireless/iwlwifi/mvm/ops.c ++++ b/drivers/net/wireless/iwlwifi/mvm/ops.c +@@ -450,7 +450,7 @@ + scan_size = sizeof(struct iwl_scan_cmd) + + mvm->fw->ucode_capa.max_probe_length + + (MAX_NUM_SCAN_CHANNELS * sizeof(struct iwl_scan_channel)); +- mvm->scan_cmd = kmalloc(scan_size, GFP_KERNEL); ++ mvm->scan_cmd = kmalloc(scan_size, GFP_KERNEL | GFP_LX_DMA); + if (!mvm->scan_cmd) + goto out_free; + diff --git a/repos/dde_linux/ports/dde_linux.hash b/repos/dde_linux/ports/dde_linux.hash index 3bfa77e48..f9b9eaa92 100644 --- a/repos/dde_linux/ports/dde_linux.hash +++ b/repos/dde_linux/ports/dde_linux.hash @@ -1 +1 @@ -aafe49e012e64e25f60c47fd53f4b58e8eb70f3e +98fc29a56d460ce5ee3be3992b60f57afa535596