mac80211: rebase ontop of v4.18.5
authorJohn Crispin <john@phrozen.org>
Thu, 2 Aug 2018 06:44:29 +0000 (08:44 +0200)
committerJohn Crispin <john@phrozen.org>
Wed, 26 Sep 2018 14:35:33 +0000 (16:35 +0200)
Signed-off-by: John Crispin <john@phrozen.org>
428 files changed:
package/kernel/mac80211/Makefile
package/kernel/mac80211/patches/000-fix_kconfig.patch [deleted file]
package/kernel/mac80211/patches/001-fix_build.patch [deleted file]
package/kernel/mac80211/patches/002-change_allconfig.patch [deleted file]
package/kernel/mac80211/patches/003-remove_bogus_modparams.patch [deleted file]
package/kernel/mac80211/patches/004-kconfig_backport_fix.patch [deleted file]
package/kernel/mac80211/patches/005-revert-devcoredump.patch [deleted file]
package/kernel/mac80211/patches/006-fix-genl-multicast.patch [deleted file]
package/kernel/mac80211/patches/007-fix-linux-verification-h.patch [deleted file]
package/kernel/mac80211/patches/008-fix-genl-family-id.patch [deleted file]
package/kernel/mac80211/patches/010-disable_rfkill.patch [deleted file]
package/kernel/mac80211/patches/012-kernel_build_check.patch [deleted file]
package/kernel/mac80211/patches/015-ipw200-mtu.patch [deleted file]
package/kernel/mac80211/patches/030-rt2x00_options.patch [deleted file]
package/kernel/mac80211/patches/040-brcmutil_option.patch [deleted file]
package/kernel/mac80211/patches/050-lib80211_option.patch [deleted file]
package/kernel/mac80211/patches/060-no_local_ssb_bcma.patch [deleted file]
package/kernel/mac80211/patches/070-ath_common_config.patch [deleted file]
package/kernel/mac80211/patches/080-ath10k_thermal_config.patch [deleted file]
package/kernel/mac80211/patches/081-ath10k-calibration-variant.patch [deleted file]
package/kernel/mac80211/patches/082-ath10k-suppress-Unknown-eventid-36925-warnings.patch [deleted file]
package/kernel/mac80211/patches/090-Revert-rt2800-use-TXOP_BACKOFF-for-probe-frames.patch [deleted file]
package/kernel/mac80211/patches/100-remove-cryptoapi-dependencies.patch [deleted file]
package/kernel/mac80211/patches/110-mac80211_keep_keys_on_stop_ap.patch [deleted file]
package/kernel/mac80211/patches/120-cfg80211_allow_perm_addr_change.patch [deleted file]
package/kernel/mac80211/patches/130-disable-fils.patch [deleted file]
package/kernel/mac80211/patches/131-Revert-mac80211-aes-cmac-switch-to-shash-CMAC-driver.patch [deleted file]
package/kernel/mac80211/patches/132-mac80211-remove-cmac-dependency.patch [deleted file]
package/kernel/mac80211/patches/140-tweak-TSQ-setting.patch [deleted file]
package/kernel/mac80211/patches/150-disable_addr_notifier.patch [deleted file]
package/kernel/mac80211/patches/160-ath10k-search-all-IEs-for-variant-before-falling-back.patch [deleted file]
package/kernel/mac80211/patches/201-ath5k-WAR-for-AR71xx-PCI-bug.patch [deleted file]
package/kernel/mac80211/patches/210-ap_scan.patch [deleted file]
package/kernel/mac80211/patches/300-v4.15-ath10k-fix-build-errors-with-CONFIG_PM.patch [deleted file]
package/kernel/mac80211/patches/301-v4.15-mac80211-properly-free-requested-but-not-started-TX-.patch [deleted file]
package/kernel/mac80211/patches/302-v4.15-mac80211-mesh-drop-frames-appearing-to-be-from-us.patch [deleted file]
package/kernel/mac80211/patches/303-v4.15-0001-brcmfmac-handle-FWHALT-mailbox-indication.patch [deleted file]
package/kernel/mac80211/patches/303-v4.15-0002-brcmfmac-disable-packet-filtering-in-promiscuous-mod.patch [deleted file]
package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch [deleted file]
package/kernel/mac80211/patches/303-v4.15-0004-brcmfmac-use-msecs_to_jiffies-instead-of-calculation.patch [deleted file]
package/kernel/mac80211/patches/303-v4.15-0005-brcmfmac-get-rid-of-brcmf_cfg80211_escan-function.patch [deleted file]
package/kernel/mac80211/patches/303-v4.15-0006-brcmfmac-get-rid-of-struct-brcmf_cfg80211_info-activ.patch [deleted file]
package/kernel/mac80211/patches/303-v4.15-0007-brcmfmac-move-configuration-of-probe-request-IEs.patch [deleted file]
package/kernel/mac80211/patches/304-v4.15-brcmfmac-add-CLM-download-support.patch [deleted file]
package/kernel/mac80211/patches/305-v4.15-brcmfmac-change-driver-unbind-order-of-the-sdio-func.patch [deleted file]
package/kernel/mac80211/patches/306-v4.15-brcmfmac-Avoid-build-error-with-make-W-1.patch [deleted file]
package/kernel/mac80211/patches/307-v4.15-brcmfmac-fix-CLM-load-error-for-legacy-chips-when-us.patch [deleted file]
package/kernel/mac80211/patches/308-v4.16-0001-ath9k-move-spectral-scan-support-under-a-separate-co.patch [deleted file]
package/kernel/mac80211/patches/309-v4.16-0002-ath10k-move-spectral-scan-support-under-a-separate-c.patch [deleted file]
package/kernel/mac80211/patches/310-v4.16-ath9k-discard-undersized-packets.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0001-brcmfmac-Fix-parameter-order-in-brcmf_sdiod_f0_write.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0003-brcmfmac-Split-brcmf_sdiod_regrw_helper-up.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0004-brcmfmac-Clean-up-brcmf_sdiod_set_sbaddr_window.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0005-brcmfmac-Remove-dead-IO-code.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0006-brcmfmac-Remove-bandaid-for-SleepCSR.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0007-brcmfmac-Remove-brcmf_sdiod_request_data.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0008-brcmfmac-Fix-asymmetric-IO-functions.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0009-brcmfmac-Remove-noisy-debugging.patch [deleted file]
package/kernel/mac80211/patches/311-v4.16-0010-brcmfmac-Rename-bcmerror-to-err.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0001-brcmfmac-Split-brcmf_sdiod_buffrw-function-up.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0002-brcmfmac-whitespace-fixes-in-brcmf_sdiod_send_buf.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0003-brcmfmac-Clarify-if-using-braces.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0004-brcmfmac-Rename-replace-old-IO-functions-with-simple.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0005-brcmfmac-Tidy-register-definitions-a-little.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0006-brcmfmac-Remove-brcmf_sdiod_addrprep.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0007-brcmfmac-remove-unnecessary-call-to-brcmf_sdiod_set_.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0008-brcmfmac-Cleanup-offsetof.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0009-brcmfmac-Remove-unused-macro.patch [deleted file]
package/kernel/mac80211/patches/312-v4.16-0010-brcmfmac-Remove-repeated-calls-to-brcmf_chip_get_cor.patch [deleted file]
package/kernel/mac80211/patches/313-v4.16-0001-brcmfmac-enlarge-buffer-size-of-caps-to-512-bytes.patch [deleted file]
package/kernel/mac80211/patches/314-v4.16-0001-brcmfmac-Remove-r-w-_sdreg32.patch [deleted file]
package/kernel/mac80211/patches/314-v4.16-0002-brcmfmac-Rename-buscore-to-core-for-consistency.patch [deleted file]
package/kernel/mac80211/patches/314-v4.16-0003-brcmfmac-stabilise-the-value-of-sbwad-in-use-for-som.patch [deleted file]
package/kernel/mac80211/patches/314-v4.16-0004-brcmfmac-Correctly-handle-accesses-to-SDIO-func0.patch [deleted file]
package/kernel/mac80211/patches/314-v4.16-0005-brcmfmac-Remove-func0-from-function-array.patch [deleted file]
package/kernel/mac80211/patches/314-v4.16-0006-brcmfmac-More-efficient-and-slightly-easier-to-read-.patch [deleted file]
package/kernel/mac80211/patches/314-v4.16-0007-brcmfmac-Replace-function-index-with-function-pointe.patch [deleted file]
package/kernel/mac80211/patches/314-v4.16-0008-brcmfmac-Clean-up-interrupt-macros.patch [deleted file]
package/kernel/mac80211/patches/315-v4.16-0001-brcmfmac-Support-43455-save-restore-SR-feature-if-FW.patch [deleted file]
package/kernel/mac80211/patches/316-v4.16-0001-brcmfmac-Remove-array-of-functions.patch [deleted file]
package/kernel/mac80211/patches/316-v4.16-0002-brcmfmac-add-comment-block-in-brcmf_sdio_buscore_rea.patch [deleted file]
package/kernel/mac80211/patches/316-v4.16-0003-brcmfmac-rename-brcmf_sdiod_buff_-read-write-functio.patch [deleted file]
package/kernel/mac80211/patches/317-v4.16-0001-brcmfmac-Use-zeroing-memory-allocator-than-allocator.patch [deleted file]
package/kernel/mac80211/patches/318-v4.17-mac80211-round-IEEE80211_TX_STATUS_HEADROOM-up-to-mu.patch [deleted file]
package/kernel/mac80211/patches/319-v4.17-0001-mac80211-drop-frames-with-unexpected-DS-bits-from-fa.patch [deleted file]
package/kernel/mac80211/patches/319-v4.17-0002-mac80211-support-AP-4-addr-mode-fast-rx.patch [deleted file]
package/kernel/mac80211/patches/319-v4.17-0003-mac80211-support-fast-rx-with-incompatible-PS-capabi.patch [deleted file]
package/kernel/mac80211/patches/319-v4.17-0004-mac80211-support-station-4-addr-mode-fast-rx.patch [deleted file]
package/kernel/mac80211/patches/320-v4.17-mac80211-support-A-MSDU-in-fast-rx.patch [deleted file]
package/kernel/mac80211/patches/321-v4.16-0001-brcmfmac-assure-bcdc-dcmd-api-does-not-return-value-.patch [deleted file]
package/kernel/mac80211/patches/321-v4.16-0002-brcmfmac-separate-firmware-errors-from-i-o-errors.patch [deleted file]
package/kernel/mac80211/patches/322-v4.16-0001-brcmfmac-add-possibility-to-obtain-firmware-error.patch [deleted file]
package/kernel/mac80211/patches/322-v4.16-0002-brcmfmac-fix-P2P_DEVICE-ethernet-address-generation.patch [deleted file]
package/kernel/mac80211/patches/323-v4.16-0001-brcmfmac-drop-Inter-Access-Point-Protocol-packets-by.patch [deleted file]
package/kernel/mac80211/patches/324-v4.16-0001-brcmfmac-Fix-check-for-ISO3166-code.patch [deleted file]
package/kernel/mac80211/patches/325-v4.17-0001-brcmfmac-move-brcmf_bus_preinit-call-just-after-chan.patch [deleted file]
package/kernel/mac80211/patches/325-v4.17-0002-brcmfmac-move-allocation-of-control-rx-buffer-to-brc.patch [deleted file]
package/kernel/mac80211/patches/325-v4.17-0003-brcmfmac-call-brcmf_attach-just-before-calling-brcmf.patch [deleted file]
package/kernel/mac80211/patches/325-v4.17-0004-brcmfmac-usb-call-brcmf_usb_up-during-brcmf_bus_prei.patch [deleted file]
package/kernel/mac80211/patches/325-v4.17-0005-brcmfmac-move-brcmf_attach-function-in-core.c.patch [deleted file]
package/kernel/mac80211/patches/325-v4.17-0006-brcmfmac-remove-brcmf_bus_started-from-bus-api.patch [deleted file]
package/kernel/mac80211/patches/325-v4.17-0007-brcmfmac-change-log-level-for-some-low-level-sdio-fu.patch [deleted file]
package/kernel/mac80211/patches/325-v4.17-0008-brcmfmac-remove-duplicate-pointer-variable-from-brcm.patch [deleted file]
package/kernel/mac80211/patches/326-v4.17-0001-brcmfmac-reject-too-long-PSK.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0001-brcmfmac-do-not-convert-linux-error-to-firmware-erro.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0002-brcmfmac-use-brcmf_chip_name-to-store-name-in-revinf.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0003-brcmfmac-use-brcmf_chip_name-for-consistency.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0004-brcmfmac-allocate-struct-brcmf_pub-instance-using-wi.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0005-brcmfmac-use-wiphy-debugfs-dir-entry.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0006-brcmfmac-derive-firmware-filenames-from-basename-map.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0007-brcmfmac-pass-struct-in-brcmf_fw_get_firmwares.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0008-brcmfmac-introduce-brcmf_fw_alloc_request-function.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0009-brcmfmac-add-extension-to-.get_fwname-callbacks.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0010-brcmfmac-get-rid-of-brcmf_fw_map_chip_to_name.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0011-brcmfmac-get-rid-of-brcmf_fw_get_full_name.patch [deleted file]
package/kernel/mac80211/patches/327-v4.17-0012-brcmfmac-add-kerneldoc-for-struct-brcmf_bus-msgbuf.patch [deleted file]
package/kernel/mac80211/patches/328-v4.17-0001-brcmfmac-fix-firmware-request-processing-if-nvram-lo.patch [deleted file]
package/kernel/mac80211/patches/329-v4.18-0001-brcmfmac-add-support-for-BCM4366E-chipset.patch [deleted file]
package/kernel/mac80211/patches/330-v4.18-0001-brcmfmac-check-p2pdev-mac-address-uniqueness.patch [deleted file]
package/kernel/mac80211/patches/330-v4.18-0002-brcmfmac-reports-boottime_ns-while-informing-bss.patch [deleted file]
package/kernel/mac80211/patches/330-v4.18-0003-brcmfmac-use-nl80211_band-directly-to-get-ieee80211-.patch [deleted file]
package/kernel/mac80211/patches/330-v4.18-0004-brcmfmac-constify-firmware-mapping-tables.patch [deleted file]
package/kernel/mac80211/patches/330-v4.18-0005-brcmfmac-add-hostready-indication.patch [deleted file]
package/kernel/mac80211/patches/330-v4.18-0006-brcmfmac-coarse-support-for-PCIe-shared-structure-re.patch [deleted file]
package/kernel/mac80211/patches/331-v4.18-0001-brcmfmac-Add-support-for-bcm43364-wireless-chipset.patch [deleted file]
package/kernel/mac80211/patches/332-v4.18-0001-brcmfmac-set-WIPHY_FLAG_HAVE_AP_SME-flag.patch [deleted file]
package/kernel/mac80211/patches/333-v4.18-0001-brcmfmac-fix-initialization-of-struct-cfg80211_infor.patch [deleted file]
package/kernel/mac80211/patches/334-v4.18-0001-brcmfmac-add-debugfs-entry-for-reading-firmware-capa.patch [deleted file]
package/kernel/mac80211/patches/335-v4.18-0001-brcmfmac-move-ALLFFMAC-variable-in-flowring-module.patch [deleted file]
package/kernel/mac80211/patches/335-v4.18-0002-brcmfmac-add-support-for-sysfs-initiated-coredump.patch [deleted file]
package/kernel/mac80211/patches/335-v4.18-0004-brcmfmac-validate-user-provided-data-for-memdump-bef.patch [deleted file]
package/kernel/mac80211/patches/335-v4.18-0005-brcmfmac-trigger-memory-dump-upon-firmware-halt-sign.patch [deleted file]
package/kernel/mac80211/patches/335-v4.18-0006-brcmfmac-trigger-memory-dump-on-SDIO-firmware-halt-m.patch [deleted file]
package/kernel/mac80211/patches/336-v4.18-brcmfmac-stop-watchdog-before-detach-and-free-everyt.patch [deleted file]
package/kernel/mac80211/patches/337-v4.18-brcmfmac-fix-regression-in-parsing-NVRAM-for-multipl.patch [deleted file]
package/kernel/mac80211/patches/338-v4.19-0001-brcmfmac-detect-firmware-support-for-monitor-interfa.patch [deleted file]
package/kernel/mac80211/patches/338-v4.19-0002-brcmfmac-detect-firmware-support-for-radiotap-monito.patch [deleted file]
package/kernel/mac80211/patches/338-v4.19-0003-brcmfmac-handle-msgbuf-packets-marked-with-monitor-m.patch [deleted file]
package/kernel/mac80211/patches/339-v4.19-brcmfmac-define-more-bits-for-the-flags-of-struct-br.patch [deleted file]
package/kernel/mac80211/patches/340-v4.19-brcmfmac-update-STA-info-struct-to-the-v5.patch [deleted file]
package/kernel/mac80211/patches/341-v4.19-brcmfmac-specify-some-features-per-firmware-version.patch [deleted file]
package/kernel/mac80211/patches/350-ath9k_hw-reset-AHB-WMAC-interface-on-AR91xx.patch [deleted file]
package/kernel/mac80211/patches/351-ath9k_hw-issue-external-reset-for-QCA955x.patch [deleted file]
package/kernel/mac80211/patches/352-ath9k_hw-set-spectral-scan-enable-bit-on-trigger-for.patch [deleted file]
package/kernel/mac80211/patches/353-ath9k-don-t-run-periodic-and-nf-calibation-at-the-sa.patch [deleted file]
package/kernel/mac80211/patches/354-ath9k-force-rx_clear-when-disabling-rx.patch [deleted file]
package/kernel/mac80211/patches/356-Revert-ath9k-interpret-requested-txpower-in-EIRP-dom.patch [deleted file]
package/kernel/mac80211/patches/357-mac80211-add-hdrlen-to-ieee80211_tx_data.patch [deleted file]
package/kernel/mac80211/patches/358-mac80211-add-NEED_ALIGNED4_SKBS-hw-flag.patch [deleted file]
package/kernel/mac80211/patches/359-mac80211-minstrel-Enable-STBC-and-LDPC-for-VHT-Rates.patch [deleted file]
package/kernel/mac80211/patches/360-ath9k-fix-moredata-bit-in-PS-buffered-frame-release.patch [deleted file]
package/kernel/mac80211/patches/361-ath9k-clear-potentially-stale-EOSP-status-bit-in-int.patch [deleted file]
package/kernel/mac80211/patches/362-ath9k-report-tx-status-on-EOSP.patch [deleted file]
package/kernel/mac80211/patches/363-ath9k-fix-block-ack-window-tracking-issues.patch [deleted file]
package/kernel/mac80211/patches/364-ath9k_hw-fix-channel-maximum-power-level-test.patch [deleted file]
package/kernel/mac80211/patches/365-ath9k-adjust-tx-power-reduction-for-US-regulatory-do.patch [deleted file]
package/kernel/mac80211/patches/366-ath9k-fix-more-data-flag-for-buffered-multicast-pack.patch [deleted file]
package/kernel/mac80211/patches/367-Revert-ath10k-disable-wake_tx_queue-for-older-device.patch [deleted file]
package/kernel/mac80211/patches/368-ath10k-fix-recent-bandwidth-conversion-bug.patch [deleted file]
package/kernel/mac80211/patches/369-cfg80211-use-only-1Mbps-for-basic-rates-in-mesh.patch [deleted file]
package/kernel/mac80211/patches/370-mac80211-minstrel-remove-unnecessary-debugfs-cleanup.patch [deleted file]
package/kernel/mac80211/patches/371-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch [deleted file]
package/kernel/mac80211/patches/372-mac80211-minstrel-reduce-minstrel_mcs_groups-size.patch [deleted file]
package/kernel/mac80211/patches/373-mac80211-minstrel-fix-using-short-preamble-CCK-rates.patch [deleted file]
package/kernel/mac80211/patches/374-ath9k-Protect-queue-draining-by-rcu_read_lock.patch [deleted file]
package/kernel/mac80211/patches/375-mac80211-minstrel-fix-CCK-rate-group-streams-value.patch [deleted file]
package/kernel/mac80211/patches/376-mac80211-minstrel-fix-sampling-reporting-of-CCK-rate.patch [deleted file]
package/kernel/mac80211/patches/377-mac80211-minstrel-do-not-sample-rates-3-times-slower.patch [deleted file]
package/kernel/mac80211/patches/378-mac80211-fix-memory-accounting-with-A-MSDU-aggregati.patch [deleted file]
package/kernel/mac80211/patches/379-cfg80211-initialize-sinfo-in-cfg80211_get_station.patch [deleted file]
package/kernel/mac80211/patches/380-0000-ath10k-handle-tdls-peer-events.patch [deleted file]
package/kernel/mac80211/patches/380-0001-ath10k-wmi-modify-svc-bitmap-parsing-for-wcn3990.patch [deleted file]
package/kernel/mac80211/patches/380-0002-ath10k-advertise-TDLS-wider-bandwidth-support-for-5G.patch [deleted file]
package/kernel/mac80211/patches/380-0003-ath10k-debugfs-support-to-get-final-TPC-stats-for-10.patch [deleted file]
package/kernel/mac80211/patches/380-0004-ath10k-Fix-kernel-panic-while-using-worker-ath10k_st.patch [deleted file]
package/kernel/mac80211/patches/380-0005-ath10k-fix-kernel-panic-while-reading-tpc_stats.patch [deleted file]
package/kernel/mac80211/patches/380-0006-ath10k-add-support-to-configure-channel-dwell-time.patch [deleted file]
package/kernel/mac80211/patches/380-0007-ath-add-support-to-get-the-detected-radar-specificat.patch [deleted file]
package/kernel/mac80211/patches/380-0008-ath10k-DFS-Host-Confirmation.patch [deleted file]
package/kernel/mac80211/patches/380-0009-ath10k-fix-memory-leak-of-tpc_stats.patch [deleted file]
package/kernel/mac80211/patches/380-0010-ath10k-support-use-of-channel-173.patch [deleted file]
package/kernel/mac80211/patches/380-0011-ath10k-fix-spectral-scan-for-QCA9984-and-QCA9888-chi.patch [deleted file]
package/kernel/mac80211/patches/381-ath9k-fix-tx99-with-monitor-mode-interface.patch [deleted file]
package/kernel/mac80211/patches/400-ath_move_debug_code.patch [deleted file]
package/kernel/mac80211/patches/401-ath9k_blink_default.patch [deleted file]
package/kernel/mac80211/patches/402-ath_regd_optional.patch [deleted file]
package/kernel/mac80211/patches/403-world_regd_fixup.patch [deleted file]
package/kernel/mac80211/patches/404-regd_no_assoc_hints.patch [deleted file]
package/kernel/mac80211/patches/405-ath_regd_us.patch [deleted file]
package/kernel/mac80211/patches/406-ath_relax_default_regd.patch [deleted file]
package/kernel/mac80211/patches/410-ath9k_allow_adhoc_and_ap.patch [deleted file]
package/kernel/mac80211/patches/411-ath5k_allow_adhoc_and_ap.patch [deleted file]
package/kernel/mac80211/patches/420-ath5k_disable_fast_cc.patch [deleted file]
package/kernel/mac80211/patches/430-add_ath5k_platform.patch [deleted file]
package/kernel/mac80211/patches/431-add_platform_eeprom_support_to_ath5k.patch [deleted file]
package/kernel/mac80211/patches/432-ath5k_add_pciids.patch [deleted file]
package/kernel/mac80211/patches/440-ath5k_channel_bw_debugfs.patch [deleted file]
package/kernel/mac80211/patches/500-ath9k_eeprom_debugfs.patch [deleted file]
package/kernel/mac80211/patches/501-ath9k_ahb_init.patch [deleted file]
package/kernel/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch [deleted file]
package/kernel/mac80211/patches/511-ath9k_reduce_rxbuf.patch [deleted file]
package/kernel/mac80211/patches/512-ath9k_channelbw_debugfs.patch [deleted file]
package/kernel/mac80211/patches/513-ath9k_add_pci_ids.patch [deleted file]
package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch [deleted file]
package/kernel/mac80211/patches/530-ath9k_extra_leds.patch [deleted file]
package/kernel/mac80211/patches/531-ath9k_extra_platform_leds.patch [deleted file]
package/kernel/mac80211/patches/540-ath9k_reduce_ani_interval.patch [deleted file]
package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch [deleted file]
package/kernel/mac80211/patches/543-ath9k_entropy_from_adc.patch [deleted file]
package/kernel/mac80211/patches/544-ath9k-ar933x-usb-hang-workaround.patch [deleted file]
package/kernel/mac80211/patches/545-ath9k_ani_ws_detect.patch [deleted file]
package/kernel/mac80211/patches/547-ath9k_led_defstate_fix.patch [deleted file]
package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch [deleted file]
package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch [deleted file]
package/kernel/mac80211/patches/550-ath9k-disable-bands-via-dt.patch [deleted file]
package/kernel/mac80211/patches/551-ath9k_ubnt_uap_plus_hsr.patch [deleted file]
package/kernel/mac80211/patches/552-ahb_of.patch [deleted file]
package/kernel/mac80211/patches/600-01-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/600-02-rt2x00-rt2800lib-enable-support-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/600-03-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch [deleted file]
package/kernel/mac80211/patches/600-04-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch [deleted file]
package/kernel/mac80211/patches/600-05-rt2x00-rt2800lib-add-channel-configuration-function-.patch [deleted file]
package/kernel/mac80211/patches/600-06-rt2x00-rt2800lib-enable-RF3853-support.patch [deleted file]
package/kernel/mac80211/patches/600-07-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch [deleted file]
package/kernel/mac80211/patches/600-08-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch [deleted file]
package/kernel/mac80211/patches/600-09-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch [deleted file]
package/kernel/mac80211/patches/600-10-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/600-11-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch [deleted file]
package/kernel/mac80211/patches/600-12-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch [deleted file]
package/kernel/mac80211/patches/600-13-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch [deleted file]
package/kernel/mac80211/patches/600-14-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch [deleted file]
package/kernel/mac80211/patches/600-15-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch [deleted file]
package/kernel/mac80211/patches/600-16-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch [deleted file]
package/kernel/mac80211/patches/600-17-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/600-18-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch [deleted file]
package/kernel/mac80211/patches/600-19-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch [deleted file]
package/kernel/mac80211/patches/600-20-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/600-21-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch [deleted file]
package/kernel/mac80211/patches/600-22-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch [deleted file]
package/kernel/mac80211/patches/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch [deleted file]
package/kernel/mac80211/patches/601-rt2x00-introduce-rt2x00_platform_h.patch [deleted file]
package/kernel/mac80211/patches/602-rt2x00-introduce-rt2x00eeprom.patch [deleted file]
package/kernel/mac80211/patches/603-rt2x00-of_load_eeprom_filename.patch [deleted file]
package/kernel/mac80211/patches/604-rt2x00-load-eeprom-on-SoC-from-a-mtd-device-defines-.patch [deleted file]
package/kernel/mac80211/patches/606-rt2x00-allow_disabling_bands_through_platform_data.patch [deleted file]
package/kernel/mac80211/patches/607-rt2x00-add_platform_data_mac_addr.patch [deleted file]
package/kernel/mac80211/patches/608-rt2x00-allow_disabling_bands_through_dts.patch [deleted file]
package/kernel/mac80211/patches/609-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch [deleted file]
package/kernel/mac80211/patches/610-rt2x00-change-led-polarity-from-OF.patch [deleted file]
package/kernel/mac80211/patches/611-rt2x00-add-AP+STA-support.patch [deleted file]
package/kernel/mac80211/patches/650-rt2x00-add-support-for-external-PA-on-MT7620.patch [deleted file]
package/kernel/mac80211/patches/651-rt2x00-remove-unneccesary-code.patch [deleted file]
package/kernel/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch [deleted file]
package/kernel/mac80211/patches/801-libertas-configure-sysfs-links.patch [deleted file]
package/kernel/mac80211/patches/802-libertas-set-wireless-macaddr.patch [deleted file]
package/kernel/mac80211/patches/810-b43-gpio-mask-module-option.patch [deleted file]
package/kernel/mac80211/patches/811-b43_no_pio.patch [deleted file]
package/kernel/mac80211/patches/812-b43-add-antenna-control.patch [deleted file]
package/kernel/mac80211/patches/813-b43-reduce-number-of-RX-slots.patch [deleted file]
package/kernel/mac80211/patches/814-b43-only-use-gpio-0-1-for-led.patch [deleted file]
package/kernel/mac80211/patches/815-b43-always-take-overlapping-devs.patch [deleted file]
package/kernel/mac80211/patches/850-brcmsmac-remove-extra-regulation-restriction.patch [deleted file]
package/kernel/mac80211/patches/860-brcmfmac-register-wiphy-s-during-module_init.patch [deleted file]
package/kernel/mac80211/patches/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch [deleted file]
package/kernel/mac80211/patches/862-brcmfmac-Disable-power-management.patch [deleted file]
package/kernel/mac80211/patches/863-brcmfmac-add-in-driver-tables-with-country-codes.patch [deleted file]
package/kernel/mac80211/patches/864-brcmfmac-do-not-use-internal-roaming-engine-by-default.patch [deleted file]
package/kernel/mac80211/patches/921-ath10k_init_devices_synchronously.patch [deleted file]
package/kernel/mac80211/patches/930-ath10k_add_tpt_led_trigger.patch [deleted file]
package/kernel/mac80211/patches/936-ath10k-fix-otp-failure-result.patch [deleted file]
package/kernel/mac80211/patches/940-mwl8k_init_devices_synchronously.patch [deleted file]
package/kernel/mac80211/patches/941-mwl8k-add-non-DFS-5G-upper-channels.patch [deleted file]
package/kernel/mac80211/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch [deleted file]
package/kernel/mac80211/patches/960-0011-ath10k-limit-pci-buffer-size.patch [deleted file]
package/kernel/mac80211/patches/970-rsi-fix-kbuild-reported-build-errors-with-CONFIG_PM-off [deleted file]
package/kernel/mac80211/patches/971-rsi-move-rsi_sdio_reinit_device-out-of-CONFIG_PM.patch [deleted file]
package/kernel/mac80211/patches/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch [deleted file]
package/kernel/mac80211/patches/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch [deleted file]
package/kernel/mac80211/patches/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch [deleted file]
package/kernel/mac80211/patches/975-ath10k-use-tpt-trigger-by-default.patch [deleted file]
package/kernel/mac80211/patches/976-ath10k-Limit-available-channels-via-DT-ieee80211-fre.patch [deleted file]
package/kernel/mac80211/patches/ath/070-ath_common_config.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/080-ath10k_thermal_config.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/201-ath5k-WAR-for-AR71xx-PCI-bug.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/350-ath9k_hw-reset-AHB-WMAC-interface-on-AR91xx.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/351-ath9k_hw-issue-external-reset-for-QCA955x.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/352-ath9k_hw-set-spectral-scan-enable-bit-on-trigger-for.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/353-ath9k-don-t-run-periodic-and-nf-calibation-at-the-sa.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/354-ath9k-force-rx_clear-when-disabling-rx.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/356-Revert-ath9k-interpret-requested-txpower-in-EIRP-dom.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/360-ath9k-fix-moredata-bit-in-PS-buffered-frame-release.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/361-ath9k-clear-potentially-stale-EOSP-status-bit-in-int.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/362-ath9k-report-tx-status-on-EOSP.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/363-ath9k-fix-block-ack-window-tracking-issues.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/364-ath9k_hw-fix-channel-maximum-power-level-test.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/365-ath9k-adjust-tx-power-reduction-for-US-regulatory-do.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/366-ath9k-fix-more-data-flag-for-buffered-multicast-pack.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/381-ath9k-fix-tx99-with-monitor-mode-interface.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/400-ath_move_debug_code.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/401-ath9k_blink_default.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/403-world_regd_fixup.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/405-ath_regd_us.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/406-ath_relax_default_regd.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/410-ath9k_allow_adhoc_and_ap.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/411-ath5k_allow_adhoc_and_ap.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/420-ath5k_disable_fast_cc.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/430-add_ath5k_platform.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/432-ath5k_add_pciids.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/440-ath5k_channel_bw_debugfs.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/500-ath9k_eeprom_debugfs.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/501-ath9k_ahb_init.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/510-ath9k_intr_mitigation_tweak.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/511-ath9k_reduce_rxbuf.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/512-ath9k_channelbw_debugfs.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/513-ath9k_add_pci_ids.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/530-ath9k_extra_leds.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/531-ath9k_extra_platform_leds.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/540-ath9k_reduce_ani_interval.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/542-ath9k_debugfs_diag.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/543-ath9k_entropy_from_adc.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/544-ath9k-ar933x-usb-hang-workaround.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/545-ath9k_ani_ws_detect.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/547-ath9k_led_defstate_fix.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/550-ath9k-disable-bands-via-dt.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/551-ath9k_ubnt_uap_plus_hsr.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/552-ahb_of.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/921-ath10k_init_devices_synchronously.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/930-ath10k_add_tpt_led_trigger.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/936-ath10k-fix-otp-failure-result.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/960-0010-ath10k-limit-htt-rx-ring-size.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/960-0011-ath10k-limit-pci-buffer-size.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/972-ath10k_fix-crash-due-to-wrong-handling-of-peer_bw_rxnss_override-parameter.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/973-ath10k_fix-band_center_freq-handling-for-VHT160-in-recent-firmwares.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/974-ath10k_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/975-ath10k-use-tpt-trigger-by-default.patch [new file with mode: 0644]
package/kernel/mac80211/patches/ath/976-ath10k-Limit-available-channels-via-DT-ieee80211-fre.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/040-brcmutil_option.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/810-b43-gpio-mask-module-option.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/811-b43_no_pio.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/812-b43-add-antenna-control.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/813-b43-reduce-number-of-RX-slots.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/814-b43-only-use-gpio-0-1-for-led.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/815-b43-always-take-overlapping-devs.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/850-brcmsmac-remove-extra-regulation-restriction.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/860-brcmfmac-register-wiphy-s-during-module_init.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/863-brcmfmac-add-in-driver-tables-with-country-codes.patch [new file with mode: 0644]
package/kernel/mac80211/patches/brcm/864-brcmfmac-do-not-use-internal-roaming-engine-by-default.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/000-fix_kconfig.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/001-fix_build.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/002-change_allconfig.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/003-remove_bogus_modparams.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/004-kconfig_backport_fix.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/005-revert-devcoredump.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/006-fix-genl-multicast.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/010-disable_rfkill.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/012-kernel_build_check.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/050-lib80211_option.patch [new file with mode: 0644]
package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch [new file with mode: 0644]
package/kernel/mac80211/patches/mwl/700-mwl8k-missing-pci-id-for-WNR854T.patch [new file with mode: 0644]
package/kernel/mac80211/patches/mwl/801-libertas-configure-sysfs-links.patch [new file with mode: 0644]
package/kernel/mac80211/patches/mwl/802-libertas-set-wireless-macaddr.patch [new file with mode: 0644]
package/kernel/mac80211/patches/mwl/940-mwl8k_init_devices_synchronously.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/030-rt2x00_options.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-01-rt2x00-allow-to-build-rt2800soc-module-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-02-rt2x00-rt2800lib-enable-support-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-03-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-04-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-05-rt2x00-rt2800lib-add-channel-configuration-function-.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-06-rt2x00-rt2800lib-enable-RF3853-support.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-07-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-08-rt2x00-rt2800soc-fix-rt2800soc_disable_radio-for-RT3.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-09-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-10-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-11-rt2x00-rt2800lib-use-the-extended-EEPROM-map-for-RT3.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-12-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-13-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-14-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-15-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-16-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-17-rt2x00-rt2800lib-use-correct-RT-XWI-size-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-18-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-19-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-20-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-21-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-22-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/601-rt2x00-introduce-rt2x00_platform_h.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/602-rt2x00-introduce-rt2x00eeprom.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/603-rt2x00-of_load_eeprom_filename.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/604-rt2x00-load-eeprom-on-SoC-from-a-mtd-device-defines-.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/606-rt2x00-allow_disabling_bands_through_platform_data.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/607-rt2x00-add_platform_data_mac_addr.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/608-rt2x00-allow_disabling_bands_through_dts.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/609-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/610-rt2x00-change-led-polarity-from-OF.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/611-rt2x00-add-AP+STA-support.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/650-rt2x00-add-support-for-external-PA-on-MT7620.patch [new file with mode: 0644]
package/kernel/mac80211/patches/rt2x00/651-rt2x00-remove-unneccesary-code.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/100-remove-cryptoapi-dependencies.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/120-cfg80211_allow_perm_addr_change.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/130-disable-fils.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/131-Revert-mac80211-aes-cmac-switch-to-shash-CMAC-driver.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/132-mac80211-remove-cmac-dependency.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/140-tweak-TSQ-setting.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/210-ap_scan.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/357-mac80211-add-hdrlen-to-ieee80211_tx_data.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/358-mac80211-add-NEED_ALIGNED4_SKBS-hw-flag.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/359-mac80211-minstrel-Enable-STBC-and-LDPC-for-VHT-Rates.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/370-mac80211-minstrel-remove-unnecessary-debugfs-cleanup.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/371-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/372-mac80211-minstrel-reduce-minstrel_mcs_groups-size.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/373-mac80211-minstrel-fix-using-short-preamble-CCK-rates.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/375-mac80211-minstrel-fix-CCK-rate-group-streams-value.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/376-mac80211-minstrel-fix-sampling-reporting-of-CCK-rate.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/377-mac80211-minstrel-do-not-sample-rates-3-times-slower.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/378-mac80211-fix-memory-accounting-with-A-MSDU-aggregati.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/379-cfg80211-initialize-sinfo-in-cfg80211_get_station.patch [new file with mode: 0644]
package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch [new file with mode: 0644]

