I need a wlan driver (ATH10K_SDIO) in a device which is currently running Kernel Version 4.14 where only an experimental, non-functioning version of this driver is available. Upgrading the kernel is not really an option.

I tried backporting drivers from the Linux Kernel v4.19 to Linux Kernel v4.14. I used the backports repo branch linux-4.19.y to backport and integrate the drivers into the older kernel source tree. This failed due the patch 0090-remove-GRO_CONSUMED.patch.

Even when I removed this patch from the patch list the backporting still failed ( It could not patch the integration patch into the source tree ).

All this made me wonder, is this how you are to use the driver backport tool. If so, what am I missing?



Edit: The device I need the driver for is using https://github.com/Xilinx/linux-xlnx (Version 2018.2) which has hundreds of changes on top of Linux 4.14 so using Linux Stable is not really an option. But the error described above also happens when using 4.14.0 exactly.

wo@xyz:~/Documents/backports$ ./gentree.py --integrate --clean --verbose --gitdebug ~/Documents/linux/ ~/Documents/linux-ath/
Copy original source files ...
Applying patches from patches to /home/wo/Documents/linux-ath/backports/ ...
Applying patch 0000-upstream-backport-changes/0005-uapi-compromise/mwifiex.patch
> patching file drivers/net/wireless/marvell/mwifiex/decl.h
> patching file drivers/net/wireless/marvell/mwifiex/sta_rx.c
Applying patch 0002-disable-dump-adjust-on-old-kernels.patch
> patching file net/wireless/nl80211.c
> Hunk #1 succeeded at 2174 (offset -33 lines).
> Hunk #2 succeeded at 2196 (offset -33 lines).
Applying patch 0003-cfg80211-wext-padding/include_net_cfg80211.patch
> patching file include/net/cfg80211.h
> Hunk #1 succeeded at 3971 (offset -1 lines).
Applying patch 0003-cfg80211-wext-padding/net_wireless_core.patch
> patching file net/wireless/core.c
Applying patch 0004-disable-wext-kconfig.patch
> patching file net/wireless/Kconfig
Applying patch 0005-disable-usb-net-asix.patch
> patching file drivers/net/usb/Makefile
Applying patch 0010-add-wext-handlers-to-netdev/net_wireless_core.patch
> patching file net/wireless/core.c
Applying patch 0012-driver-quirks/drivers_net_wireless_cw1200_sdio.patch
> patching file drivers/net/wireless/st/cw1200/cw1200_sdio.c
Applying patch 0013-fix-makefile-includes/ath10k.patch
> patching file drivers/net/wireless/ath/ath10k/htt.h
Applying patch 0013-fix-makefile-includes/mt76.patch
> patching file drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
> patching file drivers/net/wireless/mediatek/mt76/usb_mcu.c
> patching file drivers/net/wireless/mediatek/mt76/mt76x2_eeprom.c
> patching file drivers/net/wireless/mediatek/mt76/usb.c
Applying patch 0014-netlink_seq/net_wireless_nl80211.patch
> patching file net/wireless/nl80211.c
> Hunk #1 succeeded at 8207 (offset -48 lines).
Applying patch 0015-rename_pm_qos_request/drivers_net_wireless_ipw2x00_ipw2100.patch
> patching file drivers/net/wireless/intel/ipw2x00/ipw2100.c
Applying patch 0016-libertas-olpc-ec-wakeup/drivers_net_wireless_libertas_if_usb.patch
> patching file drivers/net/wireless/marvell/libertas/if_usb.c
> Hunk #1 succeeded at 938 (offset 1 line).
> Hunk #2 succeeded at 947 (offset 1 line).
Applying patch 0018-pv-trace-fixes/drivers_net_wireless_iwlwifi_iwl-debug.patch
> patching file drivers/net/wireless/intel/iwlwifi/iwl-debug.c
Applying patch 0018-pv-trace-fixes/net_mac80211_trace.patch
> patching file net/mac80211/trace.c
Applying patch 0021-umode_t-api-change/ath10k.patch
> patching file drivers/net/wireless/ath/ath10k/spectral.c
Applying patch 0021-umode_t-api-change/ath9k.patch
> patching file drivers/net/wireless/ath/ath9k/common-spectral.c
Applying patch 0022-define-tracing/ath6kl.patch
> patching file drivers/net/wireless/ath/ath6kl/trace.c
Applying patch 0022-define-tracing/cfg80211.patch
> patching file net/wireless/trace.c
Applying patch 0022-define-tracing/mt7601u.patch
> patching file drivers/net/wireless/mediatek/mt7601u/trace.c
Applying patch 0022-define-tracing/wil6210.patch
> patching file drivers/net/wireless/ath/wil6210/trace.c
Applying patch 0024-led-blink-api/mac80211.patch
> patching file net/mac80211/ieee80211_i.h
> patching file net/mac80211/led.h
Applying patch 0025-usb-sg/usbnet.patch
> patching file drivers/net/usb/usbnet.c
> Hunk #1 succeeded at 1313 (offset -9 lines).
> Hunk #2 succeeded at 1346 (offset -9 lines).
> Hunk #3 succeeded at 1408 (offset -9 lines).
> Hunk #4 succeeded at 1487 (offset -14 lines).
> Hunk #5 succeeded at 1542 (offset -14 lines).
> Hunk #6 succeeded at 1911 (offset -14 lines).
Applying patch 0026-ipv6_stub/cdc_mbim.patch
> patching file drivers/net/usb/cdc_mbim.c
Applying patch 0028-select_queue/mac80211.patch
> patching file net/mac80211/iface.c
> Hunk #1 succeeded at 1128 (offset -3 lines).
> Hunk #2 succeeded at 1189 (offset -3 lines).
Applying patch 0028-select_queue/mwifiex.patch
> patching file drivers/net/wireless/marvell/mwifiex/main.c
Applying patch 0028-select_queue/rtl8188eu.patch
> patching file drivers/staging/rtl8188eu/os_dep/os_intfs.c
Applying patch 0028-select_queue/rtl8723bs.patch
> patching file drivers/staging/rtl8723bs/os_dep/os_intfs.c
Applying patch 0033-ndo_vlan_rx_vid/cdc_mbim.patch
> patching file drivers/net/usb/cdc_mbim.c
Applying patch 0051-no-wakeup_path/ssb.patch
> patching file drivers/ssb/pcihost_wrapper.c
Applying patch 0053-possible_net_t.patch
> patching file include/net/cfg80211.h
> Hunk #1 succeeded at 4113 (offset -1 lines).
Applying patch 0055-name_assign_type/brcmfmac.patch
> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
Applying patch 0060-trace_field_struct/mt7601u.patch
> patching file drivers/net/wireless/mediatek/mt7601u/trace.h
Applying patch 0069-iwlwifi-pd-string-fix.patch
> patching file drivers/net/wireless/intel/iwlwifi/dvm/debugfs.c
> patching file drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c
> patching file drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
Applying patch 0069-remove-of_irq/bcma.patch
> patching file drivers/bcma/main.c
Applying patch 0070-mac80211-fils.patch
> patching file net/mac80211/fils_aead.c
> patching file net/mac80211/fils_aead.h
> patching file net/mac80211/main.c
Applying patch 0071-skb-head_frag/wireless.patch
> patching file net/wireless/util.c
Applying patch 0075-ndo-stats-64/usbnet.patch
> patching file drivers/net/usb/usbnet.c
> Hunk #1 succeeded at 1016 (offset -9 lines).
> patching file include/linux/usb/usbnet.h
Applying patch 0077-genl-ro-after-init/hwsim.patch
> patching file drivers/net/wireless/mac80211_hwsim.c
> Hunk #1 succeeded at 3551 (offset -2 lines).
Applying patch 0077-genl-ro-after-init/nl80211.patch
> patching file net/wireless/nl80211.c
> Hunk #1 succeeded at 13916 (offset -58 lines).
Applying patch 0079-netdev-destructor/brcmfmac.patch
> patching file drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> Hunk #1 succeeded at 582 (offset -1 lines).
> Hunk #2 succeeded at 771 (offset -1 lines).
Applying patch 0083-timer_list.patch
> patching file drivers/net/wireless/atmel/at76c50x-usb.c
Applying patch 0084-disable-some-staging-dirs.patch
> patching file drivers/staging/Makefile
Applying patch 0085-iwlwifi-pci-device-removal.patch
> patching file drivers/net/wireless/intel/iwlwifi/pcie/trans.c
> Hunk #1 succeeded at 1947 (offset -12 lines).
> Hunk #2 succeeded at 1958 (offset -12 lines).
Applying patch 0090-remove-GRO_CONSUMED.patch
> patching file drivers/net/wireless/ath/wil6210/txrx.c
> Hunk #1 FAILED at 737.
> 1 out of 1 hunk FAILED -- saving rejects to file drivers/net/wireless/ath/wil6210/txrx.c.rej

1 Answer 1


ATH10K_SDIO support is in the latest 4.14 update, so simply updating to a more recent 4.14 kernel version should give you the driver. I recommend updating the whole kernel and porting over the distro-specific patches you have.

Reference: kernel.org https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/net/wireless/ath/ath10k?h=linux-4.14.y

You should be able to forward port your current kernel changeset (be it yours or someone else's) into this using a GitHub fork.

  • Thanks for your quick response. Yes that would usually be the best option but I am using github.com/Xilinx/linux-xlnx (Version 2018.2). Sorry for not specifying that. They spent the last 12 years adding hundreds of downstream changes so rebasing those on top of the stable branch is quite difficult.
    – JWoeber
    Dec 13, 2019 at 6:54
  • In that case, it's better to diff out the patches from that branch, and copy them over to the new version. GitHub can even handle the patching process for this, identifying where any code conflicts are that you need to hand merge. This is what I meant by "distro-specific changes" Sometimes people do use a different kernel distro, from their Linux distro. Dec 15, 2019 at 12:19
  • I added the info in the above comment to my answer to provide a more complete solution. Dec 15, 2019 at 12:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .