From 716ca530e1c4515d8683c9d5be3d56b301758b66 Mon Sep 17 00:00:00 2001 From: James <> Date: Wed, 4 Nov 2015 11:49:21 +0000 Subject: trunk-47381 --- package/kernel/mwlwifi/Makefile | 62 ++++++++++++++++++++++ .../kernel/mwlwifi/patches/100-drop_old_api.patch | 36 +++++++++++++ package/kernel/mwlwifi/patches/110-ampdu_api.patch | 11 ++++ 3 files changed, 109 insertions(+) create mode 100644 package/kernel/mwlwifi/Makefile create mode 100644 package/kernel/mwlwifi/patches/100-drop_old_api.patch create mode 100644 package/kernel/mwlwifi/patches/110-ampdu_api.patch (limited to 'package/kernel/mwlwifi') diff --git a/package/kernel/mwlwifi/Makefile b/package/kernel/mwlwifi/Makefile new file mode 100644 index 0000000..bec2732 --- /dev/null +++ b/package/kernel/mwlwifi/Makefile @@ -0,0 +1,62 @@ +# +# Copyright (C) 2014-2015 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=mwlwifi +PKG_VERSION:=10.3.0.12-20151029 +PKG_RELEASE=1 + +PKG_LICENSE:=ISC +PKG_LICENSE_FILES:= + +PKG_SOURCE_URL:=https://github.com/kaloz/mwlwifi +PKG_SOURCE_PROTO:=git +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=30e6b06de659f1d5e46d1dd3bf590caf3529bb65 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz + +PKG_MAINTAINER:=Imre Kaloz +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/kernel.mk +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/mwlwifi + SUBMENU:=Wireless Drivers + TITLE:=Marvell 88W8864 wireless driver + DEPENDS:=+kmod-mac80211 +@DRIVER_11N_SUPPORT @PCI_SUPPORT @TARGET_mvebu + FILES:=$(PKG_BUILD_DIR)/mwlwifi.ko + AUTOLOAD:=$(call AutoLoad,50,mac80211 mwlwifi) +endef + +NOSTDINC_FLAGS = \ + -I$(PKG_BUILD_DIR) \ + -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \ + -I$(STAGING_DIR)/usr/include/mac80211-backport \ + -I$(STAGING_DIR)/usr/include/mac80211/uapi \ + -I$(STAGING_DIR)/usr/include/mac80211 \ + -include backport/backport.h + +define Build/Compile + +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \ + ARCH="$(LINUX_KARCH)" \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + SUBDIRS="$(PKG_BUILD_DIR)" \ + NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \ + modules +endef + +define KernelPackage/mwlwifi/install + $(INSTALL_DIR) $(1)/lib/firmware + $(INSTALL_DIR) $(1)/lib/firmware/mwlwifi + $(CP) $(PKG_BUILD_DIR)/bin/firmware/88W8864.bin $(1)/lib/firmware/mwlwifi/ + $(CP) $(PKG_BUILD_DIR)/bin/firmware/88W8897.bin $(1)/lib/firmware/mwlwifi/ + $(CP) $(PKG_BUILD_DIR)/bin/firmware/Marvell_license.txt $(1)/lib/firmware/mwlwifi/ +endef + +$(eval $(call KernelPackage,mwlwifi)) diff --git a/package/kernel/mwlwifi/patches/100-drop_old_api.patch b/package/kernel/mwlwifi/patches/100-drop_old_api.patch new file mode 100644 index 0000000..1ab1615 --- /dev/null +++ b/package/kernel/mwlwifi/patches/100-drop_old_api.patch @@ -0,0 +1,36 @@ +--- a/main.c ++++ b/main.c +@@ -414,11 +414,7 @@ static void mwl_set_ht_caps(struct mwl_p + band->ht_cap.cap |= IEEE80211_HT_CAP_SGI_20; + band->ht_cap.cap |= IEEE80211_HT_CAP_SGI_40; + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0) +- hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION; +-#else + ieee80211_hw_set(hw, AMPDU_AGGREGATION); +-#endif + band->ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K; + band->ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_4; + +@@ -520,21 +516,13 @@ static int mwl_wl_init(struct mwl_priv * + hw->queues = SYSADPT_TX_WMM_QUEUES; + + /* Set rssi values to dBm */ +-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0) +- hw->flags |= IEEE80211_HW_SIGNAL_DBM | IEEE80211_HW_HAS_RATE_CONTROL; +-#else + ieee80211_hw_set(hw, SIGNAL_DBM); + ieee80211_hw_set(hw, HAS_RATE_CONTROL); +-#endif + + /* Ask mac80211 not to trigger PS mode + * based on PM bit of incoming frames. + */ +-#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0) +- hw->flags |= IEEE80211_HW_AP_LINK_PS; +-#else + ieee80211_hw_set(hw, AP_LINK_PS); +-#endif + + hw->vif_data_size = sizeof(struct mwl_vif); + hw->sta_data_size = sizeof(struct mwl_sta); diff --git a/package/kernel/mwlwifi/patches/110-ampdu_api.patch b/package/kernel/mwlwifi/patches/110-ampdu_api.patch new file mode 100644 index 0000000..5e52b09 --- /dev/null +++ b/package/kernel/mwlwifi/patches/110-ampdu_api.patch @@ -0,0 +1,11 @@ +--- a/mac80211.c ++++ b/mac80211.c +@@ -574,7 +574,7 @@ static int mwl_mac80211_ampdu_action(str + struct ieee80211_vif *vif, + enum ieee80211_ampdu_mlme_action action, + struct ieee80211_sta *sta, +- u16 tid, u16 *ssn, u8 buf_size) ++ u16 tid, u16 *ssn, u8 buf_size, bool amsdu) + { + int rc = 0; + struct mwl_priv *priv = hw->priv; -- cgit v1.2.3