index 611d5a73d89bba42ffe353dd4cff0ce93f27b7d9..fcb71816554a3230a26fd9c62e832fed3ce1ff07 100644 (file)
@@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=2017-11-01
-PKG_RELEASE:=9
+PKG_VERSION:=v4.18.5
+PKG_RELEASE:=1
 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
-PKG_HASH:=8437ab7886b988c8152e7a4db30b7f41009e49a3b2cb863edd05da1ecd7eb05a
+PKG_HASH:=9c13660e98b9397260266f98c9db76bdad2b48462cb376b5862dfbd18369edf2
 
 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
@@ -1116,7 +1116,7 @@ endef
 define KernelPackage/mt7601u
   $(call KernelPackage/mac80211/Default)
   TITLE:=MT7601U-based USB dongles Wireless Driver
-  DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
+  DEPENDS+= @BROKEN +kmod-mac80211 +@DRIVER_11N_SUPPORT @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
   AUTOLOAD:=$(call AutoProbe,mt7601u)
 endef
@@ -1839,6 +1839,26 @@ ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
   endif
 endif
 
+define Build/Patch
+       $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
+       $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
+       $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
+       $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
+       $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
+       $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
+       $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
+       $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
+endef
+
+define Quilt/Refresh/Package
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
+endef
+
 define Build/Compile
        $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
        $(MAKE) $(MAKE_OPTS) allnoconfig
