[Buildroot] [PATCH 1/2] uccp420wlan: new package
Abhimanyu V
abhimanyu.vishwakarma at imgtec.com
Tue Feb 14 11:26:44 UTC 2017
From: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma at imgtec.com>
Wifi kernel module and firmware for Imagination explorer RPU
Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma at imgtec.com>
Reviewed-by: Rahul Bedarkar <Rahul.Bedarkar at imgtec.com>
---
package/Config.in | 1 +
...001-fix-compilation-error-with-kernel-4.4.patch | 90 ++++++++++++++++++++++
package/uccp420wlan/Config.in | 13 ++++
package/uccp420wlan/uccp420wlan.mk | 20 +++++
4 files changed, 124 insertions(+)
create mode 100644 package/uccp420wlan/0001-fix-compilation-error-with-kernel-4.4.patch
create mode 100644 package/uccp420wlan/Config.in
create mode 100644 package/uccp420wlan/uccp420wlan.mk
diff --git a/package/Config.in b/package/Config.in
index deff0fe..ef5f849 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -474,6 +474,7 @@ endmenu
source "package/ti-uim/Config.in"
source "package/ti-utils/Config.in"
source "package/triggerhappy/Config.in"
+ source "package/uccp420wlan/Config.in"
source "package/uboot-tools/Config.in"
source "package/ubus/Config.in"
source "package/udev/Config.in"
diff --git a/package/uccp420wlan/0001-fix-compilation-error-with-kernel-4.4.patch b/package/uccp420wlan/0001-fix-compilation-error-with-kernel-4.4.patch
new file mode 100644
index 0000000..43026b8
--- /dev/null
+++ b/package/uccp420wlan/0001-fix-compilation-error-with-kernel-4.4.patch
@@ -0,0 +1,90 @@
+commit b5f449a2c48d2fe7c9341b32fea5a62dd6699e38
+Author: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma at imgtec.com>
+Date: Mon Jan 2 16:15:22 2017 +0530
+
+ Fix compilation error with kernel 4.4
+
+ Revert "Fix errors/warnings while compiling against kmod-mac80211"
+
+ This reverts commit e62baef655898526c69250bc63723241f3f4c46d.
+
+ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma at imgtec.com>
+
+diff --git a/src/80211_if.c b/src/80211_if.c
+index 6291194..5ce61b7 100644
+--- a/src/80211_if.c
++++ b/src/80211_if.c
+@@ -1467,7 +1467,9 @@ static void init_hw(struct ieee80211_hw *hw)
+
+ static int ampdu_action(struct ieee80211_hw *hw,
+ struct ieee80211_vif *vif,
+- struct ieee80211_ampdu_params *params)
++ enum ieee80211_ampdu_mlme_action action,
++ struct ieee80211_sta *sta,
++ u16 tid, u16 *ssn, u8 buf_size, bool amsdu)
+ {
+ int ret = 0;
+ unsigned int val = 0;
+@@ -1476,14 +1478,14 @@ static int ampdu_action(struct ieee80211_hw *hw,
+ UCCP_DEBUG_80211IF("%s-80211IF: ampdu action started\n",
+ ((struct mac80211_dev *)(hw->priv))->name);
+ /* TODO */
+- switch (params->action) {
++ switch (action) {
+ case IEEE80211_AMPDU_RX_START:
+ {
+- val = params->tid | TID_INITIATOR_AP;
++ val = tid | TID_INITIATOR_AP;
+ dev->tid_info[val].tid_state = TID_STATE_AGGR_START;
+- dev->tid_info[val].ssn = params->ssn;
++ dev->tid_info[val].ssn = *ssn;
+ uccp420wlan_prog_ba_session_data(1,
+- params->tid,
++ tid,
+ &dev->tid_info[val].ssn,
+ 1,
+ vif->addr,
+@@ -1492,10 +1494,10 @@ static int ampdu_action(struct ieee80211_hw *hw,
+ break;
+ case IEEE80211_AMPDU_RX_STOP:
+ {
+- val = params->tid | TID_INITIATOR_AP;
++ val = tid | TID_INITIATOR_AP;
+ dev->tid_info[val].tid_state = TID_STATE_AGGR_STOP;
+ uccp420wlan_prog_ba_session_data(0,
+- params->tid,
++ tid,
+ &dev->tid_info[val].ssn,
+ 1,
+ vif->addr,
+@@ -1504,24 +1506,24 @@ static int ampdu_action(struct ieee80211_hw *hw,
+ break;
+ case IEEE80211_AMPDU_TX_START:
+ {
+- val = params->tid | TID_INITIATOR_STA;
+- ieee80211_start_tx_ba_cb_irqsafe(vif, params->sta->addr, params->tid);
++ val = tid | TID_INITIATOR_STA;
++ ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+ dev->tid_info[val].tid_state = TID_STATE_AGGR_START;
+- dev->tid_info[val].ssn = params->ssn;
++ dev->tid_info[val].ssn = *ssn;
+ }
+ break;
+ case IEEE80211_AMPDU_TX_STOP_FLUSH:
+ case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT:
+ case IEEE80211_AMPDU_TX_STOP_CONT:
+ {
+- val = params->tid | TID_INITIATOR_STA;
++ val = tid | TID_INITIATOR_STA;
+ dev->tid_info[val].tid_state = TID_STATE_AGGR_STOP;
+- ieee80211_stop_tx_ba_cb_irqsafe(vif, params->sta->addr, params->tid);
++ ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
+ }
+ break;
+ case IEEE80211_AMPDU_TX_OPERATIONAL:
+ {
+- val = params->tid | TID_INITIATOR_STA;
++ val = tid | TID_INITIATOR_STA;
+ dev->tid_info[val].tid_state = TID_STATE_AGGR_OPERATIONAL;
+ }
+ break;
diff --git a/package/uccp420wlan/Config.in b/package/uccp420wlan/Config.in
new file mode 100644
index 0000000..8f0df12
--- /dev/null
+++ b/package/uccp420wlan/Config.in
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_UCCP420WLAN
+ bool "uccp420wlan"
+ depends on BR2_LINUX_KERNEL
+ help
+ SoftMAC (mac80211) based WiFi driver for Imagination's Explorer RPU uccp420.
+ This supports Dual Band WiFi with 2.4GHz - 2x2 b/g/n 40MHz, 5GHz - 2x2 a/n/11ac 80MHz modes
+
+ Used in creator ci40 board.
+
+ https://github.com/CreatorDev/uccp420wlan
+
+comment "uccp420wlan needs a Linux kernel to be built"
+ depends on !BR2_LINUX_KERNEL
diff --git a/package/uccp420wlan/uccp420wlan.mk b/package/uccp420wlan/uccp420wlan.mk
new file mode 100644
index 0000000..f3c8064
--- /dev/null
+++ b/package/uccp420wlan/uccp420wlan.mk
@@ -0,0 +1,20 @@
+################################################################################
+#
+# uccp420wlan
+#
+################################################################################
+
+UCCP420WLAN_VERSION = v6.9
+UCCP420WLAN_SITE = $(call github,CreatorDev,uccp420wlan,$(UCCP420WLAN_VERSION))
+UCCP420WLAN_LICENSE = GPLv2 (kernel module), proprietary (firmware blob)
+UCCP420WLAN_LICENSE_FILES = COPYING
+
+define UCCP420WLAN_INSTALL_FIRMWARE
+ mkdir -p $(TARGET_DIR)/lib/firmware/img/uccp420wlan
+ cp $(@D)/firmware/*.ldr $(TARGET_DIR)/lib/firmware/img/uccp420wlan
+endef
+
+UCCP420WLAN_POST_INSTALL_TARGET_HOOKS += UCCP420WLAN_INSTALL_FIRMWARE
+
+$(eval $(kernel-module))
+$(eval $(generic-package))
--
2.7.4
More information about the buildroot
mailing list