diff --git a/package/kernel/mac80211/patches/000-fix_kconfig.patch b/package/kernel/mac80211/patches/000-fix_kconfig.patch
deleted file mode 100644 (file)
index 3987aae..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/kconf/Makefile
-+++ b/kconf/Makefile
-@@ -1,9 +1,9 @@
--CFLAGS=-Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
-+CFLAGS=-Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -DKBUILD_NO_NLS
- LXDIALOG := lxdialog/checklist.o lxdialog/inputbox.o lxdialog/menubox.o lxdialog/textbox.o lxdialog/util.o lxdialog/yesno.o
- conf: conf.o zconf.tab.o
--mconf_CFLAGS := $(shell ./lxdialog/check-lxdialog.sh -ccflags) -DLOCALE
-+mconf_CFLAGS := $(shell ./lxdialog/check-lxdialog.sh -ccflags)
- mconf_LDFLAGS := $(shell ./lxdialog/check-lxdialog.sh -ldflags $(CC))
- mconf: CFLAGS += $(mconf_CFLAGS)
diff --git a/package/kernel/mac80211/patches/001-fix_build.patch b/package/kernel/mac80211/patches/001-fix_build.patch
deleted file mode 100644 (file)
index 9e272e9..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -5,7 +5,7 @@
- ifeq ($(KERNELRELEASE),)
- MAKEFLAGS += --no-print-directory
--SHELL := /bin/bash
-+SHELL := /usr/bin/env bash
- BACKPORT_DIR := $(shell pwd)
- KMODDIR ?= updates
-@@ -19,6 +19,7 @@ KLIB_BUILD ?= $(KLIB)/build/
- KERNEL_CONFIG := $(KLIB_BUILD)/.config
- KERNEL_MAKEFILE := $(KLIB_BUILD)/Makefile
- CONFIG_MD5 := $(shell md5sum $(KERNEL_CONFIG) 2>/dev/null | sed 's/\s.*//')
-+STAMP_KERNEL_CONFIG := .kernel_config_md5_$(CONFIG_MD5)
- export KLIB KLIB_BUILD BACKPORT_DIR KMODDIR KMODPATH_ARG
-@@ -36,7 +37,8 @@ mrproper:
-       @rm -f .kernel_config_md5 Kconfig.versions Kconfig.kernel
-       @rm -f backport-include/backport/autoconf.h
--.DEFAULT:
-+.SILENT: $(STAMP_KERNEL_CONFIG)
-+$(STAMP_KERNEL_CONFIG):
-       @set -e ; test -f local-symbols || (                                            \
-       echo "/--------------"                                                          ;\
-       echo "| You shouldn't run make in the backports tree, but only in"              ;\
-@@ -60,57 +62,61 @@ mrproper:
-       echo "| (that isn't currently running.)"                                        ;\
-       echo "\\--"                                                                     ;\
-       false)
--      @set -e ; if [ "$$(cat .kernel_config_md5 2>/dev/null)" != "$(CONFIG_MD5)" ]    ;\
--      then                                                                            \
--              echo -n "Generating local configuration database from kernel ..."       ;\
--              grep -v -f local-symbols $(KERNEL_CONFIG) | grep = | (                  \
--                      while read l ; do                                               \
--                              if [ "$${l:0:7}" != "CONFIG_" ] ; then                  \
--                                      continue                                        ;\
--                              fi                                                      ;\
--                              l=$${l:7}                                               ;\
--                              n=$${l%%=*}                                             ;\
--                              v=$${l#*=}                                              ;\
--                              if [ "$$v" = "m" ] ; then                               \
--                                      echo config $$n                                 ;\
--                                      echo '    tristate'                             ;\
--                              elif [ "$$v" = "y" ] ; then                             \
--                                      echo config $$n                                 ;\
--                                      echo '    bool'                                 ;\
--                              else                                                    \
--                                      continue                                        ;\
--                              fi                                                      ;\
--                              echo "    default $$v"                                  ;\
--                              echo ""                                                 ;\
--                      done                                                            \
--              ) > Kconfig.kernel                                                      ;\
--              kver=$$($(MAKE) --no-print-directory -C $(KLIB_BUILD) kernelversion |   \
--                      sed 's/^\(\([3-4]\|2\.6\)\.[0-9]\+\).*/\1/;t;d')                ;\
--              test "$$kver" != "" || echo "Kernel version parse failed!"              ;\
--              test "$$kver" != ""                                                     ;\
--              kvers="$$(seq 14 39 | sed 's/^/2.6./')"                                 ;\
--              kvers="$$kvers $$(seq 0 19 | sed 's/^/3./')"                            ;\
--              kvers="$$kvers $$(seq 0 99 | sed 's/^/4./')"                            ;\
--              print=0                                                                 ;\
--              for v in $$kvers ; do                                                   \
--                      if [ "$$print" = "1" ] ; then                                   \
--                              echo config KERNEL_$$(echo $$v | tr . _)        ;\
--                              echo "    def_bool y"                                   ;\
--                      fi                                                              ;\
--                      if [ "$$v" = "$$kver" ] ; then print=1 ; fi                     ;\
--              done > Kconfig.versions                                                 ;\
--              # RHEL as well, sadly we need to grep for it                            ;\
--              RHEL_MAJOR=$$(grep '^RHEL_MAJOR' $(KERNEL_MAKEFILE) |                   \
--                                      sed 's/.*=\s*\([0-9]*\)/\1/;t;d')               ;\
--              RHEL_MINOR=$$(grep '^RHEL_MINOR' $(KERNEL_MAKEFILE) |                   \
--                                      sed 's/.*=\s*\([0-9]*\)/\1/;t;d')               ;\
--              for v in $$(seq 0 $$RHEL_MINOR) ; do                                    \
--                      echo config BACKPORT_RHEL_KERNEL_$${RHEL_MAJOR}_$$v             ;\
--                      echo "    def_bool y"                                           ;\
--              done >> Kconfig.versions                                                ;\
--              echo " done."                                                           ;\
--      fi                                                                              ;\
--      echo "$(CONFIG_MD5)" > .kernel_config_md5
-+      @rm -f .kernel_config_md5_*
-+      @touch $@
-+
-+Kconfig.kernel: $(STAMP_KERNEL_CONFIG) local-symbols
-+      @printf "Generating local configuration database from kernel ..."
-+      @grep -v -f local-symbols $(KERNEL_CONFIG) | grep = | (                 \
-+              while read l ; do                                               \
-+                      if [ "$${l:0:7}" != "CONFIG_" ] ; then                  \
-+                              continue                                        ;\
-+                      fi                                                      ;\
-+                      l=$${l:7}                                               ;\
-+                      n=$${l%%=*}                                             ;\
-+                      v=$${l#*=}                                              ;\
-+                      if [ "$$v" = "m" ] ; then                               \
-+                              echo config $$n                                 ;\
-+                              echo '    tristate'                             ;\
-+                      elif [ "$$v" = "y" ] ; then                             \
-+                              echo config $$n                                 ;\
-+                              echo '    bool'                                 ;\
-+                      else                                                    \
-+                              continue                                        ;\
-+                      fi                                                      ;\
-+                      echo "    default $$v"                                  ;\
-+                      echo ""                                                 ;\
-+              done                                                            \
-+      ) > $@
-+      @echo " done."
-+
-+Kconfig.versions: Kconfig.kernel
-+      @kver=$$($(MAKE) --no-print-directory -C $(KLIB_BUILD) kernelversion |  \
-+              sed 's/^\(\([3-4]\|2\.6\)\.[0-9]\+\).*/\1/;t;d')                ;\
-+      test "$$kver" != "" || echo "Kernel version parse failed!"              ;\
-+      test "$$kver" != ""                                                     ;\
-+      kvers="$$(seq 14 39 | sed 's/^/2.6./')"                                 ;\
-+      kvers="$$kvers $$(seq 0 19 | sed 's/^/3./')"                            ;\
-+      kvers="$$kvers $$(seq 0 99 | sed 's/^/4./')"                            ;\
-+      print=0                                                                 ;\
-+      for v in $$kvers ; do                                                   \
-+              if [ "$$print" = "1" ] ; then                                   \
-+                      echo config KERNEL_$$(echo $$v | tr . _)        ;\
-+                      echo "    def_bool y"                                   ;\
-+              fi                                                              ;\
-+              if [ "$$v" = "$$kver" ] ; then print=1 ; fi                     ;\
-+      done > $@
-+      @RHEL_MAJOR=$$(grep '^RHEL_MAJOR' $(KERNEL_MAKEFILE) |                  \
-+                              sed 's/.*=\s*\([0-9]*\)/\1/;t;d')               ;\
-+      RHEL_MINOR=$$(grep '^RHEL_MINOR' $(KERNEL_MAKEFILE) |                   \
-+                              sed 's/.*=\s*\([0-9]*\)/\1/;t;d')               ;\
-+      for v in $$(seq 0 $$RHEL_MINOR) ; do                                    \
-+              echo config BACKPORT_RHEL_KERNEL_$${RHEL_MAJOR}_$$v             ;\
-+              echo "    def_bool y"                                           ;\
-+      done >> $@
-+
-+.DEFAULT:
-+      @$(MAKE) Kconfig.versions
-       @$(MAKE) -f Makefile.real "$@"
- .PHONY: defconfig-help
---- a/Makefile.real
-+++ b/Makefile.real
-@@ -59,7 +59,7 @@ defconfig-%::
- backport-include/backport/autoconf.h: .config Kconfig.versions Kconfig.kernel
-       @$(MAKE) oldconfig
--      @echo -n "Building backport-include/backport/autoconf.h ..."
-+      @printf "Building backport-include/backport/autoconf.h ..."
-       @grep -f local-symbols .config | (                              \
-               echo "#ifndef COMPAT_AUTOCONF_INCLUDED"                 ;\
-               echo "#define COMPAT_AUTOCONF_INCLUDED"                 ;\
-@@ -80,7 +80,12 @@ backport-include/backport/autoconf.h: .c
-                       esac                                            ;\
-               done                                                    ;\
-               echo "#endif /* COMPAT_AUTOCONF_INCLUDED */"            ;\
--      ) > backport-include/backport/autoconf.h
-+      ) > $@.new
-+      @if cmp -s $@ $@.new; then \
-+              rm -f $@.new; \
-+      else \
-+              mv $@.new $@; \
-+      fi
-       @echo " done."
- .PHONY: modules
diff --git a/package/kernel/mac80211/patches/002-change_allconfig.patch b/package/kernel/mac80211/patches/002-change_allconfig.patch
deleted file mode 100644 (file)
index a071ae6..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
---- a/kconf/conf.c
-+++ b/kconf/conf.c
-@@ -594,40 +594,12 @@ int main(int ac, char **av)
-       case oldconfig:
-       case listnewconfig:
-       case olddefconfig:
--              conf_read(NULL);
--              break;
-       case allnoconfig:
-       case allyesconfig:
-       case allmodconfig:
-       case alldefconfig:
-       case randconfig:
--              name = getenv("KCONFIG_ALLCONFIG");
--              if (!name)
--                      break;
--              if ((strcmp(name, "") != 0) && (strcmp(name, "1") != 0)) {
--                      if (conf_read_simple(name, S_DEF_USER)) {
--                              fprintf(stderr,
--                                      _("*** Can't read seed configuration \"%s\"!\n"),
--                                      name);
--                              exit(1);
--                      }
--                      break;
--              }
--              switch (input_mode) {
--              case allnoconfig:       name = "allno.config"; break;
--              case allyesconfig:      name = "allyes.config"; break;
--              case allmodconfig:      name = "allmod.config"; break;
--              case alldefconfig:      name = "alldef.config"; break;
--              case randconfig:        name = "allrandom.config"; break;
--              default: break;
--              }
--              if (conf_read_simple(name, S_DEF_USER) &&
--                  conf_read_simple("all.config", S_DEF_USER)) {
--                      fprintf(stderr,
--                              _("*** KCONFIG_ALLCONFIG set, but no \"%s\" or \"all.config\" file found\n"),
--                              name);
--                      exit(1);
--              }
-+              conf_read(NULL);
-               break;
-       default:
-               break;
---- a/kconf/confdata.c
-+++ b/kconf/confdata.c
-@@ -1170,6 +1170,8 @@ bool conf_set_all_new_symbols(enum conf_
-       }
-       bool has_changed = false;
-+      sym_clear_all_valid();
-+
-       for_all_symbols(i, sym) {
-               if (sym_has_value(sym) || (sym->flags & SYMBOL_VALID))
-                       continue;
-@@ -1213,8 +1215,6 @@ bool conf_set_all_new_symbols(enum conf_
-       }
--      sym_clear_all_valid();
--
-       /*
-        * We have different type of choice blocks.
-        * If curr.tri equals to mod then we can select several
diff --git a/package/kernel/mac80211/patches/003-remove_bogus_modparams.patch b/package/kernel/mac80211/patches/003-remove_bogus_modparams.patch
deleted file mode 100644 (file)
index 8fa465a..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/compat/main.c
-+++ b/compat/main.c
-@@ -20,31 +20,6 @@ MODULE_LICENSE("GPL");
- #error "You need a CPTCFG_VERSION"
- #endif
--static char *backported_kernel_name = CPTCFG_KERNEL_NAME;
--
--module_param(backported_kernel_name, charp, 0400);
--MODULE_PARM_DESC(backported_kernel_name,
--               "The kernel tree name that was used for this backport (" CPTCFG_KERNEL_NAME ")");
--
--#ifdef BACKPORTS_GIT_TRACKED
--static char *backports_tracker_id = BACKPORTS_GIT_TRACKED;
--module_param(backports_tracker_id, charp, 0400);
--MODULE_PARM_DESC(backports_tracker_id,
--               "The version of the tree containing this backport (" BACKPORTS_GIT_TRACKED ")");
--#else
--static char *backported_kernel_version = CPTCFG_KERNEL_VERSION;
--static char *backports_version = CPTCFG_VERSION;
--
--module_param(backported_kernel_version, charp, 0400);
--MODULE_PARM_DESC(backported_kernel_version,
--               "The kernel version that was used for this backport (" CPTCFG_KERNEL_VERSION ")");
--
--module_param(backports_version, charp, 0400);
--MODULE_PARM_DESC(backports_version,
--               "The git version of the backports tree used to generate this backport (" CPTCFG_VERSION ")");
--
--#endif
--
- void backport_dependency_symbol(void)
- {
- }
diff --git a/package/kernel/mac80211/patches/004-kconfig_backport_fix.patch b/package/kernel/mac80211/patches/004-kconfig_backport_fix.patch
deleted file mode 100644 (file)
index 2c9572e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/backport-include/linux/kconfig.h
-+++ b/backport-include/linux/kconfig.h
-@@ -5,6 +5,8 @@
- #include_next <linux/kconfig.h>
- #endif
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)
-+
- #ifndef __ARG_PLACEHOLDER_1
- #define __ARG_PLACEHOLDER_1 0,
- #define config_enabled(cfg) _config_enabled(cfg)
-@@ -16,6 +18,7 @@
-  * 3.1 - 3.3 had a broken version of this, so undef
-  * (they didn't have __ARG_PLACEHOLDER_1)
-  */
-+
- #undef IS_ENABLED
- #define IS_ENABLED(option) \
-         (config_enabled(option) || config_enabled(option##_MODULE))
-@@ -31,6 +34,8 @@
- #undef IS_BUILTIN
- #define IS_BUILTIN(option) config_enabled(option)
-+#endif
-+
- #ifndef IS_REACHABLE
- /*
-  * IS_REACHABLE(CONFIG_FOO) evaluates to 1 if the currently compiled
diff --git a/package/kernel/mac80211/patches/005-revert-devcoredump.patch b/package/kernel/mac80211/patches/005-revert-devcoredump.patch
deleted file mode 100644 (file)
index d485d95..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/compat/Makefile
-+++ b/compat/Makefile
-@@ -70,8 +70,6 @@ quiet_cmd_build_OID_registry = GEN     $
-       cmd_build_OID_registry = perl $(src)/build_OID_registry $< $@
- compat-$(CPTCFG_BPAUTO_ASN1_DECODER) += lib-asn1_decoder.o
- compat-$(CPTCFG_BPAUTO_BUILD_SYSTEM_DATA_VERIFICATION) += lib-oid_registry.o
--skcipher-objs += crypto-skcipher.o
--obj-$(CPTCFG_BPAUTO_CRYPTO_SKCIPHER) += skcipher.o
- compat-$(CPTCFG_BPAUTO_RHASHTABLE) += lib-rhashtable.o
- cordic-objs += lib-cordic.o
- obj-$(CPTCFG_BPAUTO_BUILD_CORDIC) += cordic.o
diff --git a/package/kernel/mac80211/patches/006-fix-genl-multicast.patch b/package/kernel/mac80211/patches/006-fix-genl-multicast.patch
deleted file mode 100644 (file)
index 42fd3e8..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/compat/backport-4.12.c
-+++ b/compat/backport-4.12.c
-@@ -225,6 +225,7 @@ int bp_extack_genl_register_family(struc
-       /* copy this since the family might access it directly */
-       family->attrbuf = copy->family.attrbuf;
-+      family->mcgrp_offset = copy->family.mcgrp_offset;
-       mutex_lock(&copies_mutex);
-       list_add_tail(&copy->list, &copies_list);
diff --git a/package/kernel/mac80211/patches/007-fix-linux-verification-h.patch b/package/kernel/mac80211/patches/007-fix-linux-verification-h.patch
deleted file mode 100644 (file)
index 4011f1d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/backport-include/linux/verification.h
-+++ b/backport-include/linux/verification.h
-@@ -1,7 +1,7 @@
- #ifndef __BP_VERIFICATION_H
- #define __BP_VERIFICATION_H
- #include <linux/version.h>
--#ifndef CPTCFG_BPAUTO_BUILD_SYSTEM_DATA_VERIFICATION
-+#if LINUX_VERSION_IS_GEQ(4,7,0) && !defined(CPTCFG_BPAUTO_BUILD_SYSTEM_DATA_VERIFICATION)
- #include_next <linux/verification.h>
- #else
- #include <linux/key.h>
diff --git a/package/kernel/mac80211/patches/008-fix-genl-family-id.patch b/package/kernel/mac80211/patches/008-fix-genl-family-id.patch
deleted file mode 100644 (file)
index ee8fa6c..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/compat/backport-4.12.c
-+++ b/compat/backport-4.12.c
-@@ -224,6 +224,7 @@ int bp_extack_genl_register_family(struc
-       }
-       /* copy this since the family might access it directly */
-+      family->id = copy->family.id;
-       family->attrbuf = copy->family.attrbuf;
-       family->mcgrp_offset = copy->family.mcgrp_offset;
diff --git a/package/kernel/mac80211/patches/010-disable_rfkill.patch b/package/kernel/mac80211/patches/010-disable_rfkill.patch
deleted file mode 100644 (file)
index d525306..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/backport-include/linux/rfkill.h
-+++ b/backport-include/linux/rfkill.h
-@@ -2,6 +2,12 @@
- #define __COMPAT_RFKILL_H
- #include <linux/version.h>
-+#undef CONFIG_RFKILL
-+#undef CONFIG_RFKILL_FULL
-+#undef CONFIG_RFKILL_LEDS
-+#undef CONFIG_RFKILL_MODULE
-+#undef CONFIG_RFKILL_FULL_MODULE
-+
- #if LINUX_VERSION_IS_GEQ(3,10,0)
- #include_next <linux/rfkill.h>
- #else
diff --git a/package/kernel/mac80211/patches/012-kernel_build_check.patch b/package/kernel/mac80211/patches/012-kernel_build_check.patch
deleted file mode 100644 (file)
index d225ba1..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -2,7 +2,7 @@
- # Makefile for the output source package
- #
--ifeq ($(KERNELRELEASE),)
-+ifeq ($(KERNELVERSION),)
- MAKEFLAGS += --no-print-directory
- SHELL := /usr/bin/env bash
diff --git a/package/kernel/mac80211/patches/015-ipw200-mtu.patch b/package/kernel/mac80211/patches/015-ipw200-mtu.patch
deleted file mode 100644 (file)
index 8d273a0..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c
-+++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
-@@ -11506,6 +11506,15 @@ static const struct attribute_group ipw_
-       .attrs = ipw_sysfs_entries,
- };
-+#if LINUX_VERSION_IS_LESS(4,10,0)
-+static int __change_mtu(struct net_device *ndev, int new_mtu){
-+      if (new_mtu < 68 || new_mtu > LIBIPW_DATA_LEN)
-+              return -EINVAL;
-+      ndev->mtu = new_mtu;
-+      return 0;
-+}
-+#endif
-+
- #ifdef CPTCFG_IPW2200_PROMISCUOUS
- static int ipw_prom_open(struct net_device *dev)
- {
-@@ -11554,15 +11563,6 @@ static netdev_tx_t ipw_prom_hard_start_x
-       return NETDEV_TX_OK;
- }
--#if LINUX_VERSION_IS_LESS(4,10,0)
--static int __change_mtu(struct net_device *ndev, int new_mtu){
--      if (new_mtu < 68 || new_mtu > LIBIPW_DATA_LEN)
--              return -EINVAL;
--      ndev->mtu = new_mtu;
--      return 0;
--}
--#endif
--
- static const struct net_device_ops ipw_prom_netdev_ops = {
- #if LINUX_VERSION_IS_LESS(4,10,0)
-       .ndo_change_mtu = __change_mtu,
diff --git a/package/kernel/mac80211/patches/030-rt2x00_options.patch b/package/kernel/mac80211/patches/030-rt2x00_options.patch
deleted file mode 100644 (file)
index 9dd3481..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/drivers/net/wireless/ralink/rt2x00/Kconfig
-+++ b/drivers/net/wireless/ralink/rt2x00/Kconfig
-@@ -225,36 +225,37 @@ config RT2800SOC
- config RT2800_LIB
--      tristate
-+      tristate "RT2800 USB/PCI support"
-       depends on m
- config RT2800_LIB_MMIO
--      tristate
-+      tristate "RT2800 MMIO support"
-       depends on m
-       select RT2X00_LIB_MMIO
-       select RT2800_LIB
- config RT2X00_LIB_MMIO
--      tristate
-+      tristate "RT2x00 MMIO support"
-       depends on m
- config RT2X00_LIB_PCI
--      tristate
-+      tristate "RT2x00 PCI support"
-       depends on m
-       select RT2X00_LIB
- config RT2X00_LIB_SOC
--      tristate
-+      tristate "RT2x00 SoC support"
-+      depends on SOC_RT288X || SOC_RT305X || SOC_MT7620
-       depends on m
-       select RT2X00_LIB
- config RT2X00_LIB_USB
--      tristate
-+      tristate "RT2x00 USB support"
-       depends on m
-       select RT2X00_LIB
- config RT2X00_LIB
--      tristate
-+      tristate "RT2x00 support"
-       depends on m
- config RT2X00_LIB_FIRMWARE
diff --git a/package/kernel/mac80211/patches/040-brcmutil_option.patch b/package/kernel/mac80211/patches/040-brcmutil_option.patch
deleted file mode 100644 (file)
index 167332d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/drivers/net/wireless/broadcom/brcm80211/Kconfig
-+++ b/drivers/net/wireless/broadcom/brcm80211/Kconfig
-@@ -1,5 +1,5 @@
- config BRCMUTIL
--      tristate
-+      tristate "Broadcom 802.11 driver utility functions"
-       depends on m
- config BRCMSMAC
diff --git a/package/kernel/mac80211/patches/050-lib80211_option.patch b/package/kernel/mac80211/patches/050-lib80211_option.patch
deleted file mode 100644 (file)
index 28a0d90..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/net/wireless/Kconfig
-+++ b/net/wireless/Kconfig
-@@ -181,7 +181,7 @@ config CFG80211_WEXT_EXPORT
-         wext compatibility symbols to be exported.
- config LIB80211
--      tristate
-+      tristate "lib80211"
-       depends on m
-       default n
-       help
-@@ -191,15 +191,15 @@ config LIB80211
-         Drivers should select this themselves if needed.
- config LIB80211_CRYPT_WEP
--      tristate
-+      tristate "lib80211 WEP support"
-       depends on m
- config LIB80211_CRYPT_CCMP
--      tristate
-+      tristate "lib80211 CCMP support"
-       depends on m
- config LIB80211_CRYPT_TKIP
--      tristate
-+      tristate "lib80211 TKIP support"
-       depends on m
- config LIB80211_DEBUG
diff --git a/package/kernel/mac80211/patches/060-no_local_ssb_bcma.patch b/package/kernel/mac80211/patches/060-no_local_ssb_bcma.patch
deleted file mode 100644 (file)
index d897b2b..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
---- a/local-symbols
-+++ b/local-symbols
-@@ -388,45 +388,6 @@ USB_IPHETH=
- USB_SIERRA_NET=
- USB_VL600=
- USB_NET_CH9200=
--SSB_POSSIBLE=
--SSB=
--SSB_SPROM=
--SSB_BLOCKIO=
--SSB_PCIHOST_POSSIBLE=
--SSB_PCIHOST=
--SSB_B43_PCI_BRIDGE=
--SSB_PCMCIAHOST_POSSIBLE=
--SSB_PCMCIAHOST=
--SSB_SDIOHOST_POSSIBLE=
--SSB_SDIOHOST=
--SSB_HOST_SOC=
--SSB_SILENT=
--SSB_DEBUG=
--SSB_SERIAL=
--SSB_DRIVER_PCICORE_POSSIBLE=
--SSB_DRIVER_PCICORE=
--SSB_PCICORE_HOSTMODE=
--SSB_DRIVER_MIPS=
--SSB_SFLASH=
--SSB_EMBEDDED=
--SSB_DRIVER_EXTIF=
--SSB_DRIVER_GIGE=
--SSB_DRIVER_GPIO=
--BCMA_POSSIBLE=
--BCMA=
--BCMA_BLOCKIO=
--BCMA_HOST_PCI_POSSIBLE=
--BCMA_HOST_PCI=
--BCMA_HOST_SOC=
--BCMA_DRIVER_PCI=
--BCMA_DRIVER_PCI_HOSTMODE=
--BCMA_DRIVER_MIPS=
--BCMA_PFLASH=
--BCMA_SFLASH=
--BCMA_NFLASH=
--BCMA_DRIVER_GMAC_CMN=
--BCMA_DRIVER_GPIO=
--BCMA_DEBUG=
- NFC=
- NFC_DIGITAL=
- NFC_NCI=
---- a/drivers/net/wireless/broadcom/b43/main.c
-+++ b/drivers/net/wireless/broadcom/b43/main.c
-@@ -2876,7 +2876,7 @@ static struct ssb_device *b43_ssb_gpio_d
- {
-       struct ssb_bus *bus = dev->dev->sdev->bus;
--#ifdef CPTCFG_SSB_DRIVER_PCICORE
-+#ifdef CONFIG_SSB_DRIVER_PCICORE
-       return (bus->chipco.dev ? bus->chipco.dev : bus->pcicore.dev);
- #else
-       return bus->chipco.dev;
-@@ -4893,7 +4893,7 @@ static int b43_wireless_core_init(struct
-       }
-       if (sprom->boardflags_lo & B43_BFL_XTAL_NOSLOW)
-               hf |= B43_HF_DSCRQ; /* Disable slowclock requests from ucode. */
--#if defined(CPTCFG_B43_SSB) && defined(CPTCFG_SSB_DRIVER_PCICORE)
-+#if defined(CPTCFG_B43_SSB) && defined(CONFIG_SSB_DRIVER_PCICORE)
-       if (dev->dev->bus_type == B43_BUS_SSB &&
-           dev->dev->sdev->bus->bustype == SSB_BUSTYPE_PCI &&
-           dev->dev->sdev->bus->pcicore.dev->id.revision <= 10)
---- a/drivers/net/wireless/broadcom/b43legacy/main.c
-+++ b/drivers/net/wireless/broadcom/b43legacy/main.c
-@@ -1937,7 +1937,7 @@ static int b43legacy_gpio_init(struct b4
-       if (dev->dev->id.revision >= 2)
-               mask  |= 0x0010; /* FIXME: This is redundant. */
--#ifdef CPTCFG_SSB_DRIVER_PCICORE
-+#ifdef CONFIG_SSB_DRIVER_PCICORE
-       pcidev = bus->pcicore.dev;
- #endif
-       gpiodev = bus->chipco.dev ? : pcidev;
-@@ -1956,7 +1956,7 @@ static void b43legacy_gpio_cleanup(struc
-       struct ssb_bus *bus = dev->dev->bus;
-       struct ssb_device *gpiodev, *pcidev = NULL;
--#ifdef CPTCFG_SSB_DRIVER_PCICORE
-+#ifdef CONFIG_SSB_DRIVER_PCICORE
-       pcidev = bus->pcicore.dev;
- #endif
-       gpiodev = bus->chipco.dev ? : pcidev;
---- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/Makefile
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/Makefile
-@@ -42,6 +42,6 @@ brcmsmac-y := \
-       brcms_trace_events.o \
-       debug.o
--brcmsmac-$(CPTCFG_BCMA_DRIVER_GPIO) += led.o
-+brcmsmac-$(CONFIG_BCMA_DRIVER_GPIO) += led.o
- obj-$(CPTCFG_BRCMSMAC)        += brcmsmac.o
---- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.h
-@@ -22,7 +22,7 @@ struct brcms_led {
-       bool active_low;
- };
--#ifdef CPTCFG_BCMA_DRIVER_GPIO
-+#ifdef CONFIG_BCMA_DRIVER_GPIO
- void brcms_led_unregister(struct brcms_info *wl);
- int brcms_led_register(struct brcms_info *wl);
- #else
---- a/Kconfig.sources
-+++ b/Kconfig.sources
-@@ -9,9 +9,6 @@ source "$BACKPORT_DIR/drivers/net/wirele
- #source "$BACKPORT_DIR/drivers/net/ethernet/Kconfig"
- source "$BACKPORT_DIR/drivers/net/usb/Kconfig"
--source "$BACKPORT_DIR/drivers/ssb/Kconfig"
--source "$BACKPORT_DIR/drivers/bcma/Kconfig"
--
- source "$BACKPORT_DIR/net/nfc/Kconfig"
- #source "$BACKPORT_DIR/drivers/media/Kconfig"
---- a/Makefile.kernel
-+++ b/Makefile.kernel
-@@ -42,8 +42,6 @@ obj-$(CPTCFG_MAC80211) += net/mac80211/
- obj-$(CPTCFG_WLAN) += drivers/net/wireless/
- #obj-$(CPTCFG_BT) += net/bluetooth/
- #obj-$(CPTCFG_BT) += drivers/bluetooth/
--obj-$(CPTCFG_SSB) += drivers/ssb/
--obj-$(CPTCFG_BCMA) += drivers/bcma/
- #obj-$(CPTCFG_ETHERNET) += drivers/net/ethernet/
- obj-$(CPTCFG_USB_NET_RNDIS_WLAN) += drivers/net/usb/
- obj-$(CPTCFG_NFC) += net/nfc/
diff --git a/package/kernel/mac80211/patches/070-ath_common_config.patch b/package/kernel/mac80211/patches/070-ath_common_config.patch
deleted file mode 100644 (file)
index 41774fe..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/drivers/net/wireless/ath/Kconfig
-+++ b/drivers/net/wireless/ath/Kconfig
-@@ -1,5 +1,5 @@
- config ATH_COMMON
--      tristate
-+      tristate "ath.ko"
-       depends on m
- config WLAN_VENDOR_ATH
diff --git a/package/kernel/mac80211/patches/080-ath10k_thermal_config.patch b/package/kernel/mac80211/patches/080-ath10k_thermal_config.patch
deleted file mode 100644 (file)
index adcd788..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/drivers/net/wireless/ath/ath10k/Kconfig
-+++ b/drivers/net/wireless/ath/ath10k/Kconfig
-@@ -65,6 +65,12 @@ config ATH10K_TRACING
-       ---help---
-         Select this to ath10k use tracing infrastructure.
-+config ATH10K_THERMAL
-+      bool "Atheros ath10k thermal monitoring support"
-+      depends on THERMAL
-+      ---help---
-+        Select this to ath10k use hwmon for thermal measurement.
-+
- config ATH10K_DFS_CERTIFIED
-       bool "Atheros DFS support for certified platforms"
-       depends on ATH10K && CFG80211_CERTIFICATION_ONUS
---- a/drivers/net/wireless/ath/ath10k/Makefile
-+++ b/drivers/net/wireless/ath/ath10k/Makefile
-@@ -17,7 +17,7 @@ ath10k_core-y += mac.o \
- ath10k_core-$(CPTCFG_ATH10K_DEBUGFS) += spectral.o
- ath10k_core-$(CPTCFG_NL80211_TESTMODE) += testmode.o
- ath10k_core-$(CPTCFG_ATH10K_TRACING) += trace.o
--ath10k_core-$(CONFIG_THERMAL) += thermal.o
-+ath10k_core-$(CPTCFG_ATH10K_THERMAL) += thermal.o
- ath10k_core-$(CPTCFG_MAC80211_DEBUGFS) += debugfs_sta.o
- ath10k_core-$(CONFIG_PM) += wow.o
---- a/drivers/net/wireless/ath/ath10k/thermal.h
-+++ b/drivers/net/wireless/ath/ath10k/thermal.h
-@@ -36,7 +36,7 @@ struct ath10k_thermal {
-       int temperature;
- };
--#if IS_REACHABLE(CONFIG_THERMAL)
-+#if IS_REACHABLE(CPTCFG_ATH10K_THERMAL)
- int ath10k_thermal_register(struct ath10k *ar);
- void ath10k_thermal_unregister(struct ath10k *ar);
- void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature);
---- a/local-symbols
-+++ b/local-symbols
-@@ -139,6 +139,7 @@ ATH10K_SDIO=
- ATH10K_USB=
- ATH10K_DEBUG=
- ATH10K_DEBUGFS=
-+ATH10K_THERMAL=
- ATH10K_TRACING=
- ATH10K_DFS_CERTIFIED=
- WCN36XX=
diff --git a/package/kernel/mac80211/patches/081-ath10k-calibration-variant.patch b/package/kernel/mac80211/patches/081-ath10k-calibration-variant.patch
deleted file mode 100644 (file)
index 2724027..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From d06f26c5c8a41f246a9c40862a77a55725cedbd3 Mon Sep 17 00:00:00 2001
-From: Sven Eckelmann <sven.eckelmann@openmesh.com>
-Date: Fri, 8 Dec 2017 11:37:42 +0100
-Subject: ath10k: search DT for qcom,ath10k-calibration-variant
-
-Board Data File (BDF) is loaded upon driver boot-up procedure. The right
-board data file is identified on QCA4019 using bus, bmi-chip-id and
-bmi-board-id.
-
-The problem, however, can occur when the (default) board data file cannot
-fulfill with the vendor requirements and it is necessary to use a different
-board data file.
-
-This problem was solved for SMBIOS by adding a special SMBIOS type 0xF8.
-Something similar has to be provided for systems without SMBIOS but with
-device trees. No solution was specified by QCA and therefore a new one has
-to be found for ath10k.
-
-The device tree requires addition strings to define the variant name
-
-    wifi@a000000 {
-       status = "okay";
-       qcom,ath10k-calibration-variant = "RT-AC58U";
-    };
-
-    wifi@a800000 {
-       status = "okay";
-       qcom,ath10k-calibration-variant = "RT-AC58U";
-    };
-
-This would create the boarddata identifiers for the board-2.bin search
-
- *  bus=ahb,bmi-chip-id=0,bmi-board-id=16,variant=RT-AC58U
- *  bus=ahb,bmi-chip-id=0,bmi-board-id=17,variant=RT-AC58U
-
-Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
-Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
----
- drivers/net/wireless/ath/ath10k/core.c | 40 ++++++++++++++++++++++++++++------
- 1 file changed, 33 insertions(+), 7 deletions(-)
-
---- a/drivers/net/wireless/ath/ath10k/core.c
-+++ b/drivers/net/wireless/ath/ath10k/core.c
-@@ -860,6 +860,28 @@ static int ath10k_core_check_smbios(stru
-       return 0;
- }
-+static int ath10k_core_check_dt(struct ath10k *ar)
-+{
-+      struct device_node *node;
-+      const char *variant = NULL;
-+
-+      node = ar->dev->of_node;
-+      if (!node)
-+              return -ENOENT;
-+
-+      of_property_read_string(node, "qcom,ath10k-calibration-variant",
-+                              &variant);
-+      if (!variant)
-+              return -ENODATA;
-+
-+      if (strscpy(ar->id.bdf_ext, variant, sizeof(ar->id.bdf_ext)) < 0)
-+              ath10k_dbg(ar, ATH10K_DBG_BOOT,
-+                         "bdf variant string is longer than the buffer can accommodate (variant: %s)\n",
-+                          variant);
-+
-+      return 0;
-+}
-+
- static int ath10k_download_and_run_otp(struct ath10k *ar)
- {
-       u32 result, address = ar->hw_params.patch_load_addr;
-@@ -1231,19 +1253,19 @@ static int ath10k_core_create_board_name
-       /* strlen(',variant=') + strlen(ar->id.bdf_ext) */
-       char variant[9 + ATH10K_SMBIOS_BDF_EXT_STR_LENGTH] = { 0 };
-+      if (ar->id.bdf_ext[0] != '\0')
-+              scnprintf(variant, sizeof(variant), ",variant=%s",
-+                        ar->id.bdf_ext);
-+
-       if (ar->id.bmi_ids_valid) {
-               scnprintf(name, name_len,
--                        "bus=%s,bmi-chip-id=%d,bmi-board-id=%d",
-+                        "bus=%s,bmi-chip-id=%d,bmi-board-id=%d%s",
-                         ath10k_bus_str(ar->hif.bus),
-                         ar->id.bmi_chip_id,
--                        ar->id.bmi_board_id);
-+                        ar->id.bmi_board_id, variant);
-               goto out;
-       }
--      if (ar->id.bdf_ext[0] != '\0')
--              scnprintf(variant, sizeof(variant), ",variant=%s",
--                        ar->id.bdf_ext);
--
-       scnprintf(name, name_len,
-                 "bus=%s,vendor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x%s",
-                 ath10k_bus_str(ar->hif.bus),
-@@ -2343,7 +2365,11 @@ static int ath10k_core_probe_fw(struct a
-       ret = ath10k_core_check_smbios(ar);
-       if (ret)
--              ath10k_dbg(ar, ATH10K_DBG_BOOT, "bdf variant name not set.\n");
-+              ath10k_dbg(ar, ATH10K_DBG_BOOT, "SMBIOS bdf variant name not set.\n");
-+
-+      ret = ath10k_core_check_dt(ar);
-+      if (ret)
-+              ath10k_dbg(ar, ATH10K_DBG_BOOT, "DT bdf variant name not set.\n");
-       ret = ath10k_core_fetch_board_file(ar);
-       if (ret) {
diff --git a/package/kernel/mac80211/patches/082-ath10k-suppress-Unknown-eventid-36925-warnings.patch b/package/kernel/mac80211/patches/082-ath10k-suppress-Unknown-eventid-36925-warnings.patch
deleted file mode 100644 (file)
index 9ddede3..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From 606204bb863fa3b0bb54929d79b4dc46338f9180 Mon Sep 17 00:00:00 2001
-From: Sathishkumar Muruganandam <murugana@codeaurora.org>
-Date: Tue, 27 Mar 2018 11:26:46 +0300
-Subject: [PATCH] ath10k: suppress "Unknown eventid: 36925" warnings
-
-FW has Smart Logging feature enabled by default for detecting failures
-and processing FATAL_CONDITION_EVENTID (36925 - 0x903D) back to host.
-
-Since ath10k doesn't implement the Smart Logging and FATAL CONDITION
-EVENT processing yet, suppressing the unknown event ID warning by moving
-this under ATH10K_DBG_WMI.
-
-Simulated the same issue by having associated STA powered off when
-ping flood was running from AP backbone. This triggerd STA KICKOUT
-in AP followed by FATAL CONDITION event 36925.
-
-Issue was reproduced and verified in below DUT
-------------------------------------------------
-AP mode of OpenWRT QCA9984 running 6.0.8 with FW ver 10.4-3.5.3-00053
-
-Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/ath/ath10k/wmi.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/net/wireless/ath/ath10k/wmi.c
-+++ b/drivers/net/wireless/ath/ath10k/wmi.c
-@@ -5462,6 +5462,7 @@ static void ath10k_wmi_10_4_op_rx(struct
-       case WMI_10_4_WOW_WAKEUP_HOST_EVENTID:
-       case WMI_10_4_PEER_RATECODE_LIST_EVENTID:
-       case WMI_10_4_WDS_PEER_EVENTID:
-+      case WMI_10_4_DEBUG_FATAL_CONDITION_EVENTID:
-               ath10k_dbg(ar, ATH10K_DBG_WMI,
-                          "received event id %d not implemented\n", id);
-               break;
diff --git a/package/kernel/mac80211/patches/090-Revert-rt2800-use-TXOP_BACKOFF-for-probe-frames.patch b/package/kernel/mac80211/patches/090-Revert-rt2800-use-TXOP_BACKOFF-for-probe-frames.patch
deleted file mode 100644 (file)
index 95feffa..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From patchwork Mon May 28 11:25:06 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: Revert "rt2800: use TXOP_BACKOFF for probe frames"
-From: Stanislaw Gruszka <sgruszka@redhat.com>
-X-Patchwork-Id: 10431861
-Message-Id: <1527506706-6488-1-git-send-email-sgruszka@redhat.com>
-To: linux-wireless@vger.kernel.org
-Date: Mon, 28 May 2018 13:25:06 +0200
-
-This reverts commit fb47ada8dc3c30c8e7b415da155742b49536c61e.
-
-In some situations when we set TXOP_BACKOFF, the probe frame is
-not sent at all. What it worse then sending probe frame as part
-of AMPDU and can degrade 11n performance to 11g rates.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
---- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
-+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
-@@ -372,16 +372,15 @@ static void rt2x00queue_create_tx_descri
-       /*
-        * Determine IFS values
--       * - Use TXOP_BACKOFF for probe and management frames except beacons
-+       * - Use TXOP_BACKOFF for management frames except beacons
-        * - Use TXOP_SIFS for fragment bursts
-        * - Use TXOP_HTTXOP for everything else
-        *
-        * Note: rt2800 devices won't use CTS protection (if used)
-        * for frames not transmitted with TXOP_HTTXOP
-        */
--      if ((ieee80211_is_mgmt(hdr->frame_control) &&
--           !ieee80211_is_beacon(hdr->frame_control)) ||
--          (tx_info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE))
-+      if (ieee80211_is_mgmt(hdr->frame_control) &&
-+          !ieee80211_is_beacon(hdr->frame_control))
-               txdesc->u.ht.txop = TXOP_BACKOFF;
-       else if (!(tx_info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT))
-               txdesc->u.ht.txop = TXOP_SIFS;
diff --git a/package/kernel/mac80211/patches/100-remove-cryptoapi-dependencies.patch b/package/kernel/mac80211/patches/100-remove-cryptoapi-dependencies.patch
deleted file mode 100644 (file)
index 8d7a39a..0000000
+++ /dev/null
@@ -1,705 +0,0 @@
---- a/net/mac80211/Makefile
-+++ b/net/mac80211/Makefile
-@@ -6,7 +6,6 @@ mac80211-y := \
-       driver-ops.o \
-       sta_info.o \
-       wep.o \
--      aead_api.o \
-       wpa.o \
-       scan.o offchannel.o \
-       ht.o agg-tx.o agg-rx.o \
-@@ -16,8 +15,8 @@ mac80211-y := \
-       rate.o \
-       michael.o \
-       tkip.o \
-+      aes_ccm.o \
-       aes_cmac.o \
--      aes_gmac.o \
-       fils_aead.o \
-       cfg.o \
-       ethtool.o \
---- a/net/mac80211/aead_api.c
-+++ /dev/null
-@@ -1,115 +0,0 @@
--/*
-- * Copyright 2003-2004, Instant802 Networks, Inc.
-- * Copyright 2005-2006, Devicescape Software, Inc.
-- * Copyright 2014-2015, Qualcomm Atheros, Inc.
-- *
-- * Rewrite: Copyright (C) 2013 Linaro Ltd <ard.biesheuvel@linaro.org>
-- *
-- * This program is free software; you can redistribute it and/or modify
-- * it under the terms of the GNU General Public License version 2 as
-- * published by the Free Software Foundation.
-- */
--
--#include <linux/kernel.h>
--#include <linux/types.h>
--#include <linux/err.h>
--#include <linux/scatterlist.h>
--#include <crypto/aead.h>
--
--#include "aead_api.h"
--
--int aead_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad, size_t aad_len,
--               u8 *data, size_t data_len, u8 *mic)
--{
--      size_t mic_len = crypto_aead_authsize(tfm);
--      struct scatterlist sg[3];
--      struct aead_request *aead_req;
--      int reqsize = sizeof(*aead_req) + crypto_aead_reqsize(tfm);
--      u8 *__aad;
--
--      aead_req = kzalloc(reqsize + aad_len, GFP_ATOMIC);
--      if (!aead_req)
--              return -ENOMEM;
--
--      __aad = (u8 *)aead_req + reqsize;
--      memcpy(__aad, aad, aad_len);
--
--      sg_init_table(sg, 3);
--      sg_set_buf(&sg[0], __aad, aad_len);
--      sg_set_buf(&sg[1], data, data_len);
--      sg_set_buf(&sg[2], mic, mic_len);
--
--      aead_request_set_tfm(aead_req, tfm);
--      aead_request_set_crypt(aead_req, sg, sg, data_len, b_0);
--      aead_request_set_ad(aead_req, sg[0].length);
--
--      crypto_aead_encrypt(aead_req);
--      kzfree(aead_req);
--
--      return 0;
--}
--
--int aead_decrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad, size_t aad_len,
--               u8 *data, size_t data_len, u8 *mic)
--{
--      size_t mic_len = crypto_aead_authsize(tfm);
--      struct scatterlist sg[3];
--      struct aead_request *aead_req;
--      int reqsize = sizeof(*aead_req) + crypto_aead_reqsize(tfm);
--      u8 *__aad;
--      int err;
--
--      if (data_len == 0)
--              return -EINVAL;
--
--      aead_req = kzalloc(reqsize + aad_len, GFP_ATOMIC);
--      if (!aead_req)
--              return -ENOMEM;
--
--      __aad = (u8 *)aead_req + reqsize;
--      memcpy(__aad, aad, aad_len);
--
--      sg_init_table(sg, 3);
--      sg_set_buf(&sg[0], __aad, aad_len);
--      sg_set_buf(&sg[1], data, data_len);
--      sg_set_buf(&sg[2], mic, mic_len);
--
--      aead_request_set_tfm(aead_req, tfm);
--      aead_request_set_crypt(aead_req, sg, sg, data_len + mic_len, b_0);
--      aead_request_set_ad(aead_req, sg[0].length);
--
--      err = crypto_aead_decrypt(aead_req);
--      kzfree(aead_req);
--
--      return err;
--}
--
--struct crypto_aead *
--aead_key_setup_encrypt(const char *alg, const u8 key[],
--                     size_t key_len, size_t mic_len)
--{
--      struct crypto_aead *tfm;
--      int err;
--
--      tfm = crypto_alloc_aead(alg, 0, CRYPTO_ALG_ASYNC);
--      if (IS_ERR(tfm))
--              return tfm;
--
--      err = crypto_aead_setkey(tfm, key, key_len);
--      if (err)
--              goto free_aead;
--      err = crypto_aead_setauthsize(tfm, mic_len);
--      if (err)
--              goto free_aead;
--
--      return tfm;
--
--free_aead:
--      crypto_free_aead(tfm);
--      return ERR_PTR(err);
--}
--
--void aead_key_free(struct crypto_aead *tfm)
--{
--      crypto_free_aead(tfm);
--}
---- a/net/mac80211/aead_api.h
-+++ /dev/null
-@@ -1,27 +0,0 @@
--/*
-- * This program is free software; you can redistribute it and/or modify
-- * it under the terms of the GNU General Public License version 2 as
-- * published by the Free Software Foundation.
-- */
--
--#ifndef _AEAD_API_H
--#define _AEAD_API_H
--
--#include <crypto/aead.h>
--#include <linux/crypto.h>
--
--struct crypto_aead *
--aead_key_setup_encrypt(const char *alg, const u8 key[],
--                     size_t key_len, size_t mic_len);
--
--int aead_encrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
--               size_t aad_len, u8 *data,
--               size_t data_len, u8 *mic);
--
--int aead_decrypt(struct crypto_aead *tfm, u8 *b_0, u8 *aad,
--               size_t aad_len, u8 *data,
--               size_t data_len, u8 *mic);
--
--void aead_key_free(struct crypto_aead *tfm);
--
--#endif /* _AEAD_API_H */
---- a/net/mac80211/aes_ccm.h
-+++ b/net/mac80211/aes_ccm.h
-@@ -10,39 +10,17 @@
- #ifndef AES_CCM_H
- #define AES_CCM_H
--#include "aead_api.h"
-+#include <linux/crypto.h>
--#define CCM_AAD_LEN   32
--
--static inline struct crypto_aead *
--ieee80211_aes_key_setup_encrypt(const u8 key[], size_t key_len, size_t mic_len)
--{
--      return aead_key_setup_encrypt("ccm(aes)", key, key_len, mic_len);
--}
--
--static inline int
--ieee80211_aes_ccm_encrypt(struct crypto_aead *tfm,
--                        u8 *b_0, u8 *aad, u8 *data,
--                        size_t data_len, u8 *mic)
--{
--      return aead_encrypt(tfm, b_0, aad + 2,
--                          be16_to_cpup((__be16 *)aad),
--                          data, data_len, mic);
--}
--
--static inline int
--ieee80211_aes_ccm_decrypt(struct crypto_aead *tfm,
--                        u8 *b_0, u8 *aad, u8 *data,
--                        size_t data_len, u8 *mic)
--{
--      return aead_decrypt(tfm, b_0, aad + 2,
--                          be16_to_cpup((__be16 *)aad),
--                          data, data_len, mic);
--}
--
--static inline void ieee80211_aes_key_free(struct crypto_aead *tfm)
--{
--      return aead_key_free(tfm);
--}
-+struct crypto_cipher *ieee80211_aes_key_setup_encrypt(const u8 key[],
-+                                                    size_t key_len,
-+                                                    size_t mic_len);
-+void ieee80211_aes_ccm_encrypt(struct crypto_cipher *tfm, u8 *b_0, u8 *aad,
-+                             u8 *data, size_t data_len, u8 *mic,
-+                             size_t mic_len);
-+int ieee80211_aes_ccm_decrypt(struct crypto_cipher *tfm, u8 *b_0, u8 *aad,
-+                            u8 *data, size_t data_len, u8 *mic,
-+                            size_t mic_len);
-+void ieee80211_aes_key_free(struct crypto_cipher *tfm);
- #endif /* AES_CCM_H */
---- /dev/null
-+++ b/net/mac80211/aes_gcm.c
-@@ -0,0 +1,109 @@
-+/*
-+ * Copyright 2014-2015, Qualcomm Atheros, Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/err.h>
-+#include <crypto/aead.h>
-+
-+#include <net/mac80211.h>
-+#include "key.h"
-+#include "aes_gcm.h"
-+
-+int ieee80211_aes_gcm_encrypt(struct crypto_aead *tfm, u8 *j_0, u8 *aad,
-+                            u8 *data, size_t data_len, u8 *mic)
-+{
-+      struct scatterlist sg[3];
-+      struct aead_request *aead_req;
-+      int reqsize = sizeof(*aead_req) + crypto_aead_reqsize(tfm);
-+      u8 *__aad;
-+
-+      aead_req = kzalloc(reqsize + GCM_AAD_LEN, GFP_ATOMIC);
-+      if (!aead_req)
-+              return -ENOMEM;
-+
-+      __aad = (u8 *)aead_req + reqsize;
-+      memcpy(__aad, aad, GCM_AAD_LEN);
-+
-+      sg_init_table(sg, 3);
-+      sg_set_buf(&sg[0], &__aad[2], be16_to_cpup((__be16 *)__aad));
-+      sg_set_buf(&sg[1], data, data_len);
-+      sg_set_buf(&sg[2], mic, IEEE80211_GCMP_MIC_LEN);
-+
-+      aead_request_set_tfm(aead_req, tfm);
-+      aead_request_set_crypt(aead_req, sg, sg, data_len, j_0);
-+      aead_request_set_ad(aead_req, sg[0].length);
-+
-+      crypto_aead_encrypt(aead_req);
-+      kzfree(aead_req);
-+      return 0;
-+}
-+
-+int ieee80211_aes_gcm_decrypt(struct crypto_aead *tfm, u8 *j_0, u8 *aad,
-+                            u8 *data, size_t data_len, u8 *mic)
-+{
-+      struct scatterlist sg[3];
-+      struct aead_request *aead_req;
-+      int reqsize = sizeof(*aead_req) + crypto_aead_reqsize(tfm);
-+      u8 *__aad;
-+      int err;
-+
-+      if (data_len == 0)
-+              return -EINVAL;
-+
-+      aead_req = kzalloc(reqsize + GCM_AAD_LEN, GFP_ATOMIC);
-+      if (!aead_req)
-+              return -ENOMEM;
-+
-+      __aad = (u8 *)aead_req + reqsize;
-+      memcpy(__aad, aad, GCM_AAD_LEN);
-+
-+      sg_init_table(sg, 3);
-+      sg_set_buf(&sg[0], &__aad[2], be16_to_cpup((__be16 *)__aad));
-+      sg_set_buf(&sg[1], data, data_len);
-+      sg_set_buf(&sg[2], mic, IEEE80211_GCMP_MIC_LEN);
-+
-+      aead_request_set_tfm(aead_req, tfm);
-+      aead_request_set_crypt(aead_req, sg, sg,
-+                             data_len + IEEE80211_GCMP_MIC_LEN, j_0);
-+      aead_request_set_ad(aead_req, sg[0].length);
-+
-+      err = crypto_aead_decrypt(aead_req);
-+      kzfree(aead_req);
-+
-+      return err;
-+}
-+
-+struct crypto_aead *ieee80211_aes_gcm_key_setup_encrypt(const u8 key[],
-+                                                      size_t key_len)
-+{
-+      struct crypto_aead *tfm;
-+      int err;
-+
-+      tfm = crypto_alloc_aead("gcm(aes)", 0, CRYPTO_ALG_ASYNC);
-+      if (IS_ERR(tfm))
-+              return tfm;
-+
-+      err = crypto_aead_setkey(tfm, key, key_len);
-+      if (err)
-+              goto free_aead;
-+      err = crypto_aead_setauthsize(tfm, IEEE80211_GCMP_MIC_LEN);
-+      if (err)
-+              goto free_aead;
-+
-+      return tfm;
-+
-+free_aead:
-+      crypto_free_aead(tfm);
-+      return ERR_PTR(err);
-+}
-+
-+void ieee80211_aes_gcm_key_free(struct crypto_aead *tfm)
-+{
-+      crypto_free_aead(tfm);
-+}
---- a/net/mac80211/aes_gcm.h
-+++ b/net/mac80211/aes_gcm.h
-@@ -9,38 +9,30 @@
- #ifndef AES_GCM_H
- #define AES_GCM_H
--#include "aead_api.h"
-+#include <linux/crypto.h>
--#define GCM_AAD_LEN   32
--
--static inline int ieee80211_aes_gcm_encrypt(struct crypto_aead *tfm,
--                                          u8 *j_0, u8 *aad,  u8 *data,
--                                          size_t data_len, u8 *mic)
-+static inline void
-+ieee80211_aes_gcm_encrypt(struct crypto_aead *tfm, u8 *j_0, u8 *aad,
-+                        u8 *data, size_t data_len, u8 *mic)
- {
--      return aead_encrypt(tfm, j_0, aad + 2,
--                          be16_to_cpup((__be16 *)aad),
--                          data, data_len, mic);
- }
--static inline int ieee80211_aes_gcm_decrypt(struct crypto_aead *tfm,
--                                          u8 *j_0, u8 *aad, u8 *data,
--                                          size_t data_len, u8 *mic)
-+static inline int
-+ieee80211_aes_gcm_decrypt(struct crypto_aead *tfm, u8 *j_0, u8 *aad,
-+                        u8 *data, size_t data_len, u8 *mic)
- {
--      return aead_decrypt(tfm, j_0, aad + 2,
--                          be16_to_cpup((__be16 *)aad),
--                          data, data_len, mic);
-+    return -EOPNOTSUPP;
- }
- static inline struct crypto_aead *
- ieee80211_aes_gcm_key_setup_encrypt(const u8 key[], size_t key_len)
- {
--      return aead_key_setup_encrypt("gcm(aes)", key,
--                                    key_len, IEEE80211_GCMP_MIC_LEN);
-+    return NULL;
- }
--static inline void ieee80211_aes_gcm_key_free(struct crypto_aead *tfm)
-+static inline void
-+ieee80211_aes_gcm_key_free(struct crypto_aead *tfm)
- {
--      return aead_key_free(tfm);
- }
- #endif /* AES_GCM_H */
---- a/net/mac80211/wpa.c
-+++ b/net/mac80211/wpa.c
-@@ -306,7 +306,8 @@ ieee80211_crypto_tkip_decrypt(struct iee
- }
--static void ccmp_special_blocks(struct sk_buff *skb, u8 *pn, u8 *b_0, u8 *aad)
-+static void ccmp_special_blocks(struct sk_buff *skb, u8 *pn, u8 *b_0, u8 *aad,
-+                              u16 data_len)
- {
-       __le16 mask_fc;
-       int a4_included, mgmt;
-@@ -336,14 +337,8 @@ static void ccmp_special_blocks(struct s
-       else
-               qos_tid = 0;
--      /* In CCM, the initial vectors (IV) used for CTR mode encryption and CBC
--       * mode authentication are not allowed to collide, yet both are derived
--       * from this vector b_0. We only set L := 1 here to indicate that the
--       * data size can be represented in (L+1) bytes. The CCM layer will take
--       * care of storing the data length in the top (L+1) bytes and setting
--       * and clearing the other bits as is required to derive the two IVs.
--       */
--      b_0[0] = 0x1;
-+      /* First block, b_0 */
-+      b_0[0] = 0x59; /* flags: Adata: 1, M: 011, L: 001 */
-       /* Nonce: Nonce Flags | A2 | PN
-        * Nonce Flags: Priority (b0..b3) | Management (b4) | Reserved (b5..b7)
-@@ -351,6 +346,8 @@ static void ccmp_special_blocks(struct s
-       b_0[1] = qos_tid | (mgmt << 4);
-       memcpy(&b_0[2], hdr->addr2, ETH_ALEN);
-       memcpy(&b_0[8], pn, IEEE80211_CCMP_PN_LEN);
-+      /* l(m) */
-+      put_unaligned_be16(data_len, &b_0[14]);
-       /* AAD (extra authenticate-only data) / masked 802.11 header
-        * FC | A1 | A2 | A3 | SC | [A4] | [QC] */
-@@ -407,7 +404,7 @@ static int ccmp_encrypt_skb(struct ieee8
-       u8 *pos;
-       u8 pn[6];
-       u64 pn64;
--      u8 aad[CCM_AAD_LEN];
-+      u8 aad[2 * AES_BLOCK_SIZE];
-       u8 b_0[AES_BLOCK_SIZE];
-       if (info->control.hw_key &&
-@@ -462,9 +459,11 @@ static int ccmp_encrypt_skb(struct ieee8
-               return 0;
-       pos += IEEE80211_CCMP_HDR_LEN;
--      ccmp_special_blocks(skb, pn, b_0, aad);
--      return ieee80211_aes_ccm_encrypt(key->u.ccmp.tfm, b_0, aad, pos, len,
--                                       skb_put(skb, mic_len));
-+      ccmp_special_blocks(skb, pn, b_0, aad, len);
-+      ieee80211_aes_ccm_encrypt(key->u.ccmp.tfm, b_0, aad, pos, len,
-+                                skb_put(skb, mic_len), mic_len);
-+
-+      return 0;
- }
-@@ -537,13 +536,13 @@ ieee80211_crypto_ccmp_decrypt(struct iee
-                       u8 aad[2 * AES_BLOCK_SIZE];
-                       u8 b_0[AES_BLOCK_SIZE];
-                       /* hardware didn't decrypt/verify MIC */
--                      ccmp_special_blocks(skb, pn, b_0, aad);
-+                      ccmp_special_blocks(skb, pn, b_0, aad, data_len);
-                       if (ieee80211_aes_ccm_decrypt(
-                                   key->u.ccmp.tfm, b_0, aad,
-                                   skb->data + hdrlen + IEEE80211_CCMP_HDR_LEN,
-                                   data_len,
--                                  skb->data + skb->len - mic_len))
-+                                  skb->data + skb->len - mic_len, mic_len))
-                               return RX_DROP_UNUSABLE;
-               }
-@@ -639,7 +638,7 @@ static int gcmp_encrypt_skb(struct ieee8
-       u8 *pos;
-       u8 pn[6];
-       u64 pn64;
--      u8 aad[GCM_AAD_LEN];
-+      u8 aad[2 * AES_BLOCK_SIZE];
-       u8 j_0[AES_BLOCK_SIZE];
-       if (info->control.hw_key &&
-@@ -696,8 +695,10 @@ static int gcmp_encrypt_skb(struct ieee8
-       pos += IEEE80211_GCMP_HDR_LEN;
-       gcmp_special_blocks(skb, pn, j_0, aad);
--      return ieee80211_aes_gcm_encrypt(key->u.gcmp.tfm, j_0, aad, pos, len,
--                                       skb_put(skb, IEEE80211_GCMP_MIC_LEN));
-+      ieee80211_aes_gcm_encrypt(key->u.gcmp.tfm, j_0, aad, pos, len,
-+                                skb_put(skb, IEEE80211_GCMP_MIC_LEN));
-+
-+      return 0;
- }
- ieee80211_tx_result
-@@ -1121,9 +1122,9 @@ ieee80211_crypto_aes_gmac_encrypt(struct
-       struct ieee80211_key *key = tx->key;
-       struct ieee80211_mmie_16 *mmie;
-       struct ieee80211_hdr *hdr;
--      u8 aad[GMAC_AAD_LEN];
-+      u8 aad[20];
-       u64 pn64;
--      u8 nonce[GMAC_NONCE_LEN];
-+      u8 nonce[12];
-       if (WARN_ON(skb_queue_len(&tx->skbs) != 1))
-               return TX_DROP;
-@@ -1169,7 +1170,7 @@ ieee80211_crypto_aes_gmac_decrypt(struct
-       struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
-       struct ieee80211_key *key = rx->key;
-       struct ieee80211_mmie_16 *mmie;
--      u8 aad[GMAC_AAD_LEN], mic[GMAC_MIC_LEN], ipn[6], nonce[GMAC_NONCE_LEN];
-+      u8 aad[20], mic[16], ipn[6], nonce[12];
-       struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
-       if (!ieee80211_is_mgmt(hdr->frame_control))
---- /dev/null
-+++ b/net/mac80211/aes_ccm.c
-@@ -0,0 +1,144 @@
-+/*
-+ * Copyright 2003-2004, Instant802 Networks, Inc.
-+ * Copyright 2005-2006, Devicescape Software, Inc.
-+ *
-+ * Rewrite: Copyright (C) 2013 Linaro Ltd <ard.biesheuvel@linaro.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/err.h>
-+#include <crypto/aead.h>
-+#include <crypto/aes.h>
-+
-+#include <net/mac80211.h>
-+#include "key.h"
-+#include "aes_ccm.h"
-+
-+static void aes_ccm_prepare(struct crypto_cipher *tfm, u8 *b_0, u8 *aad, u8 *s_0,
-+                          u8 *a, u8 *b)
-+{
-+      int i;
-+
-+      crypto_cipher_encrypt_one(tfm, b, b_0);
-+
-+      /* Extra Authenticate-only data (always two AES blocks) */
-+      for (i = 0; i < AES_BLOCK_SIZE; i++)
-+              aad[i] ^= b[i];
-+      crypto_cipher_encrypt_one(tfm, b, aad);
-+
-+      aad += AES_BLOCK_SIZE;
-+
-+      for (i = 0; i < AES_BLOCK_SIZE; i++)
-+              aad[i] ^= b[i];
-+      crypto_cipher_encrypt_one(tfm, a, aad);
-+
-+      /* Mask out bits from auth-only-b_0 */
-+      b_0[0] &= 0x07;
-+
-+      /* S_0 is used to encrypt T (= MIC) */
-+      b_0[14] = 0;
-+      b_0[15] = 0;
-+      crypto_cipher_encrypt_one(tfm, s_0, b_0);
-+}
-+
-+
-+void ieee80211_aes_ccm_encrypt(struct crypto_cipher *tfm, u8 *b_0, u8 *aad,
-+                             u8 *data, size_t data_len, u8 *mic,
-+                             size_t mic_len)
-+{
-+      int i, j, last_len, num_blocks;
-+      u8 b[AES_BLOCK_SIZE];
-+      u8 s_0[AES_BLOCK_SIZE];
-+      u8 e[AES_BLOCK_SIZE];
-+      u8 *pos, *cpos;
-+
-+      num_blocks = DIV_ROUND_UP(data_len, AES_BLOCK_SIZE);
-+      last_len = data_len % AES_BLOCK_SIZE;
-+      aes_ccm_prepare(tfm, b_0, aad, s_0, b, b);
-+
-+      /* Process payload blocks */
-+      pos = data;
-+      cpos = data;
-+      for (j = 1; j <= num_blocks; j++) {
-+              int blen = (j == num_blocks && last_len) ?
-+                      last_len : AES_BLOCK_SIZE;
-+
-+              /* Authentication followed by encryption */
-+              for (i = 0; i < blen; i++)
-+                      b[i] ^= pos[i];
-+              crypto_cipher_encrypt_one(tfm, b, b);
-+
-+              b_0[14] = (j >> 8) & 0xff;
-+              b_0[15] = j & 0xff;
-+              crypto_cipher_encrypt_one(tfm, e, b_0);
-+              for (i = 0; i < blen; i++)
-+                      *cpos++ = *pos++ ^ e[i];
-+      }
-+
-+      for (i = 0; i < mic_len; i++)
-+              mic[i] = b[i] ^ s_0[i];
-+}
-+
-+int ieee80211_aes_ccm_decrypt(struct crypto_cipher *tfm, u8 *b_0, u8 *aad,
-+                            u8 *data, size_t data_len, u8 *mic,
-+                            size_t mic_len)
-+{
-+      int i, j, last_len, num_blocks;
-+      u8 *pos, *cpos;
-+      u8 a[AES_BLOCK_SIZE];
-+      u8 b[AES_BLOCK_SIZE];
-+      u8 s_0[AES_BLOCK_SIZE];
-+
-+      num_blocks = DIV_ROUND_UP(data_len, AES_BLOCK_SIZE);
-+      last_len = data_len % AES_BLOCK_SIZE;
-+      aes_ccm_prepare(tfm, b_0, aad, s_0, a, b);
-+
-+      /* Process payload blocks */
-+      cpos = data;
-+      pos = data;
-+      for (j = 1; j <= num_blocks; j++) {
-+              int blen = (j == num_blocks && last_len) ?
-+                      last_len : AES_BLOCK_SIZE;
-+
-+              /* Decryption followed by authentication */
-+              b_0[14] = (j >> 8) & 0xff;
-+              b_0[15] = j & 0xff;
-+              crypto_cipher_encrypt_one(tfm, b, b_0);
-+              for (i = 0; i < blen; i++) {
-+                      *pos = *cpos++ ^ b[i];
-+                      a[i] ^= *pos++;
-+              }
-+              crypto_cipher_encrypt_one(tfm, a, a);
-+      }
-+
-+      for (i = 0; i < mic_len; i++) {
-+              if ((mic[i] ^ s_0[i]) != a[i])
-+                      return -1;
-+      }
-+
-+      return 0;
-+}
-+
-+struct crypto_cipher *ieee80211_aes_key_setup_encrypt(const u8 key[],
-+                                                    size_t key_len,
-+                                                    size_t mic_len)
-+{
-+      struct crypto_cipher *tfm;
-+
-+      tfm = crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC);
-+      if (!IS_ERR(tfm))
-+              crypto_cipher_setkey(tfm, key, key_len);
-+
-+      return tfm;
-+}
-+
-+
-+void ieee80211_aes_key_free(struct crypto_cipher *tfm)
-+{
-+      crypto_free_cipher(tfm);
-+}
---- a/net/mac80211/Kconfig
-+++ b/net/mac80211/Kconfig
-@@ -5,8 +5,6 @@ config MAC80211
-       depends on CRYPTO
-       depends on CRYPTO_ARC4
-       depends on CRYPTO_AES
--      depends on CRYPTO_CCM
--      depends on CRYPTO_GCM
-       depends on CRYPTO_CMAC
-       depends on CRC32
-       ---help---
---- a/net/mac80211/aes_gmac.h
-+++ b/net/mac80211/aes_gmac.h
-@@ -15,10 +15,22 @@
- #define GMAC_MIC_LEN  16
- #define GMAC_NONCE_LEN        12
--struct crypto_aead *ieee80211_aes_gmac_key_setup(const u8 key[],
--                                               size_t key_len);
--int ieee80211_aes_gmac(struct crypto_aead *tfm, const u8 *aad, u8 *nonce,
--                     const u8 *data, size_t data_len, u8 *mic);
--void ieee80211_aes_gmac_key_free(struct crypto_aead *tfm);
-+static inline struct crypto_aead *
-+ieee80211_aes_gmac_key_setup(const u8 key[], size_t key_len)
-+{
-+      return NULL;
-+}
-+
-+static inline int
-+ieee80211_aes_gmac(struct crypto_aead *tfm, const u8 *aad, u8 *nonce,
-+                 const u8 *data, size_t data_len, u8 *mic)
-+{
-+      return -EOPNOTSUPP;
-+}
-+
-+static inline void
-+ieee80211_aes_gmac_key_free(struct crypto_aead *tfm)
-+{
-+}
- #endif /* AES_GMAC_H */
---- a/net/mac80211/key.h
-+++ b/net/mac80211/key.h
-@@ -88,7 +88,7 @@ struct ieee80211_key {
-                        * Management frames.
-                        */
-                       u8 rx_pn[IEEE80211_NUM_TIDS + 1][IEEE80211_CCMP_PN_LEN];
--                      struct crypto_aead *tfm;
-+                      struct crypto_cipher *tfm;
-                       u32 replays; /* dot11RSNAStatsCCMPReplays */
-               } ccmp;
-               struct {
diff --git a/package/kernel/mac80211/patches/110-mac80211_keep_keys_on_stop_ap.patch b/package/kernel/mac80211/patches/110-mac80211_keep_keys_on_stop_ap.patch
deleted file mode 100644 (file)
index 3b1fcdf..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnects
-
---- a/net/mac80211/cfg.c
-+++ b/net/mac80211/cfg.c
-@@ -1058,7 +1058,6 @@ static int ieee80211_stop_ap(struct wiph
-       sdata->u.ap.driver_smps_mode = IEEE80211_SMPS_OFF;
-       __sta_info_flush(sdata, true);
--      ieee80211_free_keys(sdata, true);
-       sdata->vif.bss_conf.enable_beacon = false;
-       sdata->vif.bss_conf.ssid_len = 0;
diff --git a/package/kernel/mac80211/patches/120-cfg80211_allow_perm_addr_change.patch b/package/kernel/mac80211/patches/120-cfg80211_allow_perm_addr_change.patch
deleted file mode 100644 (file)
index ffd8807..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
---- a/net/wireless/sysfs.c
-+++ b/net/wireless/sysfs.c
-@@ -24,18 +24,35 @@ static inline struct cfg80211_registered
-       return container_of(dev, struct cfg80211_registered_device, wiphy.dev);
- }
--#define SHOW_FMT(name, fmt, member)                                   \
-+#define SHOW_FMT(name, fmt, member, mode)                             \
- static ssize_t name ## _show(struct device *dev,                      \
-                             struct device_attribute *attr,            \
-                             char *buf)                                \
- {                                                                     \
-       return sprintf(buf, fmt "\n", dev_to_rdev(dev)->member);        \
- }                                                                     \
--static DEVICE_ATTR_RO(name)
-+static DEVICE_ATTR_##mode(name)
--SHOW_FMT(index, "%d", wiphy_idx);
--SHOW_FMT(macaddress, "%pM", wiphy.perm_addr);
--SHOW_FMT(address_mask, "%pM", wiphy.addr_mask);
-+static ssize_t macaddress_store(struct device *dev,
-+                              struct device_attribute *attr,
-+                              const char *buf, size_t len)
-+{
-+      u8 mac[ETH_ALEN];
-+
-+      if (!mac_pton(buf, mac))
-+              return -EINVAL;
-+
-+      if (buf[3 * ETH_ALEN - 1] && buf[3 * ETH_ALEN - 1] != '\n')
-+              return -EINVAL;
-+
-+      memcpy(dev_to_rdev(dev)->wiphy.perm_addr, mac, ETH_ALEN);
-+
-+      return strnlen(buf, len);
-+}
-+
-+SHOW_FMT(index, "%d", wiphy_idx, RO);
-+SHOW_FMT(macaddress, "%pM", wiphy.perm_addr, RW);
-+SHOW_FMT(address_mask, "%pM", wiphy.addr_mask, RO);
- static ssize_t name_show(struct device *dev,
-                        struct device_attribute *attr,
diff --git a/package/kernel/mac80211/patches/130-disable-fils.patch b/package/kernel/mac80211/patches/130-disable-fils.patch
deleted file mode 100644 (file)
index 1f03589..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-Disable FILS support, since it pulls in crypto hash support
-
---- a/net/mac80211/fils_aead.h
-+++ b/net/mac80211/fils_aead.h
-@@ -10,7 +10,7 @@
- #ifndef FILS_AEAD_H
- #define FILS_AEAD_H
--#if LINUX_VERSION_IS_GEQ(4,3,0)
-+#if 0 /* LINUX_VERSION_IS_GEQ(4,3,0) */
- int fils_encrypt_assoc_req(struct sk_buff *skb,
-                          struct ieee80211_mgd_assoc_data *assoc_data);
- int fils_decrypt_assoc_resp(struct ieee80211_sub_if_data *sdata,
---- a/net/mac80211/fils_aead.c
-+++ b/net/mac80211/fils_aead.c
-@@ -1,4 +1,4 @@
--#if LINUX_VERSION_IS_GEQ(4,3,0)
-+#if 0 /* LINUX_VERSION_IS_GEQ(4,3,0) */
- /*
-  * FILS AEAD for (Re)Association Request/Response frames
-  * Copyright 2016, Qualcomm Atheros, Inc.
---- a/net/mac80211/main.c
-+++ b/net/mac80211/main.c
-@@ -550,7 +550,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
-                          NL80211_FEATURE_MAC_ON_CREATE |
-                          NL80211_FEATURE_USERSPACE_MPM |
-                          NL80211_FEATURE_FULL_AP_CLIENT_STATE;
--#if LINUX_VERSION_IS_GEQ(4,3,0)
-+#if 0 /* LINUX_VERSION_IS_GEQ(4,3,0) */
-       wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA);
- #endif
diff --git a/package/kernel/mac80211/patches/131-Revert-mac80211-aes-cmac-switch-to-shash-CMAC-driver.patch b/package/kernel/mac80211/patches/131-Revert-mac80211-aes-cmac-switch-to-shash-CMAC-driver.patch
deleted file mode 100644 (file)
index d138b2c..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Sat, 7 Oct 2017 09:37:28 +0200
-Subject: [PATCH] Revert "mac80211: aes-cmac: switch to shash CMAC
- driver"
-
-This reverts commit 26717828b75dd5c46e97f7f4a9b937d038bb2852.
-Reduces mac80211 dependencies for LEDE
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/mac80211/aes_cmac.c
-+++ b/net/mac80211/aes_cmac.c
-@@ -22,50 +22,126 @@
- #define CMAC_TLEN_256 16 /* CMAC TLen = 128 bits (16 octets) */
- #define AAD_LEN 20
--static const u8 zero[CMAC_TLEN_256];
--void ieee80211_aes_cmac(struct crypto_shash *tfm, const u8 *aad,
--                      const u8 *data, size_t data_len, u8 *mic)
-+void gf_mulx(u8 *pad)
-+{
-+      int i, carry;
-+
-+      carry = pad[0] & 0x80;
-+      for (i = 0; i < AES_BLOCK_SIZE - 1; i++)
-+              pad[i] = (pad[i] << 1) | (pad[i + 1] >> 7);
-+      pad[AES_BLOCK_SIZE - 1] <<= 1;
-+      if (carry)
-+              pad[AES_BLOCK_SIZE - 1] ^= 0x87;
-+}
-+
-+void aes_cmac_vector(struct crypto_cipher *tfm, size_t num_elem,
-+                   const u8 *addr[], const size_t *len, u8 *mac,
-+                   size_t mac_len)
- {
--      SHASH_DESC_ON_STACK(desc, tfm);
--      u8 out[AES_BLOCK_SIZE];
-+      u8 cbc[AES_BLOCK_SIZE], pad[AES_BLOCK_SIZE];
-+      const u8 *pos, *end;
-+      size_t i, e, left, total_len;
-+
-+      memset(cbc, 0, AES_BLOCK_SIZE);
-+
-+      total_len = 0;
-+      for (e = 0; e < num_elem; e++)
-+              total_len += len[e];
-+      left = total_len;
-+
-+      e = 0;
-+      pos = addr[0];
-+      end = pos + len[0];
-+
-+      while (left >= AES_BLOCK_SIZE) {
-+              for (i = 0; i < AES_BLOCK_SIZE; i++) {
-+                      cbc[i] ^= *pos++;
-+                      if (pos >= end) {
-+                              e++;
-+                              pos = addr[e];
-+                              end = pos + len[e];
-+                      }
-+              }
-+              if (left > AES_BLOCK_SIZE)
-+                      crypto_cipher_encrypt_one(tfm, cbc, cbc);
-+              left -= AES_BLOCK_SIZE;
-+      }
-+
-+      memset(pad, 0, AES_BLOCK_SIZE);
-+      crypto_cipher_encrypt_one(tfm, pad, pad);
-+      gf_mulx(pad);
-+
-+      if (left || total_len == 0) {
-+              for (i = 0; i < left; i++) {
-+                      cbc[i] ^= *pos++;
-+                      if (pos >= end) {
-+                              e++;
-+                              pos = addr[e];
-+                              end = pos + len[e];
-+                      }
-+              }
-+              cbc[left] ^= 0x80;
-+              gf_mulx(pad);
-+      }
-+
-+      for (i = 0; i < AES_BLOCK_SIZE; i++)
-+              pad[i] ^= cbc[i];
-+      crypto_cipher_encrypt_one(tfm, pad, pad);
-+      memcpy(mac, pad, mac_len);
-+}
--      desc->tfm = tfm;
--      crypto_shash_init(desc);
--      crypto_shash_update(desc, aad, AAD_LEN);
--      crypto_shash_update(desc, data, data_len - CMAC_TLEN);
--      crypto_shash_finup(desc, zero, CMAC_TLEN, out);
-+void ieee80211_aes_cmac(struct crypto_cipher *tfm, const u8 *aad,
-+                      const u8 *data, size_t data_len, u8 *mic)
-+{
-+      const u8 *addr[3];
-+      size_t len[3];
-+      u8 zero[CMAC_TLEN];
-+
-+      memset(zero, 0, CMAC_TLEN);
-+      addr[0] = aad;
-+      len[0] = AAD_LEN;
-+      addr[1] = data;
-+      len[1] = data_len - CMAC_TLEN;
-+      addr[2] = zero;
-+      len[2] = CMAC_TLEN;
--      memcpy(mic, out, CMAC_TLEN);
-+      aes_cmac_vector(tfm, 3, addr, len, mic, CMAC_TLEN);
- }
--void ieee80211_aes_cmac_256(struct crypto_shash *tfm, const u8 *aad,
-+void ieee80211_aes_cmac_256(struct crypto_cipher *tfm, const u8 *aad,
-                           const u8 *data, size_t data_len, u8 *mic)
- {
--      SHASH_DESC_ON_STACK(desc, tfm);
-+      const u8 *addr[3];
-+      size_t len[3];
-+      u8 zero[CMAC_TLEN_256];
-+
-+      memset(zero, 0, CMAC_TLEN_256);
-+      addr[0] = aad;
-+      len[0] = AAD_LEN;
-+      addr[1] = data;
-+      len[1] = data_len - CMAC_TLEN_256;
-+      addr[2] = zero;
-+      len[2] = CMAC_TLEN_256;
--      desc->tfm = tfm;
--
--      crypto_shash_init(desc);
--      crypto_shash_update(desc, aad, AAD_LEN);
--      crypto_shash_update(desc, data, data_len - CMAC_TLEN_256);
--      crypto_shash_finup(desc, zero, CMAC_TLEN_256, mic);
-+      aes_cmac_vector(tfm, 3, addr, len, mic, CMAC_TLEN_256);
- }
--struct crypto_shash *ieee80211_aes_cmac_key_setup(const u8 key[],
--                                                size_t key_len)
-+struct crypto_cipher *ieee80211_aes_cmac_key_setup(const u8 key[],
-+                                                 size_t key_len)
- {
--      struct crypto_shash *tfm;
-+      struct crypto_cipher *tfm;
--      tfm = crypto_alloc_shash("cmac(aes)", 0, 0);
-+      tfm = crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC);
-       if (!IS_ERR(tfm))
--              crypto_shash_setkey(tfm, key, key_len);
-+              crypto_cipher_setkey(tfm, key, key_len);
-       return tfm;
- }
--void ieee80211_aes_cmac_key_free(struct crypto_shash *tfm)
-+
-+void ieee80211_aes_cmac_key_free(struct crypto_cipher *tfm)
- {
--      crypto_free_shash(tfm);
-+      crypto_free_cipher(tfm);
- }
---- a/net/mac80211/aes_cmac.h
-+++ b/net/mac80211/aes_cmac.h
-@@ -10,14 +10,13 @@
- #define AES_CMAC_H
- #include <linux/crypto.h>
--#include <crypto/hash.h>
--struct crypto_shash *ieee80211_aes_cmac_key_setup(const u8 key[],
--                                                size_t key_len);
--void ieee80211_aes_cmac(struct crypto_shash *tfm, const u8 *aad,
-+struct crypto_cipher *ieee80211_aes_cmac_key_setup(const u8 key[],
-+                                                 size_t key_len);
-+void ieee80211_aes_cmac(struct crypto_cipher *tfm, const u8 *aad,
-                       const u8 *data, size_t data_len, u8 *mic);
--void ieee80211_aes_cmac_256(struct crypto_shash *tfm, const u8 *aad,
-+void ieee80211_aes_cmac_256(struct crypto_cipher *tfm, const u8 *aad,
-                           const u8 *data, size_t data_len, u8 *mic);
--void ieee80211_aes_cmac_key_free(struct crypto_shash *tfm);
-+void ieee80211_aes_cmac_key_free(struct crypto_cipher *tfm);
- #endif /* AES_CMAC_H */
---- a/net/mac80211/key.h
-+++ b/net/mac80211/key.h
-@@ -93,7 +93,7 @@ struct ieee80211_key {
-               } ccmp;
-               struct {
-                       u8 rx_pn[IEEE80211_CMAC_PN_LEN];
--                      struct crypto_shash *tfm;
-+                      struct crypto_cipher *tfm;
-                       u32 replays; /* dot11RSNAStatsCMACReplays */
-                       u32 icverrors; /* dot11RSNAStatsCMACICVErrors */
-               } aes_cmac;
diff --git a/package/kernel/mac80211/patches/132-mac80211-remove-cmac-dependency.patch b/package/kernel/mac80211/patches/132-mac80211-remove-cmac-dependency.patch
deleted file mode 100644 (file)
index 9d185e6..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/net/mac80211/Kconfig
-+++ b/net/mac80211/Kconfig
-@@ -5,7 +5,6 @@ config MAC80211
-       depends on CRYPTO
-       depends on CRYPTO_ARC4
-       depends on CRYPTO_AES
--      depends on CRYPTO_CMAC
-       depends on CRC32
-       ---help---
-         This option enables the hardware independent IEEE 802.11
diff --git a/package/kernel/mac80211/patches/140-tweak-TSQ-setting.patch b/package/kernel/mac80211/patches/140-tweak-TSQ-setting.patch
deleted file mode 100644 (file)
index 6e9a07a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -3750,6 +3750,12 @@ out:
- netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
-                                      struct net_device *dev)
- {
-+#if defined(sk_pacing_shift) || LINUX_VERSION_IS_GEQ(4,15,0)
-+      if (skb->sk && sk_fullsock(skb->sk) &&
-+          skb->sk->sk_pacing_shift != 6)
-+              skb->sk->sk_pacing_shift = 6;
-+#endif
-+
-       if (unlikely(ieee80211_multicast_to_unicast(skb, dev))) {
-               struct sk_buff_head queue;
diff --git a/package/kernel/mac80211/patches/150-disable_addr_notifier.patch b/package/kernel/mac80211/patches/150-disable_addr_notifier.patch
deleted file mode 100644 (file)
index 781dd3c..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
---- a/net/mac80211/main.c
-+++ b/net/mac80211/main.c
-@@ -292,7 +292,7 @@ void ieee80211_restart_hw(struct ieee802
- }
- EXPORT_SYMBOL(ieee80211_restart_hw);
--#ifdef CONFIG_INET
-+#ifdef __disabled__CONFIG_INET
- static int ieee80211_ifa_changed(struct notifier_block *nb,
-                                unsigned long data, void *arg)
- {
-@@ -351,7 +351,7 @@ static int ieee80211_ifa_changed(struct
- }
- #endif
--#if IS_ENABLED(CONFIG_IPV6)
-+#if IS_ENABLED(__disabled__CONFIG_IPV6)
- static int ieee80211_ifa6_changed(struct notifier_block *nb,
-                                 unsigned long data, void *arg)
- {
-@@ -1114,14 +1114,14 @@ int ieee80211_register_hw(struct ieee802
-       if (result)
-               goto fail_flows;
--#ifdef CONFIG_INET
-+#ifdef __disabled__CONFIG_INET
-       local->ifa_notifier.notifier_call = ieee80211_ifa_changed;
-       result = register_inetaddr_notifier(&local->ifa_notifier);
-       if (result)
-               goto fail_ifa;
- #endif
--#if IS_ENABLED(CONFIG_IPV6)
-+#if IS_ENABLED(__disabled__CONFIG_IPV6)
-       local->ifa6_notifier.notifier_call = ieee80211_ifa6_changed;
-       result = register_inet6addr_notifier(&local->ifa6_notifier);
-       if (result)
-@@ -1130,13 +1130,13 @@ int ieee80211_register_hw(struct ieee802
-       return 0;
--#if IS_ENABLED(CONFIG_IPV6)
-+#if IS_ENABLED(__disabled__CONFIG_IPV6)
-  fail_ifa6:
--#ifdef CONFIG_INET
-+#ifdef __disabled__CONFIG_INET
-       unregister_inetaddr_notifier(&local->ifa_notifier);
- #endif
- #endif
--#if defined(CONFIG_INET) || defined(CONFIG_IPV6)
-+#if defined(__disabled__CONFIG_INET) || defined(__disabled__CONFIG_IPV6)
-  fail_ifa:
- #endif
-       ieee80211_txq_teardown_flows(local);
-@@ -1166,10 +1166,10 @@ void ieee80211_unregister_hw(struct ieee
-       tasklet_kill(&local->tx_pending_tasklet);
-       tasklet_kill(&local->tasklet);
--#ifdef CONFIG_INET
-+#ifdef __disabled__CONFIG_INET
-       unregister_inetaddr_notifier(&local->ifa_notifier);
- #endif
--#if IS_ENABLED(CONFIG_IPV6)
-+#if IS_ENABLED(__disabled__CONFIG_IPV6)
-       unregister_inet6addr_notifier(&local->ifa6_notifier);
- #endif
diff --git a/package/kernel/mac80211/patches/160-ath10k-search-all-IEs-for-variant-before-falling-back.patch b/package/kernel/mac80211/patches/160-ath10k-search-all-IEs-for-variant-before-falling-back.patch
deleted file mode 100644 (file)
index 357b006..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-From: Thomas Hebb <tommyhebb@gmail.com>
-Subject: [PATCH] ath10k: search all IEs for variant before falling back
-Date: Wed, 21 Feb 2018 11:43:39 -0500
-
-commit f2593cb1b291 ("ath10k: Search SMBIOS for OEM board file
-extension") added a feature to ath10k that allows Board Data File
-(BDF) conflicts between multiple devices that use the same device IDs
-but have different calibration requirements to be resolved by allowing
-a "variant" string to be stored in SMBIOS [and later device tree, added
-by commit d06f26c5c8a4 ("ath10k: search DT for qcom,ath10k-calibration-
-variant")] that gets appended to the ID stored in board-2.bin.
-
-This original patch had a regression, however. Namely that devices with
-a variant present in SMBIOS that didn't need custom BDFs could no longer
-find the default BDF, which has no variant appended. The patch was
-reverted and re-applied with a fix for this issue in commit 1657b8f84ed9
-("search SMBIOS for OEM board file extension").
-
-But the fix to fall back to a default BDF introduced another issue: the
-driver currently parses IEs in board-2.bin one by one, and for each one
-it first checks to see if it matches the ID with the variant appended.
-If it doesn't, it checks to see if it matches the "fallback" ID with no
-variant. If a matching BDF is found at any point during this search, the
-search is terminated and that BDF is used. The issue is that it's very
-possible (and is currently the case for board-2.bin files present in the
-ath10k-firmware repository) for the default BDF to occur in an earlier
-IE than the variant-specific BDF. In this case, the current code will
-happily choose the default BDF even though a better-matching BDF is
-present later in the file.
-
-This patch fixes the issue by first searching the entire file for the ID
-with variant, and searching for the fallback ID only if that search
-fails. It also includes some code cleanup in the area, as
-ath10k_core_fetch_board_data_api_n() no longer does its own string
-mangling to remove the variant from an ID, instead leaving that job to a
-new flag passed to ath10k_core_create_board_name().
-
-I've tested this patch on a QCA4019 and verified that the driver behaves
-correctly for 1) both fallback and variant BDFs present, 2) only fallback
-BDF present, and 3) no matching BDFs present.
-
-Fixes: 1657b8f84ed9 ("ath10k: search SMBIOS for OEM board file extension")
-Signed-off-by: Thomas Hebb <tommyhebb@gmail.com>
----
- drivers/net/wireless/ath/ath10k/core.c | 134 ++++++++++++++++++---------------
- 1 file changed, 72 insertions(+), 62 deletions(-)
-
---- a/drivers/net/wireless/ath/ath10k/core.c
-+++ b/drivers/net/wireless/ath/ath10k/core.c
-@@ -1132,14 +1132,61 @@ out:
-       return ret;
- }
-+static int ath10k_core_search_bd(struct ath10k *ar,
-+                               const char *boardname,
-+                               const u8 *data,
-+                               size_t len)
-+{
-+      size_t ie_len;
-+      struct ath10k_fw_ie *hdr;
-+      int ret = -ENOENT, ie_id;
-+
-+      while (len > sizeof(struct ath10k_fw_ie)) {
-+              hdr = (struct ath10k_fw_ie *)data;
-+              ie_id = le32_to_cpu(hdr->id);
-+              ie_len = le32_to_cpu(hdr->len);
-+
-+              len -= sizeof(*hdr);
-+              data = hdr->data;
-+
-+              if (len < ALIGN(ie_len, 4)) {
-+                      ath10k_err(ar, "invalid length for board ie_id %d ie_len %zu len %zu\n",
-+                                 ie_id, ie_len, len);
-+                      return -EINVAL;
-+              }
-+
-+              switch (ie_id) {
-+              case ATH10K_BD_IE_BOARD:
-+                      ret = ath10k_core_parse_bd_ie_board(ar, data, ie_len,
-+                                                          boardname);
-+                      if (ret == -ENOENT)
-+                              /* no match found, continue */
-+                              break;
-+
-+                      /* either found or error, so stop searching */
-+                      goto out;
-+              }
-+
-+              /* jump over the padding */
-+              ie_len = ALIGN(ie_len, 4);
-+
-+              len -= ie_len;
-+              data += ie_len;
-+      }
-+
-+out:
-+      /* return result of parse_bd_ie_board() or -ENOENT */
-+      return ret;
-+}
-+
- static int ath10k_core_fetch_board_data_api_n(struct ath10k *ar,
-                                             const char *boardname,
-+                                            const char *fallback_boardname,
-                                             const char *filename)
- {
--      size_t len, magic_len, ie_len;
--      struct ath10k_fw_ie *hdr;
-+      size_t len, magic_len;
-       const u8 *data;
--      int ret, ie_id;
-+      int ret;
-       ar->normal_mode_fw.board = ath10k_fetch_fw_file(ar,
-                                                       ar->hw_params.fw.dir,
-@@ -1177,69 +1224,23 @@ static int ath10k_core_fetch_board_data_
-       data += magic_len;
-       len -= magic_len;
--      while (len > sizeof(struct ath10k_fw_ie)) {
--              hdr = (struct ath10k_fw_ie *)data;
--              ie_id = le32_to_cpu(hdr->id);
--              ie_len = le32_to_cpu(hdr->len);
--
--              len -= sizeof(*hdr);
--              data = hdr->data;
--
--              if (len < ALIGN(ie_len, 4)) {
--                      ath10k_err(ar, "invalid length for board ie_id %d ie_len %zu len %zu\n",
--                                 ie_id, ie_len, len);
--                      ret = -EINVAL;
--                      goto err;
--              }
-+      /* attempt to find boardname in the IE list */
-+      ret = ath10k_core_search_bd(ar, boardname, data, len);
--              switch (ie_id) {
--              case ATH10K_BD_IE_BOARD:
--                      ret = ath10k_core_parse_bd_ie_board(ar, data, ie_len,
--                                                          boardname);
--                      if (ret == -ENOENT && ar->id.bdf_ext[0] != '\0') {
--                              /* try default bdf if variant was not found */
--                              char *s, *v = ",variant=";
--                              char boardname2[100];
--
--                              strlcpy(boardname2, boardname,
--                                      sizeof(boardname2));
--
--                              s = strstr(boardname2, v);
--                              if (s)
--                                      *s = '\0';  /* strip ",variant=%s" */
--
--                              ret = ath10k_core_parse_bd_ie_board(ar, data,
--                                                                  ie_len,
--                                                                  boardname2);
--                      }
-+      /* if we didn't find it and have a fallback name, try that */
-+      if (ret == -ENOENT && fallback_boardname)
-+              ret = ath10k_core_search_bd(ar, fallback_boardname, data, len);
--                      if (ret == -ENOENT)
--                              /* no match found, continue */
--                              break;
--                      else if (ret)
--                              /* there was an error, bail out */
--                              goto err;
--
--                      /* board data found */
--                      goto out;
--              }
--
--              /* jump over the padding */
--              ie_len = ALIGN(ie_len, 4);
--
--              len -= ie_len;
--              data += ie_len;
--      }
--
--out:
--      if (!ar->normal_mode_fw.board_data || !ar->normal_mode_fw.board_len) {
-+      if (ret == -ENOENT) {
-               ath10k_err(ar,
-                          "failed to fetch board data for %s from %s/%s\n",
-                          boardname, ar->hw_params.fw.dir, filename);
-               ret = -ENODATA;
--              goto err;
-       }
-+      if (ret)
-+              goto err;
-+
-       return 0;
- err:
-@@ -1248,12 +1249,12 @@ err:
- }
- static int ath10k_core_create_board_name(struct ath10k *ar, char *name,
--                                       size_t name_len)
-+                                       size_t name_len, bool with_variant)
- {
-       /* strlen(',variant=') + strlen(ar->id.bdf_ext) */
-       char variant[9 + ATH10K_SMBIOS_BDF_EXT_STR_LENGTH] = { 0 };
--      if (ar->id.bdf_ext[0] != '\0')
-+      if (with_variant && ar->id.bdf_ext[0] != '\0')
-               scnprintf(variant, sizeof(variant), ",variant=%s",
-                         ar->id.bdf_ext);
-@@ -1279,17 +1280,26 @@ out:
- static int ath10k_core_fetch_board_file(struct ath10k *ar)
- {
--      char boardname[100];
-+      char boardname[100], fallback_boardname[100];
-       int ret;
--      ret = ath10k_core_create_board_name(ar, boardname, sizeof(boardname));
-+      ret = ath10k_core_create_board_name(ar, boardname,
-+                                          sizeof(boardname), true);
-       if (ret) {
-               ath10k_err(ar, "failed to create board name: %d", ret);
-               return ret;
-       }
-+      ret = ath10k_core_create_board_name(ar, fallback_boardname,
-+                                          sizeof(boardname), false);
-+      if (ret) {
-+              ath10k_err(ar, "failed to create fallback board name: %d", ret);
-+              return ret;
-+      }
-+
-       ar->bd_api = 2;
-       ret = ath10k_core_fetch_board_data_api_n(ar, boardname,
-+                                               fallback_boardname,
-                                                ATH10K_BOARD_API2_FILE);
-       if (!ret)
-               goto success;
diff --git a/package/kernel/mac80211/patches/201-ath5k-WAR-for-AR71xx-PCI-bug.patch b/package/kernel/mac80211/patches/201-ath5k-WAR-for-AR71xx-PCI-bug.patch
deleted file mode 100644 (file)
index 21516ff..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/drivers/net/wireless/ath/ath5k/initvals.c
-+++ b/drivers/net/wireless/ath/ath5k/initvals.c
-@@ -62,8 +62,14 @@ static const struct ath5k_ini ar5210_ini
-       { AR5K_IMR,             0 },
-       { AR5K_IER,             AR5K_IER_DISABLE },
-       { AR5K_BSR,             0, AR5K_INI_READ },
-+#if !defined(CONFIG_ATHEROS_AR71XX) && !defined(CONFIG_ATH79)
-       { AR5K_TXCFG,           AR5K_DMASIZE_128B },
-       { AR5K_RXCFG,           AR5K_DMASIZE_128B },
-+#else
-+      /* WAR for AR71xx PCI bug */
-+      { AR5K_TXCFG,           AR5K_DMASIZE_128B },
-+      { AR5K_RXCFG,           AR5K_DMASIZE_4B },
-+#endif
-       { AR5K_CFG,             AR5K_INIT_CFG },
-       { AR5K_TOPS,            8 },
-       { AR5K_RXNOFRM,         8 },
---- a/drivers/net/wireless/ath/ath5k/dma.c
-+++ b/drivers/net/wireless/ath/ath5k/dma.c
-@@ -869,10 +869,18 @@ ath5k_hw_dma_init(struct ath5k_hw *ah)
-        * guess we can tweak it and see how it goes ;-)
-        */
-       if (ah->ah_version != AR5K_AR5210) {
-+#if !defined(CONFIG_ATHEROS_AR71XX) && !defined(CONFIG_ATH79)
-               AR5K_REG_WRITE_BITS(ah, AR5K_TXCFG,
-                       AR5K_TXCFG_SDMAMR, AR5K_DMASIZE_128B);
-               AR5K_REG_WRITE_BITS(ah, AR5K_RXCFG,
-                       AR5K_RXCFG_SDMAMW, AR5K_DMASIZE_128B);
-+#else
-+              /* WAR for AR71xx PCI bug */
-+              AR5K_REG_WRITE_BITS(ah, AR5K_TXCFG,
-+                      AR5K_TXCFG_SDMAMR, AR5K_DMASIZE_128B);
-+              AR5K_REG_WRITE_BITS(ah, AR5K_RXCFG,
-+                      AR5K_RXCFG_SDMAMW, AR5K_DMASIZE_4B);
-+#endif
-       }
-       /* Pre-enable interrupts on 5211/5212*/
diff --git a/package/kernel/mac80211/patches/210-ap_scan.patch b/package/kernel/mac80211/patches/210-ap_scan.patch
deleted file mode 100644 (file)
index 8ade963..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/net/mac80211/cfg.c
-+++ b/net/mac80211/cfg.c
-@@ -2215,7 +2215,7 @@ static int ieee80211_scan(struct wiphy *
-                * the  frames sent while scanning on other channel will be
-                * lost)
-                */
--              if (sdata->u.ap.beacon &&
-+              if (0 && sdata->u.ap.beacon &&
-                   (!(wiphy->features & NL80211_FEATURE_AP_SCAN) ||
-                    !(req->flags & NL80211_SCAN_FLAG_AP)))
-                       return -EOPNOTSUPP;
diff --git a/package/kernel/mac80211/patches/300-v4.15-ath10k-fix-build-errors-with-CONFIG_PM.patch b/package/kernel/mac80211/patches/300-v4.15-ath10k-fix-build-errors-with-CONFIG_PM.patch
deleted file mode 100644 (file)
index 2aeb49d..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-From: Brian Norris <briannorris@chromium.org>
-Date: Thu, 19 Oct 2017 11:45:19 -0700
-Subject: [PATCH] ath10k: fix build errors with !CONFIG_PM
-
-Build errors have been reported with CONFIG_PM=n:
-
-drivers/net/wireless/ath/ath10k/pci.c:3416:8: error: implicit
-declaration of function 'ath10k_pci_suspend'
-[-Werror=implicit-function-declaration]
-
-drivers/net/wireless/ath/ath10k/pci.c:3428:8: error: implicit
-declaration of function 'ath10k_pci_resume'
-[-Werror=implicit-function-declaration]
-
-These are caused by the combination of the following two commits:
-
-6af1de2e4ec4 ("ath10k: mark PM functions as __maybe_unused")
-96378bd2c6cd ("ath10k: fix core PCI suspend when WoWLAN is supported but
-disabled")
-
-Both build fine on their own.
-
-But now that ath10k_pci_pm_{suspend,resume}() is compiled
-unconditionally, we should also compile ath10k_pci_{suspend,resume}()
-unconditionally.
-
-And drop the #ifdef around ath10k_pci_hif_{suspend,resume}() too; they
-are trivial (empty), so we're not saving much space by compiling them
-out. And the alternatives would be to sprinkle more __maybe_unused, or
-spread the #ifdef's further.
-
-Build tested with the following combinations:
-CONFIG_PM=y && CONFIG_PM_SLEEP=y
-CONFIG_PM=y && CONFIG_PM_SLEEP=n
-CONFIG_PM=n
-
-Fixes: 96378bd2c6cd ("ath10k: fix core PCI suspend when WoWLAN is supported but disabled")
-Fixes: 096ad2a15fd8 ("Merge branch 'ath-next'")
-Signed-off-by: Brian Norris <briannorris@chromium.org>
-Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
----
-
---- a/drivers/net/wireless/ath/ath10k/pci.c
-+++ b/drivers/net/wireless/ath/ath10k/pci.c
-@@ -2577,8 +2577,6 @@ void ath10k_pci_hif_power_down(struct at
-        */
- }
--#ifdef CONFIG_PM
--
- static int ath10k_pci_hif_suspend(struct ath10k *ar)
- {
-       /* Nothing to do; the important stuff is in the driver suspend. */
-@@ -2627,7 +2625,6 @@ static int ath10k_pci_resume(struct ath1
-       return ret;
- }
--#endif
- static bool ath10k_pci_validate_cal(void *data, size_t size)
- {
-@@ -2782,10 +2779,8 @@ static const struct ath10k_hif_ops ath10
-       .power_down             = ath10k_pci_hif_power_down,
-       .read32                 = ath10k_pci_read32,
-       .write32                = ath10k_pci_write32,
--#ifdef CONFIG_PM
-       .suspend                = ath10k_pci_hif_suspend,
-       .resume                 = ath10k_pci_hif_resume,
--#endif
-       .fetch_cal_eeprom       = ath10k_pci_hif_fetch_cal_eeprom,
- };
diff --git a/package/kernel/mac80211/patches/301-v4.15-mac80211-properly-free-requested-but-not-started-TX-.patch b/package/kernel/mac80211/patches/301-v4.15-mac80211-properly-free-requested-but-not-started-TX-.patch
deleted file mode 100644 (file)
index ecc5e49..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Johannes Berg <johannes.berg@intel.com>
-Date: Mon, 20 Nov 2017 17:01:44 +0100
-Subject: [PATCH] mac80211: properly free requested-but-not-started TX agg
- sessions
-
-When deleting a station or otherwise tearing down all aggregation
-sessions, make sure to delete requested but not yet started ones,
-to avoid the following scenario:
-
- * session is requested, added to tid_start_tx[]
- * ieee80211_ba_session_work() runs, gets past BLOCK_BA check
- * ieee80211_sta_tear_down_BA_sessions() runs, locks &sta->ampdu_mlme.mtx,
-   e.g. while deleting the station - deleting all active sessions
- * ieee80211_ba_session_work() continues since tear down flushes it, and
-   calls ieee80211_tx_ba_session_handle_start() for the new session, arms
-   the timer for it
- * station deletion continues to __cleanup_single_sta() and frees the
-   session struct, while the timer is armed
-
-Reported-by: Fengguang Wu <fengguang.wu@intel.com>
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
----
-
---- a/net/mac80211/agg-tx.c
-+++ b/net/mac80211/agg-tx.c
-@@ -330,6 +330,11 @@ int ___ieee80211_stop_tx_ba_session(stru
-       spin_lock_bh(&sta->lock);
-+      /* free struct pending for start, if present */
-+      tid_tx = sta->ampdu_mlme.tid_start_tx[tid];
-+      kfree(tid_tx);
-+      sta->ampdu_mlme.tid_start_tx[tid] = NULL;
-+
-       tid_tx = rcu_dereference_protected_tid_tx(sta, tid);
-       if (!tid_tx) {
-               spin_unlock_bh(&sta->lock);
diff --git a/package/kernel/mac80211/patches/302-v4.15-mac80211-mesh-drop-frames-appearing-to-be-from-us.patch b/package/kernel/mac80211/patches/302-v4.15-mac80211-mesh-drop-frames-appearing-to-be-from-us.patch
deleted file mode 100644 (file)
index 839e927..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Johannes Berg <johannes.berg@intel.com>
-Date: Thu, 4 Jan 2018 15:51:53 +0100
-Subject: [PATCH] mac80211: mesh: drop frames appearing to be from us
-
-If there are multiple mesh stations with the same MAC address,
-they will both get confused and start throwing warnings.
-
-Obviously in this case nothing can actually work anyway, so just
-drop frames that look like they're from ourselves early on.
-
-Reported-by: Gui Iribarren <gui@altermundi.net>
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
----
-
---- a/net/mac80211/rx.c
-+++ b/net/mac80211/rx.c
-@@ -3632,6 +3632,8 @@ static bool ieee80211_accept_frame(struc
-               }
-               return true;
-       case NL80211_IFTYPE_MESH_POINT:
-+              if (ether_addr_equal(sdata->vif.addr, hdr->addr2))
-+                      return false;
-               if (multicast)
-                       return true;
-               return ether_addr_equal(sdata->vif.addr, hdr->addr1);
diff --git a/package/kernel/mac80211/patches/303-v4.15-0001-brcmfmac-handle-FWHALT-mailbox-indication.patch b/package/kernel/mac80211/patches/303-v4.15-0001-brcmfmac-handle-FWHALT-mailbox-indication.patch
deleted file mode 100644 (file)
index b8f3be1..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-From 2fd3877b5bb7d39782c3205a1dcda02023b8514a Mon Sep 17 00:00:00 2001
-From: Arend Van Spriel <arend.vanspriel@broadcom.com>
-Date: Wed, 8 Nov 2017 14:36:31 +0100
-Subject: [PATCH] brcmfmac: handle FWHALT mailbox indication
-
-The firmware uses a mailbox to communicate to the host what is going
-on. In the driver we validate the bit received. Various people seen
-the following message:
-
- brcmfmac: brcmf_sdio_hostmail: Unknown mailbox data content: 0x40012
-
-Bit 4 is cause of this message, but this actually indicates the firmware
-has halted. Handle this bit by giving a more meaningful error message.
-
-Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
-Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
-Reviewed-by: Franky Lin <franky.lin@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-@@ -260,10 +260,11 @@ struct rte_console {
- #define I_HMB_HOST_INT        I_HMB_SW3       /* Miscellaneous Interrupt */
- /* tohostmailboxdata */
--#define HMB_DATA_NAKHANDLED   1       /* retransmit NAK'd frame */
--#define HMB_DATA_DEVREADY     2       /* talk to host after enable */
--#define HMB_DATA_FC           4       /* per prio flowcontrol update flag */
--#define HMB_DATA_FWREADY      8       /* fw ready for protocol activity */
-+#define HMB_DATA_NAKHANDLED   0x0001  /* retransmit NAK'd frame */
-+#define HMB_DATA_DEVREADY     0x0002  /* talk to host after enable */
-+#define HMB_DATA_FC           0x0004  /* per prio flowcontrol update flag */
-+#define HMB_DATA_FWREADY      0x0008  /* fw ready for protocol activity */
-+#define HMB_DATA_FWHALT               0x0010  /* firmware halted */
- #define HMB_DATA_FCDATA_MASK  0xff000000
- #define HMB_DATA_FCDATA_SHIFT 24
-@@ -1094,6 +1095,10 @@ static u32 brcmf_sdio_hostmail(struct br
-                         offsetof(struct sdpcmd_regs, tosbmailbox));
-       bus->sdcnt.f1regdata += 2;
-+      /* dongle indicates the firmware has halted/crashed */
-+      if (hmb_data & HMB_DATA_FWHALT)
-+              brcmf_err("mailbox indicates firmware halted\n");
-+
-       /* Dongle recomposed rx frames, accept them again */
-       if (hmb_data & HMB_DATA_NAKHANDLED) {
-               brcmf_dbg(SDIO, "Dongle reports NAK handled, expect rtx of %d\n",
-@@ -1151,6 +1156,7 @@ static u32 brcmf_sdio_hostmail(struct br
-                        HMB_DATA_NAKHANDLED |
-                        HMB_DATA_FC |
-                        HMB_DATA_FWREADY |
-+                       HMB_DATA_FWHALT |
-                        HMB_DATA_FCDATA_MASK | HMB_DATA_VERSION_MASK))
-               brcmf_err("Unknown mailbox data content: 0x%02x\n",
-                         hmb_data);
diff --git a/package/kernel/mac80211/patches/303-v4.15-0002-brcmfmac-disable-packet-filtering-in-promiscuous-mod.patch b/package/kernel/mac80211/patches/303-v4.15-0002-brcmfmac-disable-packet-filtering-in-promiscuous-mod.patch
deleted file mode 100644 (file)
index 9016631..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From 6c219b0088158da839a5be63c5b3d96c145501d2 Mon Sep 17 00:00:00 2001
-From: Franky Lin <franky.lin@broadcom.com>
-Date: Wed, 8 Nov 2017 14:36:32 +0100
-Subject: [PATCH] brcmfmac: disable packet filtering in promiscuous mode
-
-Disable arp and nd offload to allow all packets sending to host.
-
-Reported-by: Phil Elwell <phil@raspberrypi.org>
-Tested-by: Phil Elwell <phil@raspberrypi.org>
-Reviewed-by: Arend Van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Franky Lin <franky.lin@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../broadcom/brcm80211/brcmfmac/cfg80211.c         | 41 ----------------------
- .../wireless/broadcom/brcm80211/brcmfmac/core.c    | 38 ++++++++++++++++++++
- .../wireless/broadcom/brcm80211/brcmfmac/core.h    |  1 +
- 3 files changed, 39 insertions(+), 41 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -472,47 +472,6 @@ send_key_to_dongle(struct brcmf_if *ifp,
-       return err;
- }
--static s32
--brcmf_configure_arp_nd_offload(struct brcmf_if *ifp, bool enable)
--{
--      s32 err;
--      u32 mode;
--
--      if (enable)
--              mode = BRCMF_ARP_OL_AGENT | BRCMF_ARP_OL_PEER_AUTO_REPLY;
--      else
--              mode = 0;
--
--      /* Try to set and enable ARP offload feature, this may fail, then it  */
--      /* is simply not supported and err 0 will be returned                 */
--      err = brcmf_fil_iovar_int_set(ifp, "arp_ol", mode);
--      if (err) {
--              brcmf_dbg(TRACE, "failed to set ARP offload mode to 0x%x, err = %d\n",
--                        mode, err);
--              err = 0;
--      } else {
--              err = brcmf_fil_iovar_int_set(ifp, "arpoe", enable);
--              if (err) {
--                      brcmf_dbg(TRACE, "failed to configure (%d) ARP offload err = %d\n",
--                                enable, err);
--                      err = 0;
--              } else
--                      brcmf_dbg(TRACE, "successfully configured (%d) ARP offload to 0x%x\n",
--                                enable, mode);
--      }
--
--      err = brcmf_fil_iovar_int_set(ifp, "ndoe", enable);
--      if (err) {
--              brcmf_dbg(TRACE, "failed to configure (%d) ND offload err = %d\n",
--                        enable, err);
--              err = 0;
--      } else
--              brcmf_dbg(TRACE, "successfully configured (%d) ND offload to 0x%x\n",
--                        enable, mode);
--
--      return err;
--}
--
- static void
- brcmf_cfg80211_update_proto_addr_mode(struct wireless_dev *wdev)
- {
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-@@ -71,6 +71,43 @@ struct brcmf_if *brcmf_get_ifp(struct br
-       return ifp;
- }
-+void brcmf_configure_arp_nd_offload(struct brcmf_if *ifp, bool enable)
-+{
-+      s32 err;
-+      u32 mode;
-+
-+      if (enable)
-+              mode = BRCMF_ARP_OL_AGENT | BRCMF_ARP_OL_PEER_AUTO_REPLY;
-+      else
-+              mode = 0;
-+
-+      /* Try to set and enable ARP offload feature, this may fail, then it  */
-+      /* is simply not supported and err 0 will be returned                 */
-+      err = brcmf_fil_iovar_int_set(ifp, "arp_ol", mode);
-+      if (err) {
-+              brcmf_dbg(TRACE, "failed to set ARP offload mode to 0x%x, err = %d\n",
-+                        mode, err);
-+      } else {
-+              err = brcmf_fil_iovar_int_set(ifp, "arpoe", enable);
-+              if (err) {
-+                      brcmf_dbg(TRACE, "failed to configure (%d) ARP offload err = %d\n",
-+                                enable, err);
-+              } else {
-+                      brcmf_dbg(TRACE, "successfully configured (%d) ARP offload to 0x%x\n",
-+                                enable, mode);
-+              }
-+      }
-+
-+      err = brcmf_fil_iovar_int_set(ifp, "ndoe", enable);
-+      if (err) {
-+              brcmf_dbg(TRACE, "failed to configure (%d) ND offload err = %d\n",
-+                        enable, err);
-+      } else {
-+              brcmf_dbg(TRACE, "successfully configured (%d) ND offload to 0x%x\n",
-+                        enable, mode);
-+      }
-+}
-+
- static void _brcmf_set_multicast_list(struct work_struct *work)
- {
-       struct brcmf_if *ifp;
-@@ -134,6 +171,7 @@ static void _brcmf_set_multicast_list(st
-       if (err < 0)
-               brcmf_err("Setting BRCMF_C_SET_PROMISC failed, %d\n",
-                         err);
-+      brcmf_configure_arp_nd_offload(ifp, !cmd_value);
- }
- #if IS_ENABLED(CONFIG_IPV6)
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
-@@ -203,6 +203,7 @@ int brcmf_netdev_wait_pend8021x(struct b
- /* Return pointer to interface name */
- char *brcmf_ifname(struct brcmf_if *ifp);
- struct brcmf_if *brcmf_get_ifp(struct brcmf_pub *drvr, int ifidx);
-+void brcmf_configure_arp_nd_offload(struct brcmf_if *ifp, bool enable);
- int brcmf_net_attach(struct brcmf_if *ifp, bool rtnl_locked);
- struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, s32 bsscfgidx, s32 ifidx,
-                             bool is_p2pdev, const char *name, u8 *mac_addr);
diff --git a/package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch b/package/kernel/mac80211/patches/303-v4.15-0003-brcmfmac-cleanup-brcmf_cfg80211_escan-function.patch
deleted file mode 100644 (file)
index b6f3d0c..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From 8c6efda22f5f9f73fc948f517424466be01ae84d Mon Sep 17 00:00:00 2001
-From: Arend Van Spriel <arend.vanspriel@broadcom.com>
-Date: Wed, 8 Nov 2017 14:36:33 +0100
-Subject: [PATCH] brcmfmac: cleanup brcmf_cfg80211_escan() function
-
-The function brcmf_cfg80211_escan() was always called with a non-null
-request parameter and null pointer for this_ssid parameter. Clean up
-the function removing the dead code path.
-
-Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
-Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
-Reviewed-by: Franky Lin <franky.lin@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../broadcom/brcm80211/brcmfmac/cfg80211.c         | 76 ++++------------------
- 1 file changed, 11 insertions(+), 65 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -1072,18 +1072,10 @@ brcmf_do_escan(struct brcmf_if *ifp, str
- static s32
- brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif,
--                   struct cfg80211_scan_request *request,
--                   struct cfg80211_ssid *this_ssid)
-+                   struct cfg80211_scan_request *request)
- {
--      struct brcmf_if *ifp = vif->ifp;
-       struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
--      struct cfg80211_ssid *ssids;
--      u32 passive_scan;
--      bool escan_req;
--      bool spec_scan;
-       s32 err;
--      struct brcmf_ssid_le ssid_le;
--      u32 SSID_len;
-       brcmf_dbg(SCAN, "START ESCAN\n");
-@@ -1101,8 +1093,8 @@ brcmf_cfg80211_escan(struct wiphy *wiphy
-                         cfg->scan_status);
-               return -EAGAIN;
-       }
--      if (test_bit(BRCMF_VIF_STATUS_CONNECTING, &ifp->vif->sme_state)) {
--              brcmf_err("Connecting: status (%lu)\n", ifp->vif->sme_state);
-+      if (test_bit(BRCMF_VIF_STATUS_CONNECTING, &vif->sme_state)) {
-+              brcmf_err("Connecting: status (%lu)\n", vif->sme_state);
-               return -EAGAIN;
-       }
-@@ -1110,63 +1102,17 @@ brcmf_cfg80211_escan(struct wiphy *wiphy
-       if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif)
-               vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif;
--      escan_req = false;
--      if (request) {
--              /* scan bss */
--              ssids = request->ssids;
--              escan_req = true;
--      } else {
--              /* scan in ibss */
--              /* we don't do escan in ibss */
--              ssids = this_ssid;
--      }
--
-       cfg->scan_request = request;
-       set_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status);
--      if (escan_req) {
--              cfg->escan_info.run = brcmf_run_escan;
--              err = brcmf_p2p_scan_prep(wiphy, request, vif);
--              if (err)
--                      goto scan_out;
--
--              err = brcmf_do_escan(vif->ifp, request);
--              if (err)
--                      goto scan_out;
--      } else {
--              brcmf_dbg(SCAN, "ssid \"%s\", ssid_len (%d)\n",
--                        ssids->ssid, ssids->ssid_len);
--              memset(&ssid_le, 0, sizeof(ssid_le));
--              SSID_len = min_t(u8, sizeof(ssid_le.SSID), ssids->ssid_len);
--              ssid_le.SSID_len = cpu_to_le32(0);
--              spec_scan = false;
--              if (SSID_len) {
--                      memcpy(ssid_le.SSID, ssids->ssid, SSID_len);
--                      ssid_le.SSID_len = cpu_to_le32(SSID_len);
--                      spec_scan = true;
--              } else
--                      brcmf_dbg(SCAN, "Broadcast scan\n");
--
--              passive_scan = cfg->active_scan ? 0 : 1;
--              err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PASSIVE_SCAN,
--                                          passive_scan);
--              if (err) {
--                      brcmf_err("WLC_SET_PASSIVE_SCAN error (%d)\n", err);
--                      goto scan_out;
--              }
--              brcmf_scan_config_mpc(ifp, 0);
--              err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SCAN, &ssid_le,
--                                           sizeof(ssid_le));
--              if (err) {
--                      if (err == -EBUSY)
--                              brcmf_dbg(INFO, "BUSY: scan for \"%s\" canceled\n",
--                                        ssid_le.SSID);
--                      else
--                              brcmf_err("WLC_SCAN error (%d)\n", err);
--
--                      brcmf_scan_config_mpc(ifp, 1);
--                      goto scan_out;
--              }
--      }
-+
-+      cfg->escan_info.run = brcmf_run_escan;
-+      err = brcmf_p2p_scan_prep(wiphy, request, vif);
-+      if (err)
-+              goto scan_out;
-+
-+      err = brcmf_do_escan(vif->ifp, request);
-+      if (err)
-+              goto scan_out;
-       /* Arm scan timeout timer */
-       mod_timer(&cfg->escan_timeout, jiffies +
-@@ -1191,7 +1137,7 @@ brcmf_cfg80211_scan(struct wiphy *wiphy,
-       if (!check_vif_up(vif))
-               return -EIO;
--      err = brcmf_cfg80211_escan(wiphy, vif, request, NULL);
-+      err = brcmf_cfg80211_escan(wiphy, vif, request);
-       if (err)
-               brcmf_err("scan error (%d)\n", err);
diff --git a/package/kernel/mac80211/patches/303-v4.15-0004-brcmfmac-use-msecs_to_jiffies-instead-of-calculation.patch b/package/kernel/mac80211/patches/303-v4.15-0004-brcmfmac-use-msecs_to_jiffies-instead-of-calculation.patch
deleted file mode 100644 (file)
index c2e3cba..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From df2d8388bc96c0f29d27d121f2a4cd054f8b3900 Mon Sep 17 00:00:00 2001
-From: Arend Van Spriel <arend.vanspriel@broadcom.com>
-Date: Wed, 8 Nov 2017 14:36:34 +0100
-Subject: [PATCH] brcmfmac: use msecs_to_jiffies() instead of calculation using
- HZ
-
-Minor cleanup using provided macro to convert milliseconds interval
-to jiffies in brcmf_cfg80211_escan().
-
-Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
-Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
-Reviewed-by: Franky Lin <franky.lin@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -1115,8 +1115,8 @@ brcmf_cfg80211_escan(struct wiphy *wiphy
-               goto scan_out;
-       /* Arm scan timeout timer */
--      mod_timer(&cfg->escan_timeout, jiffies +
--                      BRCMF_ESCAN_TIMER_INTERVAL_MS * HZ / 1000);
-+      mod_timer(&cfg->escan_timeout,
-+                jiffies + msecs_to_jiffies(BRCMF_ESCAN_TIMER_INTERVAL_MS));
-       return 0;
diff --git a/package/kernel/mac80211/patches/303-v4.15-0005-brcmfmac-get-rid-of-brcmf_cfg80211_escan-function.patch b/package/kernel/mac80211/patches/303-v4.15-0005-brcmfmac-get-rid-of-brcmf_cfg80211_escan-function.patch
deleted file mode 100644 (file)
index 575ffb0..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From 588378f15cff285ac81c929239ccba01d7f71d50 Mon Sep 17 00:00:00 2001
-From: Arend Van Spriel <arend.vanspriel@broadcom.com>
-Date: Wed, 8 Nov 2017 14:36:35 +0100
-Subject: [PATCH] brcmfmac: get rid of brcmf_cfg80211_escan() function
-
-The function brcmf_cfg80211_escan() is only called by brcmf_cfg80211_scan()
-so there is no reason to split in two function especially since the latter
-does not do an awful lot.
-
-Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
-Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
-Reviewed-by: Franky Lin <franky.lin@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../broadcom/brcm80211/brcmfmac/cfg80211.c         | 34 +++++++---------------
- 1 file changed, 10 insertions(+), 24 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -1071,13 +1071,16 @@ brcmf_do_escan(struct brcmf_if *ifp, str
- }
- static s32
--brcmf_cfg80211_escan(struct wiphy *wiphy, struct brcmf_cfg80211_vif *vif,
--                   struct cfg80211_scan_request *request)
-+brcmf_cfg80211_scan(struct wiphy *wiphy, struct cfg80211_scan_request *request)
- {
-       struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
--      s32 err;
-+      struct brcmf_cfg80211_vif *vif;
-+      s32 err = 0;
--      brcmf_dbg(SCAN, "START ESCAN\n");
-+      brcmf_dbg(TRACE, "Enter\n");
-+      vif = container_of(request->wdev, struct brcmf_cfg80211_vif, wdev);
-+      if (!check_vif_up(vif))
-+              return -EIO;
-       if (test_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status)) {
-               brcmf_err("Scanning already: status (%lu)\n", cfg->scan_status);
-@@ -1102,6 +1105,8 @@ brcmf_cfg80211_escan(struct wiphy *wiphy
-       if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif)
-               vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif;
-+      brcmf_dbg(SCAN, "START ESCAN\n");
-+
-       cfg->scan_request = request;
-       set_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status);
-@@ -1121,31 +1126,12 @@ brcmf_cfg80211_escan(struct wiphy *wiphy
-       return 0;
- scan_out:
-+      brcmf_err("scan error (%d)\n", err);
-       clear_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status);
-       cfg->scan_request = NULL;
-       return err;
- }
--static s32
--brcmf_cfg80211_scan(struct wiphy *wiphy, struct cfg80211_scan_request *request)
--{
--      struct brcmf_cfg80211_vif *vif;
--      s32 err = 0;
--
--      brcmf_dbg(TRACE, "Enter\n");
--      vif = container_of(request->wdev, struct brcmf_cfg80211_vif, wdev);
--      if (!check_vif_up(vif))
--              return -EIO;
--
--      err = brcmf_cfg80211_escan(wiphy, vif, request);
--
--      if (err)
--              brcmf_err("scan error (%d)\n", err);
--
--      brcmf_dbg(TRACE, "Exit\n");
--      return err;
--}
--
- static s32 brcmf_set_rts(struct net_device *ndev, u32 rts_threshold)
- {
-       s32 err = 0;
diff --git a/package/kernel/mac80211/patches/303-v4.15-0006-brcmfmac-get-rid-of-struct-brcmf_cfg80211_info-activ.patch b/package/kernel/mac80211/patches/303-v4.15-0006-brcmfmac-get-rid-of-struct-brcmf_cfg80211_info-activ.patch
deleted file mode 100644 (file)
index 4d4235f..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-From bbf35414cd23a9d7230bfd7046e1e2c26020e7eb Mon Sep 17 00:00:00 2001
-From: Arend Van Spriel <arend.vanspriel@broadcom.com>
-Date: Wed, 8 Nov 2017 14:36:36 +0100
-Subject: [PATCH] brcmfmac: get rid of struct brcmf_cfg80211_info::active_scan
- field
-
-The field struct brcmf_cfg80211_info::active_scan is set to true upon
-initializing the driver instance, but it is never changed so simply
-get rid of it.
-
-Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
-Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
-Reviewed-by: Franky Lin <franky.lin@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 10 +---------
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h |  2 --
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c      |  5 +----
- 3 files changed, 2 insertions(+), 15 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -1043,7 +1043,6 @@ brcmf_do_escan(struct brcmf_if *ifp, str
- {
-       struct brcmf_cfg80211_info *cfg = ifp->drvr->config;
-       s32 err;
--      u32 passive_scan;
-       struct brcmf_scan_results *results;
-       struct escan_info *escan = &cfg->escan_info;
-@@ -1051,13 +1050,7 @@ brcmf_do_escan(struct brcmf_if *ifp, str
-       escan->ifp = ifp;
-       escan->wiphy = cfg->wiphy;
-       escan->escan_state = WL_ESCAN_STATE_SCANNING;
--      passive_scan = cfg->active_scan ? 0 : 1;
--      err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PASSIVE_SCAN,
--                                  passive_scan);
--      if (err) {
--              brcmf_err("error (%d)\n", err);
--              return err;
--      }
-+
-       brcmf_scan_config_mpc(ifp, 0);
-       results = (struct brcmf_scan_results *)cfg->escan_info.escan_buf;
-       results->version = 0;
-@@ -5767,7 +5760,6 @@ static s32 wl_init_priv(struct brcmf_cfg
-       cfg->scan_request = NULL;
-       cfg->pwr_save = true;
--      cfg->active_scan = true;        /* we do active scan per default */
-       cfg->dongle_up = false;         /* dongle is not up yet */
-       err = brcmf_init_priv_mem(cfg);
-       if (err)
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h
-@@ -283,7 +283,6 @@ struct brcmf_cfg80211_wowl {
-  * @scan_status: scan activity on the dongle.
-  * @pub: common driver information.
-  * @channel: current channel.
-- * @active_scan: current scan mode.
-  * @int_escan_map: bucket map for which internal e-scan is done.
-  * @ibss_starter: indicates this sta is ibss starter.
-  * @pwr_save: indicate whether dongle to support power save mode.
-@@ -316,7 +315,6 @@ struct brcmf_cfg80211_info {
-       unsigned long scan_status;
-       struct brcmf_pub *pub;
-       u32 channel;
--      bool active_scan;
-       u32 int_escan_map;
-       bool ibss_starter;
-       bool pwr_save;
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
-@@ -692,10 +692,7 @@ static s32 brcmf_p2p_escan(struct brcmf_
-       /* determine the scan engine parameters */
-       sparams->bss_type = DOT11_BSSTYPE_ANY;
--      if (p2p->cfg->active_scan)
--              sparams->scan_type = 0;
--      else
--              sparams->scan_type = 1;
-+      sparams->scan_type = BRCMF_SCANTYPE_ACTIVE;
-       eth_broadcast_addr(sparams->bssid);
-       sparams->home_time = cpu_to_le32(P2PAPI_SCAN_HOME_TIME_MS);
diff --git a/package/kernel/mac80211/patches/303-v4.15-0007-brcmfmac-move-configuration-of-probe-request-IEs.patch b/package/kernel/mac80211/patches/303-v4.15-0007-brcmfmac-move-configuration-of-probe-request-IEs.patch
deleted file mode 100644 (file)
index 3ad6e79..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From bd99a3013bdc00f8fc7534c657b39616792b4467 Mon Sep 17 00:00:00 2001
-From: Arend Van Spriel <arend.vanspriel@broadcom.com>
-Date: Wed, 8 Nov 2017 14:36:37 +0100
-Subject: [PATCH] brcmfmac: move configuration of probe request IEs
-
-The configuration of the IEs for probe requests was done in a P2P
-related function, which is not very obvious. Moving it to
-.scan callback function, ie. brcmf_cfg80211_scan().
-
-Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
-Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
-Reviewed-by: Franky Lin <franky.lin@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 +++++
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c      | 6 ++----
- 2 files changed, 7 insertions(+), 4 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -1108,6 +1108,11 @@ brcmf_cfg80211_scan(struct wiphy *wiphy,
-       if (err)
-               goto scan_out;
-+      err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_PRBREQ_FLAG,
-+                                  request->ie, request->ie_len);
-+      if (err)
-+              goto scan_out;
-+
-       err = brcmf_do_escan(vif->ifp, request);
-       if (err)
-               goto scan_out;
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
-@@ -881,7 +881,7 @@ int brcmf_p2p_scan_prep(struct wiphy *wi
- {
-       struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
-       struct brcmf_p2p_info *p2p = &cfg->p2p;
--      int err = 0;
-+      int err;
-       if (brcmf_p2p_scan_is_p2p_request(request)) {
-               /* find my listen channel */
-@@ -904,9 +904,7 @@ int brcmf_p2p_scan_prep(struct wiphy *wi
-               /* override .run_escan() callback. */
-               cfg->escan_info.run = brcmf_p2p_run_escan;
-       }
--      err = brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_PRBREQ_FLAG,
--                                  request->ie, request->ie_len);
--      return err;
-+      return 0;
- }
diff --git a/package/kernel/mac80211/patches/304-v4.15-brcmfmac-add-CLM-download-support.patch b/package/kernel/mac80211/patches/304-v4.15-brcmfmac-add-CLM-download-support.patch
deleted file mode 100644 (file)
index 2cd5f73..0000000
+++ /dev/null
@@ -1,434 +0,0 @@
-From fdd0bd88ceaecf729db103ac8836af5805dd2dc1 Mon Sep 17 00:00:00 2001
-From: Chung-Hsien Hsu <stanley.hsu@cypress.com>
-Date: Fri, 10 Nov 2017 17:27:15 +0800
-Subject: [PATCH] brcmfmac: add CLM download support
-
-The firmware for brcmfmac devices includes information regarding
-regulatory constraints. For certain devices this information is kept
-separately in a binary form that needs to be downloaded to the device.
-This patch adds support to download this so-called CLM blob file. It
-uses the same naming scheme as the other firmware files with extension
-of .clm_blob.
-
-The CLM blob file is optional. If the file does not exist, the download
-process will be bypassed. It will not affect the driver loading.
-
-Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Chung-Hsien Hsu <stanley.hsu@cypress.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../net/wireless/broadcom/brcm80211/brcmfmac/bus.h |  10 ++
- .../wireless/broadcom/brcm80211/brcmfmac/common.c  | 157 +++++++++++++++++++++
- .../wireless/broadcom/brcm80211/brcmfmac/core.c    |   2 +
- .../wireless/broadcom/brcm80211/brcmfmac/core.h    |   2 +
- .../broadcom/brcm80211/brcmfmac/fwil_types.h       |  31 ++++
- .../wireless/broadcom/brcm80211/brcmfmac/pcie.c    |  19 +++
- .../wireless/broadcom/brcm80211/brcmfmac/sdio.c    |  19 +++
- .../net/wireless/broadcom/brcm80211/brcmfmac/usb.c |  18 +++
- 8 files changed, 258 insertions(+)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h
-@@ -71,6 +71,7 @@ struct brcmf_bus_dcmd {
-  * @wowl_config: specify if dongle is configured for wowl when going to suspend
-  * @get_ramsize: obtain size of device memory.
-  * @get_memdump: obtain device memory dump in provided buffer.
-+ * @get_fwname: obtain firmware name.
-  *
-  * This structure provides an abstract interface towards the
-  * bus specific driver. For control messages to common driver
-@@ -87,6 +88,8 @@ struct brcmf_bus_ops {
-       void (*wowl_config)(struct device *dev, bool enabled);
-       size_t (*get_ramsize)(struct device *dev);
-       int (*get_memdump)(struct device *dev, void *data, size_t len);
-+      int (*get_fwname)(struct device *dev, uint chip, uint chiprev,
-+                        unsigned char *fw_name);
- };
-@@ -224,6 +227,13 @@ int brcmf_bus_get_memdump(struct brcmf_b
-       return bus->ops->get_memdump(bus->dev, data, len);
- }
-+static inline
-+int brcmf_bus_get_fwname(struct brcmf_bus *bus, uint chip, uint chiprev,
-+                       unsigned char *fw_name)
-+{
-+      return bus->ops->get_fwname(bus->dev, chip, chiprev, fw_name);
-+}
-+
- /*
-  * interface functions from common layer
-  */
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
-@@ -18,6 +18,7 @@
- #include <linux/string.h>
- #include <linux/netdevice.h>
- #include <linux/module.h>
-+#include <linux/firmware.h>
- #include <brcmu_wifi.h>
- #include <brcmu_utils.h>
- #include "core.h"
-@@ -28,6 +29,7 @@
- #include "tracepoint.h"
- #include "common.h"
- #include "of.h"
-+#include "firmware.h"
- MODULE_AUTHOR("Broadcom Corporation");
- MODULE_DESCRIPTION("Broadcom 802.11 wireless LAN fullmac driver.");
-@@ -104,12 +106,140 @@ void brcmf_c_set_joinpref_default(struct
-               brcmf_err("Set join_pref error (%d)\n", err);
- }
-+static int brcmf_c_download(struct brcmf_if *ifp, u16 flag,
-+                          struct brcmf_dload_data_le *dload_buf,
-+                          u32 len)
-+{
-+      s32 err;
-+
-+      flag |= (DLOAD_HANDLER_VER << DLOAD_FLAG_VER_SHIFT);
-+      dload_buf->flag = cpu_to_le16(flag);
-+      dload_buf->dload_type = cpu_to_le16(DL_TYPE_CLM);
-+      dload_buf->len = cpu_to_le32(len);
-+      dload_buf->crc = cpu_to_le32(0);
-+      len = sizeof(*dload_buf) + len - 1;
-+
-+      err = brcmf_fil_iovar_data_set(ifp, "clmload", dload_buf, len);
-+
-+      return err;
-+}
-+
-+static int brcmf_c_get_clm_name(struct brcmf_if *ifp, u8 *clm_name)
-+{
-+      struct brcmf_bus *bus = ifp->drvr->bus_if;
-+      struct brcmf_rev_info *ri = &ifp->drvr->revinfo;
-+      u8 fw_name[BRCMF_FW_NAME_LEN];
-+      u8 *ptr;
-+      size_t len;
-+      s32 err;
-+
-+      memset(fw_name, 0, BRCMF_FW_NAME_LEN);
-+      err = brcmf_bus_get_fwname(bus, ri->chipnum, ri->chiprev, fw_name);
-+      if (err) {
-+              brcmf_err("get firmware name failed (%d)\n", err);
-+              goto done;
-+      }
-+
-+      /* generate CLM blob file name */
-+      ptr = strrchr(fw_name, '.');
-+      if (!ptr) {
-+              err = -ENOENT;
-+              goto done;
-+      }
-+
-+      len = ptr - fw_name + 1;
-+      if (len + strlen(".clm_blob") > BRCMF_FW_NAME_LEN) {
-+              err = -E2BIG;
-+      } else {
-+              strlcpy(clm_name, fw_name, len);
-+              strlcat(clm_name, ".clm_blob", BRCMF_FW_NAME_LEN);
-+      }
-+done:
-+      return err;
-+}
-+
-+static int brcmf_c_process_clm_blob(struct brcmf_if *ifp)
-+{
-+      struct device *dev = ifp->drvr->bus_if->dev;
-+      struct brcmf_dload_data_le *chunk_buf;
-+      const struct firmware *clm = NULL;
-+      u8 clm_name[BRCMF_FW_NAME_LEN];
-+      u32 chunk_len;
-+      u32 datalen;
-+      u32 cumulative_len;
-+      u16 dl_flag = DL_BEGIN;
-+      u32 status;
-+      s32 err;
-+
-+      brcmf_dbg(TRACE, "Enter\n");
-+
-+      memset(clm_name, 0, BRCMF_FW_NAME_LEN);
-+      err = brcmf_c_get_clm_name(ifp, clm_name);
-+      if (err) {
-+              brcmf_err("get CLM blob file name failed (%d)\n", err);
-+              return err;
-+      }
-+
-+      err = request_firmware(&clm, clm_name, dev);
-+      if (err) {
-+              if (err == -ENOENT) {
-+                      brcmf_dbg(INFO, "continue with CLM data currently present in firmware\n");
-+                      return 0;
-+              }
-+              brcmf_err("request CLM blob file failed (%d)\n", err);
-+              return err;
-+      }
-+
-+      chunk_buf = kzalloc(sizeof(*chunk_buf) + MAX_CHUNK_LEN - 1, GFP_KERNEL);
-+      if (!chunk_buf) {
-+              err = -ENOMEM;
-+              goto done;
-+      }
-+
-+      datalen = clm->size;
-+      cumulative_len = 0;
-+      do {
-+              if (datalen > MAX_CHUNK_LEN) {
-+                      chunk_len = MAX_CHUNK_LEN;
-+              } else {
-+                      chunk_len = datalen;
-+                      dl_flag |= DL_END;
-+              }
-+              memcpy(chunk_buf->data, clm->data + cumulative_len, chunk_len);
-+
-+              err = brcmf_c_download(ifp, dl_flag, chunk_buf, chunk_len);
-+
-+              dl_flag &= ~DL_BEGIN;
-+
-+              cumulative_len += chunk_len;
-+              datalen -= chunk_len;
-+      } while ((datalen > 0) && (err == 0));
-+
-+      if (err) {
-+              brcmf_err("clmload (%zu byte file) failed (%d); ",
-+                        clm->size, err);
-+              /* Retrieve clmload_status and print */
-+              err = brcmf_fil_iovar_int_get(ifp, "clmload_status", &status);
-+              if (err)
-+                      brcmf_err("get clmload_status failed (%d)\n", err);
-+              else
-+                      brcmf_dbg(INFO, "clmload_status=%d\n", status);
-+              err = -EIO;
-+      }
-+
-+      kfree(chunk_buf);
-+done:
-+      release_firmware(clm);
-+      return err;
-+}
-+
- int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
- {
-       s8 eventmask[BRCMF_EVENTING_MASK_LEN];
-       u8 buf[BRCMF_DCMD_SMLEN];
-       struct brcmf_rev_info_le revinfo;
-       struct brcmf_rev_info *ri;
-+      char *clmver;
-       char *ptr;
-       s32 err;
-@@ -148,6 +278,13 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
-       }
-       ri->result = err;
-+      /* Do any CLM downloading */
-+      err = brcmf_c_process_clm_blob(ifp);
-+      if (err < 0) {
-+              brcmf_err("download CLM blob file failed, %d\n", err);
-+              goto done;
-+      }
-+
-       /* query for 'ver' to get version info from firmware */
-       memset(buf, 0, sizeof(buf));
-       strcpy(buf, "ver");
-@@ -167,6 +304,26 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
-       ptr = strrchr(buf, ' ') + 1;
-       strlcpy(ifp->drvr->fwver, ptr, sizeof(ifp->drvr->fwver));
-+      /* Query for 'clmver' to get CLM version info from firmware */
-+      memset(buf, 0, sizeof(buf));
-+      err = brcmf_fil_iovar_data_get(ifp, "clmver", buf, sizeof(buf));
-+      if (err) {
-+              brcmf_dbg(TRACE, "retrieving clmver failed, %d\n", err);
-+      } else {
-+              clmver = (char *)buf;
-+              /* store CLM version for adding it to revinfo debugfs file */
-+              memcpy(ifp->drvr->clmver, clmver, sizeof(ifp->drvr->clmver));
-+
-+              /* Replace all newline/linefeed characters with space
-+               * character
-+               */
-+              ptr = clmver;
-+              while ((ptr = strnchr(ptr, '\n', sizeof(buf))) != NULL)
-+                      *ptr = ' ';
-+
-+              brcmf_dbg(INFO, "CLM version = %s\n", clmver);
-+      }
-+
-       /* set mpc */
-       err = brcmf_fil_iovar_int_set(ifp, "mpc", 1);
-       if (err) {
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-@@ -1009,6 +1009,8 @@ static int brcmf_revinfo_read(struct seq
-       seq_printf(s, "anarev: %u\n", ri->anarev);
-       seq_printf(s, "nvramrev: %08x\n", ri->nvramrev);
-+      seq_printf(s, "clmver: %s\n", bus_if->drvr->clmver);
-+
-       return 0;
- }
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
-@@ -141,6 +141,8 @@ struct brcmf_pub {
-       struct notifier_block inetaddr_notifier;
-       struct notifier_block inet6addr_notifier;
-       struct brcmf_mp_device *settings;
-+
-+      u8 clmver[BRCMF_DCMD_SMLEN];
- };
- /* forward declarations */
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
-@@ -155,6 +155,21 @@
- #define BRCMF_MFP_CAPABLE             1
- #define BRCMF_MFP_REQUIRED            2
-+/* MAX_CHUNK_LEN is the maximum length for data passing to firmware in each
-+ * ioctl. It is relatively small because firmware has small maximum size input
-+ * playload restriction for ioctls.
-+ */
-+#define MAX_CHUNK_LEN                 1400
-+
-+#define DLOAD_HANDLER_VER             1       /* Downloader version */
-+#define DLOAD_FLAG_VER_MASK           0xf000  /* Downloader version mask */
-+#define DLOAD_FLAG_VER_SHIFT          12      /* Downloader version shift */
-+
-+#define DL_BEGIN                      0x0002
-+#define DL_END                                0x0004
-+
-+#define DL_TYPE_CLM                   2
-+
- /* join preference types for join_pref iovar */
- enum brcmf_join_pref_types {
-       BRCMF_JOIN_PREF_RSSI = 1,
-@@ -827,6 +842,22 @@ struct brcmf_pno_macaddr_le {
- };
- /**
-+ * struct brcmf_dload_data_le - data passing to firmware for downloading
-+ * @flag: flags related to download data.
-+ * @dload_type: type of download data.
-+ * @len: length in bytes of download data.
-+ * @crc: crc of download data.
-+ * @data: download data.
-+ */
-+struct brcmf_dload_data_le {
-+      __le16 flag;
-+      __le16 dload_type;
-+      __le32 len;
-+      __le32 crc;
-+      u8 data[1];
-+};
-+
-+/**
-  * struct brcmf_pno_bssid_le - bssid configuration for PNO scan.
-  *
-  * @bssid: BSS network identifier.
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
-@@ -1350,6 +1350,24 @@ static int brcmf_pcie_get_memdump(struct
-       return 0;
- }
-+static int brcmf_pcie_get_fwname(struct device *dev, u32 chip, u32 chiprev,
-+                               u8 *fw_name)
-+{
-+      struct brcmf_bus *bus_if = dev_get_drvdata(dev);
-+      struct brcmf_pciedev *buspub = bus_if->bus_priv.pcie;
-+      struct brcmf_pciedev_info *devinfo = buspub->devinfo;
-+      int ret = 0;
-+
-+      if (devinfo->fw_name[0] != '\0')
-+              strlcpy(fw_name, devinfo->fw_name, BRCMF_FW_NAME_LEN);
-+      else
-+              ret = brcmf_fw_map_chip_to_name(chip, chiprev,
-+                                              brcmf_pcie_fwnames,
-+                                              ARRAY_SIZE(brcmf_pcie_fwnames),
-+                                              fw_name, NULL);
-+
-+      return ret;
-+}
- static const struct brcmf_bus_ops brcmf_pcie_bus_ops = {
-       .txdata = brcmf_pcie_tx,
-@@ -1359,6 +1377,7 @@ static const struct brcmf_bus_ops brcmf_
-       .wowl_config = brcmf_pcie_wowl_config,
-       .get_ramsize = brcmf_pcie_get_ramsize,
-       .get_memdump = brcmf_pcie_get_memdump,
-+      .get_fwname = brcmf_pcie_get_fwname,
- };
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-@@ -3985,6 +3985,24 @@ brcmf_sdio_watchdog(unsigned long data)
-       }
- }
-+static int brcmf_sdio_get_fwname(struct device *dev, u32 chip, u32 chiprev,
-+                               u8 *fw_name)
-+{
-+      struct brcmf_bus *bus_if = dev_get_drvdata(dev);
-+      struct brcmf_sdio_dev *sdiodev = bus_if->bus_priv.sdio;
-+      int ret = 0;
-+
-+      if (sdiodev->fw_name[0] != '\0')
-+              strlcpy(fw_name, sdiodev->fw_name, BRCMF_FW_NAME_LEN);
-+      else
-+              ret = brcmf_fw_map_chip_to_name(chip, chiprev,
-+                                              brcmf_sdio_fwnames,
-+                                              ARRAY_SIZE(brcmf_sdio_fwnames),
-+                                              fw_name, NULL);
-+
-+      return ret;
-+}
-+
- static const struct brcmf_bus_ops brcmf_sdio_bus_ops = {
-       .stop = brcmf_sdio_bus_stop,
-       .preinit = brcmf_sdio_bus_preinit,
-@@ -3995,6 +4013,7 @@ static const struct brcmf_bus_ops brcmf_
-       .wowl_config = brcmf_sdio_wowl_config,
-       .get_ramsize = brcmf_sdio_bus_get_ramsize,
-       .get_memdump = brcmf_sdio_bus_get_memdump,
-+      .get_fwname = brcmf_sdio_get_fwname,
- };
- static void brcmf_sdio_firmware_callback(struct device *dev, int err,
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
-@@ -1128,12 +1128,30 @@ static void brcmf_usb_wowl_config(struct
-               device_set_wakeup_enable(devinfo->dev, false);
- }
-+static int brcmf_usb_get_fwname(struct device *dev, u32 chip, u32 chiprev,
-+                              u8 *fw_name)
-+{
-+      struct brcmf_usbdev_info *devinfo = brcmf_usb_get_businfo(dev);
-+      int ret = 0;
-+
-+      if (devinfo->fw_name[0] != '\0')
-+              strlcpy(fw_name, devinfo->fw_name, BRCMF_FW_NAME_LEN);
-+      else
-+              ret = brcmf_fw_map_chip_to_name(chip, chiprev,
-+                                              brcmf_usb_fwnames,
-+                                              ARRAY_SIZE(brcmf_usb_fwnames),
-+                                              fw_name, NULL);
-+
-+      return ret;
-+}
-+
- static const struct brcmf_bus_ops brcmf_usb_bus_ops = {
-       .txdata = brcmf_usb_tx,
-       .stop = brcmf_usb_down,
-       .txctl = brcmf_usb_tx_ctlpkt,
-       .rxctl = brcmf_usb_rx_ctlpkt,
-       .wowl_config = brcmf_usb_wowl_config,
-+      .get_fwname = brcmf_usb_get_fwname,
- };
- static int brcmf_usb_bus_setup(struct brcmf_usbdev_info *devinfo)
diff --git a/package/kernel/mac80211/patches/305-v4.15-brcmfmac-change-driver-unbind-order-of-the-sdio-func.patch b/package/kernel/mac80211/patches/305-v4.15-brcmfmac-change-driver-unbind-order-of-the-sdio-func.patch
deleted file mode 100644 (file)
index 3649bdd..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From 5c3de777bdaf48bd0cfb43097c0d0fb85056cab7 Mon Sep 17 00:00:00 2001
-From: Arend Van Spriel <arend.vanspriel@broadcom.com>
-Date: Sat, 25 Nov 2017 21:39:25 +0100
-Subject: [PATCH] brcmfmac: change driver unbind order of the sdio function
- devices
-
-In the function brcmf_sdio_firmware_callback() the driver is
-unbound from the sdio function devices in the error path.
-However, the order in which it is done resulted in a use-after-free
-issue (see brcmf_ops_sdio_remove() in bcmsdh.c). Hence change
-the order and first unbind sdio function #2 device and then
-unbind sdio function #1 device.
-
-Cc: stable@vger.kernel.org # v4.12.x
-Fixes: 7a51461fc2da ("brcmfmac: unbind all devices upon failure in firmware callback")
-Reported-by: Stefan Wahren <stefan.wahren@i2se.com>
-Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
-Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
-Reviewed-by: Franky Lin <franky.lin@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-@@ -4121,8 +4121,8 @@ release:
-       sdio_release_host(sdiodev->func[1]);
- fail:
-       brcmf_dbg(TRACE, "failed: dev=%s, err=%d\n", dev_name(dev), err);
--      device_release_driver(dev);
-       device_release_driver(&sdiodev->func[2]->dev);
-+      device_release_driver(dev);
- }
- struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
diff --git a/package/kernel/mac80211/patches/306-v4.15-brcmfmac-Avoid-build-error-with-make-W-1.patch b/package/kernel/mac80211/patches/306-v4.15-brcmfmac-Avoid-build-error-with-make-W-1.patch
deleted file mode 100644 (file)
index 7344580..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From 51ef7925e10688c57186d438e784532e063492e4 Mon Sep 17 00:00:00 2001
-From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-Date: Thu, 23 Nov 2017 17:57:04 +0200
-Subject: [PATCH] brcmfmac: Avoid build error with make W=1
-
-When I run make W=1 on gcc (Debian 7.2.0-16) 7.2.0 I got an error for
-the first run, all next ones are okay.
-
-  CC [M]  drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.o
-drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:2078: error: Cannot parse struct or union!
-scripts/Makefile.build:310: recipe for target 'drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.o' failed
-
-Seems like something happened with W=1 and wrong kernel doc format.
-As a quick fix remove dubious /** in the code.
-
-Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
-Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-@@ -2070,7 +2070,7 @@ static int brcmf_sdio_txpkt_hdalign(stru
-       return head_pad;
- }
--/**
-+/*
-  * struct brcmf_skbuff_cb reserves first two bytes in sk_buff::cb for
-  * bus layer usage.
-  */
diff --git a/package/kernel/mac80211/patches/307-v4.15-brcmfmac-fix-CLM-load-error-for-legacy-chips-when-us.patch b/package/kernel/mac80211/patches/307-v4.15-brcmfmac-fix-CLM-load-error-for-legacy-chips-when-us.patch
deleted file mode 100644 (file)
index ead5e72..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From cc124d5cc8d81985c3511892d7a6d546552ff754 Mon Sep 17 00:00:00 2001
-From: Wright Feng <wright.feng@cypress.com>
-Date: Tue, 16 Jan 2018 17:26:50 +0800
-Subject: [PATCH] brcmfmac: fix CLM load error for legacy chips when user
- helper is enabled
-
-For legacy chips without CLM blob files, kernel with user helper function
-returns -EAGAIN when we request_firmware(), and then driver got failed
-when bringing up legacy chips. We expect the CLM blob file for legacy chip
-is not existence in firmware path, but the -ENOENT error is transferred to
--EAGAIN in firmware_class.c with user helper.
-Because of that, we continue with CLM data currently present in firmware
-if getting error from doing request_firmware().
-
-Cc: stable@vger.kernel.org # v4.15.y
-Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Wright Feng <wright.feng@cypress.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
-@@ -182,12 +182,9 @@ static int brcmf_c_process_clm_blob(stru
-       err = request_firmware(&clm, clm_name, dev);
-       if (err) {
--              if (err == -ENOENT) {
--                      brcmf_dbg(INFO, "continue with CLM data currently present in firmware\n");
--                      return 0;
--              }
--              brcmf_err("request CLM blob file failed (%d)\n", err);
--              return err;
-+              brcmf_info("no clm_blob available(err=%d), device may have limited channels available\n",
-+                         err);
-+              return 0;
-       }
-       chunk_buf = kzalloc(sizeof(*chunk_buf) + MAX_CHUNK_LEN - 1, GFP_KERNEL);
diff --git a/package/kernel/mac80211/patches/308-v4.16-0001-ath9k-move-spectral-scan-support-under-a-separate-co.patch b/package/kernel/mac80211/patches/308-v4.16-0001-ath9k-move-spectral-scan-support-under-a-separate-co.patch
deleted file mode 100644 (file)
index 703051f..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From 9df7ddc3ed25b7d3473f117a0680b9418adb5753 Mon Sep 17 00:00:00 2001
-Message-Id: <9df7ddc3ed25b7d3473f117a0680b9418adb5753.1515610034.git.mschiffer@universe-factory.net>
-From: Matthias Schiffer <mschiffer@universe-factory.net>
-Date: Mon, 27 Nov 2017 18:56:22 +0100
-Subject: [PATCH 1/2] ath9k: move spectral scan support under a separate config
- symbol
-
-At the moment, spectral scan support, and with it RELAY, is always enabled
-with ATH9K[_HTC]_DEBUGFS. Spectral scan support is currently the only user
-of RELAY in ath9k, and it unconditionally reserves a relay channel.
-
-Having debugfs support in ath9k is often useful even on very small embedded
-routers, where we'd rather like to avoid the code size and RAM usage of the
-relay support.
-
-Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
-Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
----
- drivers/net/wireless/ath/ath9k/Kconfig           | 14 ++++++++++----
- drivers/net/wireless/ath/ath9k/Makefile          |  4 ++--
- drivers/net/wireless/ath/ath9k/common-spectral.h |  4 ++--
- 3 files changed, 14 insertions(+), 8 deletions(-)
-
---- a/drivers/net/wireless/ath/ath9k/Kconfig
-+++ b/drivers/net/wireless/ath/ath9k/Kconfig
-@@ -64,13 +64,12 @@ config ATH9K_DEBUGFS
-       depends on ATH9K && DEBUG_FS
-       select MAC80211_DEBUGFS
-       select ATH9K_COMMON_DEBUG
--      depends on RELAY
-       ---help---
-         Say Y, if you need access to ath9k's statistics for
-         interrupts, rate control, etc.
--        Also required for changing debug message flags at run time.
--        As well as access to the FFT/spectral data and TX99.
-+        Also required for changing debug message flags at run time and for
-+        TX99.
- config ATH9K_STATION_STATISTICS
-       bool "Detailed station statistics"
-@@ -181,7 +180,6 @@ config ATH9K_HTC_DEBUGFS
-       bool "Atheros ath9k_htc debugging"
-       depends on ATH9K_HTC && DEBUG_FS
-       select ATH9K_COMMON_DEBUG
--      depends on RELAY
-       ---help---
-         Say Y, if you need access to ath9k_htc's statistics.
-         As well as access to the FFT/spectral data.
-@@ -197,3 +195,11 @@ config ATH9K_HWRNG
-         Say Y, feeds the entropy directly from the WiFi driver to the input
-         pool.
-+
-+config ATH9K_COMMON_SPECTRAL
-+      bool "Atheros ath9k/ath9k_htc spectral scan support"
-+      depends on ATH9K_DEBUGFS || ATH9K_HTC_DEBUGFS
-+      depends on RELAY
-+      default n
-+      ---help---
-+        Say Y to enable access to the FFT/spectral data via debugfs.
---- a/drivers/net/wireless/ath/ath9k/Makefile
-+++ b/drivers/net/wireless/ath/ath9k/Makefile
-@@ -61,8 +61,8 @@ ath9k_common-y:=     common.o \
-                       common-init.o \
-                       common-beacon.o \
--ath9k_common-$(CPTCFG_ATH9K_COMMON_DEBUG) += common-debug.o \
--                                           common-spectral.o
-+ath9k_common-$(CPTCFG_ATH9K_COMMON_DEBUG) += common-debug.o
-+ath9k_common-$(CPTCFG_ATH9K_COMMON_SPECTRAL) += common-spectral.o
- ath9k_htc-y +=        htc_hst.o \
-               hif_usb.o \
---- a/drivers/net/wireless/ath/ath9k/common-spectral.h
-+++ b/drivers/net/wireless/ath/ath9k/common-spectral.h
-@@ -151,7 +151,7 @@ static inline u8 spectral_bitmap_weight(
-       return bins[0] & 0x3f;
- }
--#ifdef CPTCFG_ATH9K_COMMON_DEBUG
-+#ifdef CPTCFG_ATH9K_COMMON_SPECTRAL
- void ath9k_cmn_spectral_init_debug(struct ath_spec_scan_priv *spec_priv, struct dentry *debugfs_phy);
- void ath9k_cmn_spectral_deinit_debug(struct ath_spec_scan_priv *spec_priv);
-@@ -183,6 +183,6 @@ static inline int ath_cmn_process_fft(st
- {
-       return 0;
- }
--#endif /* CPTCFG_ATH9K_COMMON_DEBUG */
-+#endif /* CPTCFG_ATH9K_COMMON_SPECTRAL */
- #endif /* SPECTRAL_H */
---- a/local-symbols
-+++ b/local-symbols
-@@ -116,6 +116,7 @@ ATH9K_PCOEM=
- ATH9K_HTC=
- ATH9K_HTC_DEBUGFS=
- ATH9K_HWRNG=
-+ATH9K_COMMON_SPECTRAL=
- CARL9170=
- CARL9170_LEDS=
- CARL9170_DEBUGFS=
diff --git a/package/kernel/mac80211/patches/309-v4.16-0002-ath10k-move-spectral-scan-support-under-a-separate-c.patch b/package/kernel/mac80211/patches/309-v4.16-0002-ath10k-move-spectral-scan-support-under-a-separate-c.patch
deleted file mode 100644 (file)
index 9eefdbc..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From 42e01cb9cb109fb0bb4743f6c54d6aa67ac39b61 Mon Sep 17 00:00:00 2001
-Message-Id: <42e01cb9cb109fb0bb4743f6c54d6aa67ac39b61.1515610034.git.mschiffer@universe-factory.net>
-In-Reply-To: <9df7ddc3ed25b7d3473f117a0680b9418adb5753.1515610034.git.mschiffer@universe-factory.net>
-References: <9df7ddc3ed25b7d3473f117a0680b9418adb5753.1515610034.git.mschiffer@universe-factory.net>
-From: Matthias Schiffer <mschiffer@universe-factory.net>
-Date: Mon, 27 Nov 2017 18:56:23 +0100
-Subject: [PATCH 2/2] ath10k: move spectral scan support under a separate
- config symbol
-
-At the moment, spectral scan support, and with it RELAY, is always enabled
-with ATH10K_DEBUGFS. Spectral scan support is currently the only user of
-RELAY in ath10k, and it unconditionally reserves a relay channel.
-
-Having debugfs support in ath10k is often useful even on very small
-embedded routers, where we'd rather like to avoid the code size and RAM
-usage of the relay support. While ath10k-based devices usually have more
-resources than ath9k-based ones, it makes sense to keep the configuration
-symmetric to ath9k, so the same base kernel without RELAY can be used for
-both ath9k and ath10k hardware.
-
-Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
-Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
----
- drivers/net/wireless/ath/ath10k/Kconfig    | 9 ++++++++-
- drivers/net/wireless/ath/ath10k/Makefile   | 2 +-
- drivers/net/wireless/ath/ath10k/spectral.h | 4 ++--
- 3 files changed, 11 insertions(+), 4 deletions(-)
-
---- a/drivers/net/wireless/ath/ath10k/Kconfig
-+++ b/drivers/net/wireless/ath/ath10k/Kconfig
-@@ -51,12 +51,19 @@ config ATH10K_DEBUG
- config ATH10K_DEBUGFS
-       bool "Atheros ath10k debugfs support"
-       depends on ATH10K && DEBUG_FS
--      depends on RELAY
-       ---help---
-         Enabled debugfs support
-         If unsure, say Y to make it easier to debug problems.
-+config ATH10K_SPECTRAL
-+      bool "Atheros ath10k spectral scan support"
-+      depends on ATH10K_DEBUGFS
-+      depends on RELAY
-+      default n
-+      ---help---
-+        Say Y to enable access to the FFT/spectral data via debugfs.
-+
- config ATH10K_TRACING
-       depends on !KERNEL_3_4
-       bool "Atheros ath10k tracing support"
---- a/drivers/net/wireless/ath/ath10k/Makefile
-+++ b/drivers/net/wireless/ath/ath10k/Makefile
-@@ -14,7 +14,7 @@ ath10k_core-y += mac.o \
-                p2p.o \
-                swap.o
--ath10k_core-$(CPTCFG_ATH10K_DEBUGFS) += spectral.o
-+ath10k_core-$(CPTCFG_ATH10K_SPECTRAL) += spectral.o
- ath10k_core-$(CPTCFG_NL80211_TESTMODE) += testmode.o
- ath10k_core-$(CPTCFG_ATH10K_TRACING) += trace.o
- ath10k_core-$(CPTCFG_ATH10K_THERMAL) += thermal.o
---- a/drivers/net/wireless/ath/ath10k/spectral.h
-+++ b/drivers/net/wireless/ath/ath10k/spectral.h
-@@ -44,7 +44,7 @@ enum ath10k_spectral_mode {
-       SPECTRAL_MANUAL,
- };
--#ifdef CPTCFG_ATH10K_DEBUGFS
-+#ifdef CPTCFG_ATH10K_SPECTRAL
- int ath10k_spectral_process_fft(struct ath10k *ar,
-                               struct wmi_phyerr_ev_arg *phyerr,
-@@ -85,6 +85,6 @@ static inline void ath10k_spectral_destr
- {
- }
--#endif /* CPTCFG_ATH10K_DEBUGFS */
-+#endif /* CPTCFG_ATH10K_SPECTRAL */
- #endif /* SPECTRAL_H */
---- a/local-symbols
-+++ b/local-symbols
-@@ -140,6 +140,7 @@ ATH10K_SDIO=
- ATH10K_USB=
- ATH10K_DEBUG=
- ATH10K_DEBUGFS=
-+ATH10K_SPECTRAL=
- ATH10K_THERMAL=
- ATH10K_TRACING=
- ATH10K_DFS_CERTIFIED=
diff --git a/package/kernel/mac80211/patches/310-v4.16-ath9k-discard-undersized-packets.patch b/package/kernel/mac80211/patches/310-v4.16-ath9k-discard-undersized-packets.patch
deleted file mode 100644 (file)
index b2b2fcf..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Wed, 17 Jan 2018 11:11:17 +0100
-Subject: [PATCH] ath9k: discard undersized packets
-
-Sometimes the hardware will push small packets that trigger a WARN_ON
-in mac80211. Discard them early to avoid this issue.
-
-Reported-by: Stijn Tintel <stijn@linux-ipv6.be>
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/drivers/net/wireless/ath/ath9k/recv.c
-+++ b/drivers/net/wireless/ath/ath9k/recv.c
-@@ -826,9 +826,9 @@ static int ath9k_rx_skb_preprocess(struc
-       sc->rx.discard_next = false;
-       /*
--       * Discard zero-length packets.
-+       * Discard zero-length packets and packets smaller than an ACK
-        */
--      if (!rx_stats->rs_datalen) {
-+      if (rx_stats->rs_datalen < 10) {
-               RX_STAT_INC(rx_len_err);
-               goto corrupt;
-       }
diff --git a/package/kernel/mac80211/patches/311-v4.16-0001-brcmfmac-Fix-parameter-order-in-brcmf_sdiod_f0_write.patch b/package/kernel/mac80211/patches/311-v4.16-0001-brcmfmac-Fix-parameter-order-in-brcmf_sdiod_f0_write.patch
deleted file mode 100644 (file)
index 616a821..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From 1fd3ae124d5e675f57cf7e3c601fb8f7712e0329 Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:38 +0100
-Subject: [PATCH] brcmfmac: Fix parameter order in brcmf_sdiod_f0_writeb()
-
-All the other IO functions are the other way round in this
-driver. Make this one match.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -230,8 +230,8 @@ void brcmf_sdiod_change_state(struct brc
-       sdiodev->state = state;
- }
--static inline int brcmf_sdiod_f0_writeb(struct sdio_func *func,
--                                      uint regaddr, u8 byte)
-+static inline int brcmf_sdiod_f0_writeb(struct sdio_func *func, u8 byte,
-+                                      uint regaddr)
- {
-       int err_ret;
-@@ -269,8 +269,8 @@ static int brcmf_sdiod_request_data(stru
-                       if (fn)
-                               sdio_writeb(func, *(u8 *)data, addr, &ret);
-                       else
--                              ret = brcmf_sdiod_f0_writeb(func, addr,
--                                                          *(u8 *)data);
-+                              ret = brcmf_sdiod_f0_writeb(func, *(u8 *)data,
-+                                                          addr);
-               } else {
-                       if (fn)
-                               *(u8 *)data = sdio_readb(func, addr, &ret);
diff --git a/package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch b/package/kernel/mac80211/patches/311-v4.16-0002-brcmfmac-Register-sizes-on-hardware-are-not-dependen.patch
deleted file mode 100644 (file)
index 719268f..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From 1e6f676f43aa4270ebc5cff8e32a55f72362e042 Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:39 +0100
-Subject: [PATCH] brcmfmac: Register sizes on hardware are not dependent on
- compiler types
-
-The 4 IO functions in this patch are incorrect as they use compiler types
-to determine how many bytes to send to the hardware.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c  | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -264,7 +264,7 @@ static int brcmf_sdiod_request_data(stru
-       func = sdiodev->func[fn];
-       switch (regsz) {
--      case sizeof(u8):
-+      case 1:
-               if (write) {
-                       if (fn)
-                               sdio_writeb(func, *(u8 *)data, addr, &ret);
-@@ -278,13 +278,13 @@ static int brcmf_sdiod_request_data(stru
-                               *(u8 *)data = sdio_f0_readb(func, addr, &ret);
-               }
-               break;
--      case sizeof(u16):
-+      case 2:
-               if (write)
-                       sdio_writew(func, *(u16 *)data, addr, &ret);
-               else
-                       *(u16 *)data = sdio_readw(func, addr, &ret);
-               break;
--      case sizeof(u32):
-+      case 4:
-               if (write)
-                       sdio_writel(func, *(u32 *)data, addr, &ret);
-               else
-@@ -368,7 +368,7 @@ brcmf_sdiod_set_sbaddr_window(struct brc
-       for (i = 0; i < 3; i++) {
-               err = brcmf_sdiod_regrw_helper(sdiodev,
-                                              SBSDIO_FUNC1_SBADDRLOW + i,
--                                             sizeof(u8), &addr[i], true);
-+                                             1, &addr[i], true);
-               if (err) {
-                       brcmf_err("failed at addr: 0x%0x\n",
-                                 SBSDIO_FUNC1_SBADDRLOW + i);
-@@ -407,7 +407,7 @@ u8 brcmf_sdiod_regrb(struct brcmf_sdio_d
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
--      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, sizeof(data), &data,
-+      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 1, &data,
-                                         false);
-       brcmf_dbg(SDIO, "data:0x%02x\n", data);
-@@ -423,10 +423,10 @@ u32 brcmf_sdiod_regrl(struct brcmf_sdio_
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
--      retval = brcmf_sdiod_addrprep(sdiodev, sizeof(data), &addr);
-+      retval = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-       if (retval)
-               goto done;
--      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, sizeof(data), &data,
-+      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 4, &data,
-                                         false);
-       brcmf_dbg(SDIO, "data:0x%08x\n", data);
-@@ -443,7 +443,7 @@ void brcmf_sdiod_regwb(struct brcmf_sdio
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x, data:0x%02x\n", addr, data);
--      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, sizeof(data), &data,
-+      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 1, &data,
-                                         true);
-       if (ret)
-               *ret = retval;
-@@ -455,10 +455,10 @@ void brcmf_sdiod_regwl(struct brcmf_sdio
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x, data:0x%08x\n", addr, data);
--      retval = brcmf_sdiod_addrprep(sdiodev, sizeof(data), &addr);
-+      retval = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-       if (retval)
-               goto done;
--      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, sizeof(data), &data,
-+      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 4, &data,
-                                         true);
- done:
-@@ -876,7 +876,7 @@ int brcmf_sdiod_abort(struct brcmf_sdio_
-       /* issue abort cmd52 command through F0 */
-       brcmf_sdiod_request_data(sdiodev, SDIO_FUNC_0, SDIO_CCCR_ABORT,
--                               sizeof(t_func), &t_func, true);
-+                               1, &t_func, true);
-       brcmf_dbg(SDIO, "Exit\n");
-       return 0;
diff --git a/package/kernel/mac80211/patches/311-v4.16-0003-brcmfmac-Split-brcmf_sdiod_regrw_helper-up.patch b/package/kernel/mac80211/patches/311-v4.16-0003-brcmfmac-Split-brcmf_sdiod_regrw_helper-up.patch
deleted file mode 100644 (file)
index b04465a..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-From 0fcc9fe0048422d66bb906eaa73cc75e11ff7345 Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:40 +0100
-Subject: [PATCH] brcmfmac: Split brcmf_sdiod_regrw_helper() up.
-
-This large function is concealing a LOT of obscure logic about
-how the hardware functions. Time to split it up.
-
-This first patch splits the function into two pieces - read and write,
-doing away with the rw flag in the process.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c  | 94 +++++++++++++++++-----
- 1 file changed, 73 insertions(+), 21 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -302,8 +302,8 @@ static int brcmf_sdiod_request_data(stru
-       return ret;
- }
--static int brcmf_sdiod_regrw_helper(struct brcmf_sdio_dev *sdiodev, u32 addr,
--                                 u8 regsz, void *data, bool write)
-+static int brcmf_sdiod_reg_write(struct brcmf_sdio_dev *sdiodev, u32 addr,
-+                               u8 regsz, void *data)
- {
-       u8 func;
-       s32 retry = 0;
-@@ -324,13 +324,66 @@ static int brcmf_sdiod_regrw_helper(stru
-               func = SDIO_FUNC_1;
-       do {
--              if (!write)
--                      memset(data, 0, regsz);
-               /* for retry wait for 1 ms till bus get settled down */
-               if (retry)
-                       usleep_range(1000, 2000);
-+
-+              ret = brcmf_sdiod_request_data(sdiodev, func, addr, regsz,
-+                                             data, true);
-+
-+      } while (ret != 0 && ret != -ENOMEDIUM &&
-+               retry++ < SDIOH_API_ACCESS_RETRY_LIMIT);
-+
-+      if (ret == -ENOMEDIUM) {
-+              brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM);
-+      } else if (ret != 0) {
-+              /*
-+               * SleepCSR register access can fail when
-+               * waking up the device so reduce this noise
-+               * in the logs.
-+               */
-+              if (addr != SBSDIO_FUNC1_SLEEPCSR)
-+                      brcmf_err("failed to write data F%d@0x%05x, err: %d\n",
-+                                func, addr, ret);
-+              else
-+                      brcmf_dbg(SDIO, "failed to write data F%d@0x%05x, err: %d\n",
-+                                func, addr, ret);
-+      }
-+
-+      return ret;
-+}
-+
-+static int brcmf_sdiod_reg_read(struct brcmf_sdio_dev *sdiodev, u32 addr,
-+                              u8 regsz, void *data)
-+{
-+      u8 func;
-+      s32 retry = 0;
-+      int ret;
-+
-+      if (sdiodev->state == BRCMF_SDIOD_NOMEDIUM)
-+              return -ENOMEDIUM;
-+
-+      /*
-+       * figure out how to read the register based on address range
-+       * 0x00 ~ 0x7FF: function 0 CCCR and FBR
-+       * 0x10000 ~ 0x1FFFF: function 1 miscellaneous registers
-+       * The rest: function 1 silicon backplane core registers
-+       */
-+      if ((addr & ~REG_F0_REG_MASK) == 0)
-+              func = SDIO_FUNC_0;
-+      else
-+              func = SDIO_FUNC_1;
-+
-+      do {
-+              memset(data, 0, regsz);
-+
-+              /* for retry wait for 1 ms till bus get settled down */
-+              if (retry)
-+                      usleep_range(1000, 2000);
-+
-               ret = brcmf_sdiod_request_data(sdiodev, func, addr, regsz,
--                                             data, write);
-+                                             data, false);
-+
-       } while (ret != 0 && ret != -ENOMEDIUM &&
-                retry++ < SDIOH_API_ACCESS_RETRY_LIMIT);
-@@ -343,12 +396,13 @@ static int brcmf_sdiod_regrw_helper(stru
-                * in the logs.
-                */
-               if (addr != SBSDIO_FUNC1_SLEEPCSR)
--                      brcmf_err("failed to %s data F%d@0x%05x, err: %d\n",
--                                write ? "write" : "read", func, addr, ret);
-+                      brcmf_err("failed to read data F%d@0x%05x, err: %d\n",
-+                                func, addr, ret);
-               else
--                      brcmf_dbg(SDIO, "failed to %s data F%d@0x%05x, err: %d\n",
--                                write ? "write" : "read", func, addr, ret);
-+                      brcmf_dbg(SDIO, "failed to read data F%d@0x%05x, err: %d\n",
-+                                func, addr, ret);
-       }
-+
-       return ret;
- }
-@@ -366,13 +420,11 @@ brcmf_sdiod_set_sbaddr_window(struct brc
-       addr[2] = (address >> 24) & SBSDIO_SBADDRHIGH_MASK;
-       for (i = 0; i < 3; i++) {
--              err = brcmf_sdiod_regrw_helper(sdiodev,
--                                             SBSDIO_FUNC1_SBADDRLOW + i,
--                                             1, &addr[i], true);
-+              brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_SBADDRLOW + i, addr[i],
-+                                &err);
-               if (err) {
-                       brcmf_err("failed at addr: 0x%0x\n",
-                                 SBSDIO_FUNC1_SBADDRLOW + i);
--                      break;
-               }
-       }
-@@ -407,8 +459,7 @@ u8 brcmf_sdiod_regrb(struct brcmf_sdio_d
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
--      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 1, &data,
--                                        false);
-+      retval = brcmf_sdiod_reg_read(sdiodev, addr, 1, &data);
-       brcmf_dbg(SDIO, "data:0x%02x\n", data);
-       if (ret)
-@@ -426,8 +477,9 @@ u32 brcmf_sdiod_regrl(struct brcmf_sdio_
-       retval = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-       if (retval)
-               goto done;
--      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 4, &data,
--                                        false);
-+
-+      retval = brcmf_sdiod_reg_read(sdiodev, addr, 4, &data);
-+
-       brcmf_dbg(SDIO, "data:0x%08x\n", data);
- done:
-@@ -443,8 +495,8 @@ void brcmf_sdiod_regwb(struct brcmf_sdio
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x, data:0x%02x\n", addr, data);
--      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 1, &data,
--                                        true);
-+      retval = brcmf_sdiod_reg_write(sdiodev, addr, 1, &data);
-+
-       if (ret)
-               *ret = retval;
- }
-@@ -458,8 +510,8 @@ void brcmf_sdiod_regwl(struct brcmf_sdio
-       retval = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-       if (retval)
-               goto done;
--      retval = brcmf_sdiod_regrw_helper(sdiodev, addr, 4, &data,
--                                        true);
-+
-+      retval = brcmf_sdiod_reg_write(sdiodev, addr, 4, &data);
- done:
-       if (ret)
diff --git a/package/kernel/mac80211/patches/311-v4.16-0004-brcmfmac-Clean-up-brcmf_sdiod_set_sbaddr_window.patch b/package/kernel/mac80211/patches/311-v4.16-0004-brcmfmac-Clean-up-brcmf_sdiod_set_sbaddr_window.patch
deleted file mode 100644 (file)
index 1f0488a..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-From b9b0d290bc0c90a5a262bc89c9d995988ea98669 Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:41 +0100
-Subject: [PATCH] brcmfmac: Clean up brcmf_sdiod_set_sbaddr_window()
-
-This function sets the address of the IO window used for
-SDIO accesses onto the backplane of the chip.
-
-It currently uses 3 separate masks despite the full mask being
-defined in the code already. Remove the separate masks and clean up.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c   | 17 +++++------------
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h |  3 ---
- 2 files changed, 5 insertions(+), 15 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -410,23 +410,16 @@ static int
- brcmf_sdiod_set_sbaddr_window(struct brcmf_sdio_dev *sdiodev, u32 address)
- {
-       int err = 0, i;
--      u8 addr[3];
-+      u32 addr;
-       if (sdiodev->state == BRCMF_SDIOD_NOMEDIUM)
-               return -ENOMEDIUM;
--      addr[0] = (address >> 8) & SBSDIO_SBADDRLOW_MASK;
--      addr[1] = (address >> 16) & SBSDIO_SBADDRMID_MASK;
--      addr[2] = (address >> 24) & SBSDIO_SBADDRHIGH_MASK;
-+      addr = (address & SBSDIO_SBWINDOW_MASK) >> 8;
--      for (i = 0; i < 3; i++) {
--              brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_SBADDRLOW + i, addr[i],
--                                &err);
--              if (err) {
--                      brcmf_err("failed at addr: 0x%0x\n",
--                                SBSDIO_FUNC1_SBADDRLOW + i);
--              }
--      }
-+      for (i = 0 ; i < 3 && !err ; i++, addr >>= 8)
-+              brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_SBADDRLOW + i,
-+                                addr & 0xff, &err);
-       return err;
- }
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h
-@@ -133,9 +133,6 @@
- /* valid bits in SBSDIO_FUNC1_SBADDRxxx regs */
--#define SBSDIO_SBADDRLOW_MASK         0x80    /* Valid bits in SBADDRLOW */
--#define SBSDIO_SBADDRMID_MASK         0xff    /* Valid bits in SBADDRMID */
--#define SBSDIO_SBADDRHIGH_MASK                0xffU   /* Valid bits in SBADDRHIGH */
- /* Address bits from SBADDR regs */
- #define SBSDIO_SBWINDOW_MASK          0xffff8000
diff --git a/package/kernel/mac80211/patches/311-v4.16-0005-brcmfmac-Remove-dead-IO-code.patch b/package/kernel/mac80211/patches/311-v4.16-0005-brcmfmac-Remove-dead-IO-code.patch
deleted file mode 100644 (file)
index 7d50ce9..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From ea243e9077b3545f20d93884e91c50ac0719685a Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:42 +0100
-Subject: [PATCH] brcmfmac: Remove dead IO code
-
-The value passed to brcmf_sdiod_addrprep() is *always* 4
-remove this parameter and the unused code to handle it.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c  | 18 ++++++++----------
- 1 file changed, 8 insertions(+), 10 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -425,7 +425,7 @@ brcmf_sdiod_set_sbaddr_window(struct brc
- }
- static int
--brcmf_sdiod_addrprep(struct brcmf_sdio_dev *sdiodev, uint width, u32 *addr)
-+brcmf_sdiod_addrprep(struct brcmf_sdio_dev *sdiodev, u32 *addr)
- {
-       uint bar0 = *addr & ~SBSDIO_SB_OFT_ADDR_MASK;
-       int err = 0;
-@@ -439,9 +439,7 @@ brcmf_sdiod_addrprep(struct brcmf_sdio_d
-       }
-       *addr &= SBSDIO_SB_OFT_ADDR_MASK;
--
--      if (width == 4)
--              *addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
-+      *addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
-       return 0;
- }
-@@ -467,7 +465,7 @@ u32 brcmf_sdiod_regrl(struct brcmf_sdio_
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
--      retval = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-+      retval = brcmf_sdiod_addrprep(sdiodev, &addr);
-       if (retval)
-               goto done;
-@@ -500,7 +498,7 @@ void brcmf_sdiod_regwl(struct brcmf_sdio
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x, data:0x%08x\n", addr, data);
--      retval = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-+      retval = brcmf_sdiod_addrprep(sdiodev, &addr);
-       if (retval)
-               goto done;
-@@ -736,7 +734,7 @@ int brcmf_sdiod_recv_pkt(struct brcmf_sd
-       brcmf_dbg(SDIO, "addr = 0x%x, size = %d\n", addr, pkt->len);
--      err = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-+      err = brcmf_sdiod_addrprep(sdiodev, &addr);
-       if (err)
-               goto done;
-@@ -757,7 +755,7 @@ int brcmf_sdiod_recv_chain(struct brcmf_
-       brcmf_dbg(SDIO, "addr = 0x%x, size = %d\n",
-                 addr, pktq->qlen);
--      err = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-+      err = brcmf_sdiod_addrprep(sdiodev, &addr);
-       if (err)
-               goto done;
-@@ -801,7 +799,7 @@ int brcmf_sdiod_send_buf(struct brcmf_sd
-       memcpy(mypkt->data, buf, nbytes);
--      err = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-+      err = brcmf_sdiod_addrprep(sdiodev, &addr);
-       if (!err)
-               err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, true, addr,
-@@ -821,7 +819,7 @@ int brcmf_sdiod_send_pkt(struct brcmf_sd
-       brcmf_dbg(SDIO, "addr = 0x%x, size = %d\n", addr, pktq->qlen);
--      err = brcmf_sdiod_addrprep(sdiodev, 4, &addr);
-+      err = brcmf_sdiod_addrprep(sdiodev, &addr);
-       if (err)
-               return err;
diff --git a/package/kernel/mac80211/patches/311-v4.16-0006-brcmfmac-Remove-bandaid-for-SleepCSR.patch b/package/kernel/mac80211/patches/311-v4.16-0006-brcmfmac-Remove-bandaid-for-SleepCSR.patch
deleted file mode 100644 (file)
index fef29fc..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From 4a3338ba2a7421db2260159cca5a27bd2ee36d00 Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:43 +0100
-Subject: [PATCH] brcmfmac: Remove bandaid for SleepCSR
-
-Register access code is not the place for band-aid fixes like this.
-If this is a genuine problem, it should be fixed further up in the driver
-stack.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c  | 28 +---------------------
- 1 file changed, 1 insertion(+), 27 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -334,21 +334,8 @@ static int brcmf_sdiod_reg_write(struct
-       } while (ret != 0 && ret != -ENOMEDIUM &&
-                retry++ < SDIOH_API_ACCESS_RETRY_LIMIT);
--      if (ret == -ENOMEDIUM) {
-+      if (ret == -ENOMEDIUM)
-               brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM);
--      } else if (ret != 0) {
--              /*
--               * SleepCSR register access can fail when
--               * waking up the device so reduce this noise
--               * in the logs.
--               */
--              if (addr != SBSDIO_FUNC1_SLEEPCSR)
--                      brcmf_err("failed to write data F%d@0x%05x, err: %d\n",
--                                func, addr, ret);
--              else
--                      brcmf_dbg(SDIO, "failed to write data F%d@0x%05x, err: %d\n",
--                                func, addr, ret);
--      }
-       return ret;
- }
-@@ -389,19 +376,6 @@ static int brcmf_sdiod_reg_read(struct b
-       if (ret == -ENOMEDIUM)
-               brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM);
--      else if (ret != 0) {
--              /*
--               * SleepCSR register access can fail when
--               * waking up the device so reduce this noise
--               * in the logs.
--               */
--              if (addr != SBSDIO_FUNC1_SLEEPCSR)
--                      brcmf_err("failed to read data F%d@0x%05x, err: %d\n",
--                                func, addr, ret);
--              else
--                      brcmf_dbg(SDIO, "failed to read data F%d@0x%05x, err: %d\n",
--                                func, addr, ret);
--      }
-       return ret;
- }
diff --git a/package/kernel/mac80211/patches/311-v4.16-0007-brcmfmac-Remove-brcmf_sdiod_request_data.patch b/package/kernel/mac80211/patches/311-v4.16-0007-brcmfmac-Remove-brcmf_sdiod_request_data.patch
deleted file mode 100644 (file)
index 552f9fb..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-From 993a98a42e6e790fd0d2bf7d55a031513c7ba7dc Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:44 +0100
-Subject: [PATCH] brcmfmac: Remove brcmf_sdiod_request_data()
-
-This function is obfuscating how IO works on this chip. Remove it
-and push its logic into brcmf_sdiod_reg_{read,write}().
-
-Handling of -ENOMEDIUM is altered, but as that's pretty much broken anyway
-we can ignore that.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c  | 237 ++++++++-------------
- .../wireless/broadcom/brcm80211/brcmfmac/sdio.h    |   2 +-
- 2 files changed, 87 insertions(+), 152 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -230,6 +230,43 @@ void brcmf_sdiod_change_state(struct brc
-       sdiodev->state = state;
- }
-+static int brcmf_sdiod_set_sbaddr_window(struct brcmf_sdio_dev *sdiodev,
-+                                       u32 address)
-+{
-+      int err = 0, i;
-+      u32 addr;
-+
-+      if (sdiodev->state == BRCMF_SDIOD_NOMEDIUM)
-+              return -ENOMEDIUM;
-+
-+      addr = (address & SBSDIO_SBWINDOW_MASK) >> 8;
-+
-+      for (i = 0 ; i < 3 && !err ; i++, addr >>= 8)
-+              brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_SBADDRLOW + i,
-+                                addr & 0xff, &err);
-+
-+      return err;
-+}
-+
-+static int brcmf_sdiod_addrprep(struct brcmf_sdio_dev *sdiodev, u32 *addr)
-+{
-+      uint bar0 = *addr & ~SBSDIO_SB_OFT_ADDR_MASK;
-+      int err = 0;
-+
-+      if (bar0 != sdiodev->sbwad) {
-+              err = brcmf_sdiod_set_sbaddr_window(sdiodev, bar0);
-+              if (err)
-+                      return err;
-+
-+              sdiodev->sbwad = bar0;
-+      }
-+
-+      *addr &= SBSDIO_SB_OFT_ADDR_MASK;
-+      *addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
-+
-+      return 0;
-+}
-+
- static inline int brcmf_sdiod_f0_writeb(struct sdio_func *func, u8 byte,
-                                       uint regaddr)
- {
-@@ -249,173 +286,84 @@ static inline int brcmf_sdiod_f0_writeb(
-       return err_ret;
- }
--static int brcmf_sdiod_request_data(struct brcmf_sdio_dev *sdiodev, u8 fn,
--                                  u32 addr, u8 regsz, void *data, bool write)
--{
--      struct sdio_func *func;
--      int ret = -EINVAL;
--
--      brcmf_dbg(SDIO, "rw=%d, func=%d, addr=0x%05x, nbytes=%d\n",
--                write, fn, addr, regsz);
--
--      /* only allow byte access on F0 */
--      if (WARN_ON(regsz > 1 && !fn))
--              return -EINVAL;
--      func = sdiodev->func[fn];
--
--      switch (regsz) {
--      case 1:
--              if (write) {
--                      if (fn)
--                              sdio_writeb(func, *(u8 *)data, addr, &ret);
--                      else
--                              ret = brcmf_sdiod_f0_writeb(func, *(u8 *)data,
--                                                          addr);
--              } else {
--                      if (fn)
--                              *(u8 *)data = sdio_readb(func, addr, &ret);
--                      else
--                              *(u8 *)data = sdio_f0_readb(func, addr, &ret);
--              }
--              break;
--      case 2:
--              if (write)
--                      sdio_writew(func, *(u16 *)data, addr, &ret);
--              else
--                      *(u16 *)data = sdio_readw(func, addr, &ret);
--              break;
--      case 4:
--              if (write)
--                      sdio_writel(func, *(u32 *)data, addr, &ret);
--              else
--                      *(u32 *)data = sdio_readl(func, addr, &ret);
--              break;
--      default:
--              brcmf_err("invalid size: %d\n", regsz);
--              break;
--      }
--
--      if (ret)
--              brcmf_dbg(SDIO, "failed to %s data F%d@0x%05x, err: %d\n",
--                        write ? "write" : "read", fn, addr, ret);
--
--      return ret;
--}
--
- static int brcmf_sdiod_reg_write(struct brcmf_sdio_dev *sdiodev, u32 addr,
-                                u8 regsz, void *data)
- {
--      u8 func;
--      s32 retry = 0;
-       int ret;
--      if (sdiodev->state == BRCMF_SDIOD_NOMEDIUM)
--              return -ENOMEDIUM;
--
-       /*
-        * figure out how to read the register based on address range
-        * 0x00 ~ 0x7FF: function 0 CCCR and FBR
-        * 0x10000 ~ 0x1FFFF: function 1 miscellaneous registers
-        * The rest: function 1 silicon backplane core registers
-+       * f0 writes must be bytewise
-        */
--      if ((addr & ~REG_F0_REG_MASK) == 0)
--              func = SDIO_FUNC_0;
--      else
--              func = SDIO_FUNC_1;
--
--      do {
--              /* for retry wait for 1 ms till bus get settled down */
--              if (retry)
--                      usleep_range(1000, 2000);
--              ret = brcmf_sdiod_request_data(sdiodev, func, addr, regsz,
--                                             data, true);
--
--      } while (ret != 0 && ret != -ENOMEDIUM &&
--               retry++ < SDIOH_API_ACCESS_RETRY_LIMIT);
-+      if ((addr & ~REG_F0_REG_MASK) == 0) {
-+              if (WARN_ON(regsz > 1))
-+                      return -EINVAL;
-+              ret = brcmf_sdiod_f0_writeb(sdiodev->func[0],
-+                                          *(u8 *)data, addr);
-+      } else {
-+              switch (regsz) {
-+              case 1:
-+                      sdio_writeb(sdiodev->func[1], *(u8 *)data, addr, &ret);
-+                      break;
-+              case 4:
-+                      ret = brcmf_sdiod_addrprep(sdiodev, &addr);
-+                      if (ret)
-+                              goto done;
--      if (ret == -ENOMEDIUM)
--              brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM);
-+                      sdio_writel(sdiodev->func[1], *(u32 *)data, addr, &ret);
-+                      break;
-+              default:
-+                      WARN(1, "Invalid reg size\n");
-+                      ret = -EINVAL;
-+                      break;
-+              }
-+      }
-+done:
-       return ret;
- }
- static int brcmf_sdiod_reg_read(struct brcmf_sdio_dev *sdiodev, u32 addr,
-                               u8 regsz, void *data)
- {
--      u8 func;
--      s32 retry = 0;
-       int ret;
--      if (sdiodev->state == BRCMF_SDIOD_NOMEDIUM)
--              return -ENOMEDIUM;
--
-       /*
-        * figure out how to read the register based on address range
-        * 0x00 ~ 0x7FF: function 0 CCCR and FBR
-        * 0x10000 ~ 0x1FFFF: function 1 miscellaneous registers
-        * The rest: function 1 silicon backplane core registers
-+       * f0 reads must be bytewise
-        */
--      if ((addr & ~REG_F0_REG_MASK) == 0)
--              func = SDIO_FUNC_0;
--      else
--              func = SDIO_FUNC_1;
--
--      do {
--              memset(data, 0, regsz);
--
--              /* for retry wait for 1 ms till bus get settled down */
--              if (retry)
--                      usleep_range(1000, 2000);
--
--              ret = brcmf_sdiod_request_data(sdiodev, func, addr, regsz,
--                                             data, false);
--
--      } while (ret != 0 && ret != -ENOMEDIUM &&
--               retry++ < SDIOH_API_ACCESS_RETRY_LIMIT);
--
--      if (ret == -ENOMEDIUM)
--              brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM);
--
--      return ret;
--}
--
--static int
--brcmf_sdiod_set_sbaddr_window(struct brcmf_sdio_dev *sdiodev, u32 address)
--{
--      int err = 0, i;
--      u32 addr;
--
--      if (sdiodev->state == BRCMF_SDIOD_NOMEDIUM)
--              return -ENOMEDIUM;
--
--      addr = (address & SBSDIO_SBWINDOW_MASK) >> 8;
--
--      for (i = 0 ; i < 3 && !err ; i++, addr >>= 8)
--              brcmf_sdiod_regwb(sdiodev, SBSDIO_FUNC1_SBADDRLOW + i,
--                                addr & 0xff, &err);
--
--      return err;
--}
--
--static int
--brcmf_sdiod_addrprep(struct brcmf_sdio_dev *sdiodev, u32 *addr)
--{
--      uint bar0 = *addr & ~SBSDIO_SB_OFT_ADDR_MASK;
--      int err = 0;
--
--      if (bar0 != sdiodev->sbwad) {
--              err = brcmf_sdiod_set_sbaddr_window(sdiodev, bar0);
--              if (err)
--                      return err;
-+      if ((addr & ~REG_F0_REG_MASK) == 0) {
-+              if (WARN_ON(regsz > 1))
-+                      return -EINVAL;
-+              *(u8 *)data = sdio_f0_readb(sdiodev->func[0], addr, &ret);
-+      } else {
-+              switch (regsz) {
-+              case 1:
-+                      *(u8 *)data = sdio_readb(sdiodev->func[1], addr, &ret);
-+                      break;
-+              case 4:
-+                      ret = brcmf_sdiod_addrprep(sdiodev, &addr);
-+                      if (ret)
-+                              goto done;
--              sdiodev->sbwad = bar0;
-+                      *(u32 *)data = sdio_readl(sdiodev->func[1], addr, &ret);
-+                      break;
-+              default:
-+                      WARN(1, "Invalid reg size\n");
-+                      ret = -EINVAL;
-+                      break;
-+              }
-       }
--      *addr &= SBSDIO_SB_OFT_ADDR_MASK;
--      *addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
--
--      return 0;
-+done:
-+      return ret;
- }
- u8 brcmf_sdiod_regrb(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret)
-@@ -439,15 +387,9 @@ u32 brcmf_sdiod_regrl(struct brcmf_sdio_
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
--      retval = brcmf_sdiod_addrprep(sdiodev, &addr);
--      if (retval)
--              goto done;
--
-       retval = brcmf_sdiod_reg_read(sdiodev, addr, 4, &data);
--
-       brcmf_dbg(SDIO, "data:0x%08x\n", data);
--done:
-       if (ret)
-               *ret = retval;
-@@ -472,13 +414,8 @@ void brcmf_sdiod_regwl(struct brcmf_sdio
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x, data:0x%08x\n", addr, data);
--      retval = brcmf_sdiod_addrprep(sdiodev, &addr);
--      if (retval)
--              goto done;
--
-       retval = brcmf_sdiod_reg_write(sdiodev, addr, 4, &data);
--done:
-       if (ret)
-               *ret = retval;
- }
-@@ -886,14 +823,12 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev
-       return bcmerror;
- }
--int brcmf_sdiod_abort(struct brcmf_sdio_dev *sdiodev, uint fn)
-+int brcmf_sdiod_abort(struct brcmf_sdio_dev *sdiodev, u8 fn)
- {
--      char t_func = (char)fn;
-       brcmf_dbg(SDIO, "Enter\n");
-       /* issue abort cmd52 command through F0 */
--      brcmf_sdiod_request_data(sdiodev, SDIO_FUNC_0, SDIO_CCCR_ABORT,
--                               1, &t_func, true);
-+      brcmf_sdiod_reg_write(sdiodev, SDIO_CCCR_ABORT, 1, &fn);
-       brcmf_dbg(SDIO, "Exit\n");
-       return 0;
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h
-@@ -339,7 +339,7 @@ int brcmf_sdiod_ramrw(struct brcmf_sdio_
-                     u8 *data, uint size);
- /* Issue an abort to the specified function */
--int brcmf_sdiod_abort(struct brcmf_sdio_dev *sdiodev, uint fn);
-+int brcmf_sdiod_abort(struct brcmf_sdio_dev *sdiodev, u8 fn);
- void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev);
- void brcmf_sdiod_change_state(struct brcmf_sdio_dev *sdiodev,
-                             enum brcmf_sdiod_state state);
diff --git a/package/kernel/mac80211/patches/311-v4.16-0008-brcmfmac-Fix-asymmetric-IO-functions.patch b/package/kernel/mac80211/patches/311-v4.16-0008-brcmfmac-Fix-asymmetric-IO-functions.patch
deleted file mode 100644 (file)
index bcf5972..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3508a056a1f45d95c874fc9af8748bf4229432b6 Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:45 +0100
-Subject: [PATCH] brcmfmac: Fix asymmetric IO functions.
-
-Unlikely to be a problem, but brcmf_sdiod_regrl() is
-not symmetric with brcmf_sdiod_regrb() in initializing
-the data value on stack. Fix that.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-[arend: reword the commit message a bit]
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -383,7 +383,7 @@ u8 brcmf_sdiod_regrb(struct brcmf_sdio_d
- u32 brcmf_sdiod_regrl(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret)
- {
--      u32 data = 0;
-+      u32 data;
-       int retval;
-       brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
diff --git a/package/kernel/mac80211/patches/311-v4.16-0009-brcmfmac-Remove-noisy-debugging.patch b/package/kernel/mac80211/patches/311-v4.16-0009-brcmfmac-Remove-noisy-debugging.patch
deleted file mode 100644 (file)
index 9a57045..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-From 12e3e74e2820e11d91ee44fd3a190cd80d109faa Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:46 +0100
-Subject: [PATCH] brcmfmac: Remove noisy debugging.
-
-If you need debugging this low level, you're doing something wrong.
-Remove these noisy debug statements so the code is more readable.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 6 ------
- 1 file changed, 6 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -371,9 +371,7 @@ u8 brcmf_sdiod_regrb(struct brcmf_sdio_d
-       u8 data;
-       int retval;
--      brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
-       retval = brcmf_sdiod_reg_read(sdiodev, addr, 1, &data);
--      brcmf_dbg(SDIO, "data:0x%02x\n", data);
-       if (ret)
-               *ret = retval;
-@@ -386,9 +384,7 @@ u32 brcmf_sdiod_regrl(struct brcmf_sdio_
-       u32 data;
-       int retval;
--      brcmf_dbg(SDIO, "addr:0x%08x\n", addr);
-       retval = brcmf_sdiod_reg_read(sdiodev, addr, 4, &data);
--      brcmf_dbg(SDIO, "data:0x%08x\n", data);
-       if (ret)
-               *ret = retval;
-@@ -401,7 +397,6 @@ void brcmf_sdiod_regwb(struct brcmf_sdio
- {
-       int retval;
--      brcmf_dbg(SDIO, "addr:0x%08x, data:0x%02x\n", addr, data);
-       retval = brcmf_sdiod_reg_write(sdiodev, addr, 1, &data);
-       if (ret)
-@@ -413,7 +408,6 @@ void brcmf_sdiod_regwl(struct brcmf_sdio
- {
-       int retval;
--      brcmf_dbg(SDIO, "addr:0x%08x, data:0x%08x\n", addr, data);
-       retval = brcmf_sdiod_reg_write(sdiodev, addr, 4, &data);
-       if (ret)
diff --git a/package/kernel/mac80211/patches/311-v4.16-0010-brcmfmac-Rename-bcmerror-to-err.patch b/package/kernel/mac80211/patches/311-v4.16-0010-brcmfmac-Rename-bcmerror-to-err.patch
deleted file mode 100644 (file)
index dd153fe..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-From dd8a2d49e4ed321ab8e7b679499c3a98ccc5ca24 Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Mon, 13 Nov 2017 21:35:47 +0100
-Subject: [PATCH] brcmfmac: Rename bcmerror to err
-
-Trivial cleanup of nasty variable name
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -746,7 +746,7 @@ int
- brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address,
-                 u8 *data, uint size)
- {
--      int bcmerror = 0;
-+      int err = 0;
-       struct sk_buff *pkt;
-       u32 sdaddr;
-       uint dsize;
-@@ -771,8 +771,8 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev
-       /* Do the transfer(s) */
-       while (size) {
-               /* Set the backplane window to include the start address */
--              bcmerror = brcmf_sdiod_set_sbaddr_window(sdiodev, address);
--              if (bcmerror)
-+              err = brcmf_sdiod_set_sbaddr_window(sdiodev, address);
-+              if (err)
-                       break;
-               brcmf_dbg(SDIO, "%s %d bytes at offset 0x%08x in window 0x%08x\n",
-@@ -785,9 +785,9 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev
-               skb_put(pkt, dsize);
-               if (write)
-                       memcpy(pkt->data, data, dsize);
--              bcmerror = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_1, write,
--                                            sdaddr, pkt);
--              if (bcmerror) {
-+              err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_1, write, sdaddr,
-+                                       pkt);
-+              if (err) {
-                       brcmf_err("membytes transfer failed\n");
-                       break;
-               }
-@@ -814,7 +814,7 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev
-       sdio_release_host(sdiodev->func[1]);
--      return bcmerror;
-+      return err;
- }
- int brcmf_sdiod_abort(struct brcmf_sdio_dev *sdiodev, u8 fn)
diff --git a/package/kernel/mac80211/patches/312-v4.16-0001-brcmfmac-Split-brcmf_sdiod_buffrw-function-up.patch b/package/kernel/mac80211/patches/312-v4.16-0001-brcmfmac-Split-brcmf_sdiod_buffrw-function-up.patch
deleted file mode 100644 (file)
index c260b96..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From 8f13c87ccc495e30de5f58bbda967f6edd5bec53 Mon Sep 17 00:00:00 2001
-From: Ian Molton <ian@mnementh.co.uk>
-Date: Fri, 8 Dec 2017 13:10:26 +0100
-Subject: [PATCH] brcmfmac: Split brcmf_sdiod_buffrw function up.
-
-This function needs to be split up into separate read / write variants
-for clarity.
-
-Signed-off-by: Ian Molton <ian@mnementh.co.uk>
-Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c  | 67 +++++++++++++++-------
- 1 file changed, 45 insertions(+), 22 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -414,8 +414,8 @@ void brcmf_sdiod_regwl(struct brcmf_sdio
-               *ret = retval;
- }
--static int brcmf_sdiod_buffrw(struct brcmf_sdio_dev *sdiodev, uint fn,
--                           bool write, u32 addr, struct sk_buff *pkt)
-+static int brcmf_sdiod_buff_read(struct brcmf_sdio_dev *sdiodev, uint fn,
-+                               u32 addr, struct sk_buff *pkt)
- {
-       unsigned int req_sz;
-       int err;
-@@ -424,18 +424,36 @@ static int brcmf_sdiod_buffrw(struct brc
-       req_sz = pkt->len + 3;
-       req_sz &= (uint)~3;
--      if (write)
--              err = sdio_memcpy_toio(sdiodev->func[fn], addr,
--                                     ((u8 *)(pkt->data)), req_sz);
--      else if (fn == 1)
--              err = sdio_memcpy_fromio(sdiodev->func[fn], ((u8 *)(pkt->data)),
--                                       addr, req_sz);
-+      if (fn == 1)
-+              err = sdio_memcpy_fromio(sdiodev->func[fn],
-+                                       ((u8 *)(pkt->data)), addr, req_sz);
-       else
-               /* function 2 read is FIFO operation */
--              err = sdio_readsb(sdiodev->func[fn], ((u8 *)(pkt->data)), addr,
--                                req_sz);
-+              err = sdio_readsb(sdiodev->func[fn],
-+                                ((u8 *)(pkt->data)), addr, req_sz);
-+
-+      if (err == -ENOMEDIUM)
-+              brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM);
-+
-+      return err;
-+}
-+
-+static int brcmf_sdiod_buff_write(struct brcmf_sdio_dev *sdiodev, uint fn,
-+                                u32 addr, struct sk_buff *pkt)
-+{
-+      unsigned int req_sz;
-+      int err;
-+
-+      /* Single skb use the standard mmc interface */
-+      req_sz = pkt->len + 3;
-+      req_sz &= (uint)~3;
-+
-+      err = sdio_memcpy_toio(sdiodev->func[fn], addr,
-+                             ((u8 *)(pkt->data)), req_sz);
-+
-       if (err == -ENOMEDIUM)
-               brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_NOMEDIUM);
-+
-       return err;
- }
-@@ -643,7 +661,7 @@ int brcmf_sdiod_recv_pkt(struct brcmf_sd
-       if (err)
-               goto done;
--      err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, false, addr, pkt);
-+      err = brcmf_sdiod_buff_read(sdiodev, SDIO_FUNC_2, addr, pkt);
- done:
-       return err;
-@@ -665,14 +683,14 @@ int brcmf_sdiod_recv_chain(struct brcmf_
-               goto done;
-       if (pktq->qlen == 1)
--              err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, false, addr,
--                                       pktq->next);
-+              err = brcmf_sdiod_buff_read(sdiodev, SDIO_FUNC_2, addr,
-+                                          pktq->next);
-       else if (!sdiodev->sg_support) {
-               glom_skb = brcmu_pkt_buf_get_skb(totlen);
-               if (!glom_skb)
-                       return -ENOMEM;
--              err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, false, addr,
--                                       glom_skb);
-+              err = brcmf_sdiod_buff_read(sdiodev, SDIO_FUNC_2, addr,
-+                                          glom_skb);
-               if (err)
-                       goto done;
-@@ -707,8 +725,7 @@ int brcmf_sdiod_send_buf(struct brcmf_sd
-       err = brcmf_sdiod_addrprep(sdiodev, &addr);
-       if (!err)
--              err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, true, addr,
--                                       mypkt);
-+              err = brcmf_sdiod_buff_write(sdiodev, SDIO_FUNC_2, addr, mypkt);
-       brcmu_pkt_buf_free_skb(mypkt);
-       return err;
-@@ -730,8 +747,8 @@ int brcmf_sdiod_send_pkt(struct brcmf_sd
-       if (pktq->qlen == 1 || !sdiodev->sg_support)
-               skb_queue_walk(pktq, skb) {
--                      err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, true,
--                                               addr, skb);
-+                      err = brcmf_sdiod_buff_write(sdiodev, SDIO_FUNC_2,
-+                                                   addr, skb);
-                       if (err)
-                               break;
-               }
-@@ -783,10 +800,16 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev
-               sdaddr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
-               skb_put(pkt, dsize);
--              if (write)
-+
-+              if (write) {
-                       memcpy(pkt->data, data, dsize);
--              err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_1, write, sdaddr,
--                                       pkt);
-+                      err = brcmf_sdiod_buff_write(sdiodev, SDIO_FUNC_1,
-+                                                   sdaddr, pkt);
-+              } else {
-+                      err = brcmf_sdiod_buff_read(sdiodev, SDIO_FUNC_1,
-+                                                  sdaddr, pkt);
-+              }
-+
-               if (err) {
-                       brcmf_err("membytes transfer failed\n");
-                       break;
diff --git