Message ID | 1487144021-27808-1-git-send-email-abhimanyu.vishwakarma@imgtec.com |
---|---|
State | Changes Requested |
Headers | show |
On 15-02-17 08:33, Abhimanyu V wrote: > From: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> > > Wifi kernel module and firmware for Imagination explorer RPU > > Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> > Reviewed-by: Rahul Bedarkar <Rahul.Bedarkar@imgtec.com> [snip] > 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@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. Is this patch submitted upstream? Or if it is not for upstream, please specify why not. > + > + Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> [snip] > 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 Help text should be indented at 72 columns, where the tab counts as 8 (so 62 actual characters). > + > + 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.hash b/package/uccp420wlan/uccp420wlan.hash > new file mode 100644 > index 0000000..9e54f21 > --- /dev/null > +++ b/package/uccp420wlan/uccp420wlan.hash > @@ -0,0 +1,2 @@ > +# locally computed hash > +sha256 c5b1194cb9fae049169b261548eaf18d87afce1c7388f7a0366bb5dd2a56cdb2 uccp420wlan-v6.9.tar.gz > 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) This is annoying. Proprietary means that no license is given here. So basically we're not allowed to use it. I suppose you're fairly close to upstream, is there a chance to get an actual license text for the firmware blob so people can determine if they're allowed to use it or not? > +UCCP420WLAN_LICENSE_FILES = COPYING For the record: the COPYING file only has GPLv2 + Linus explanation. There is no license text for the firmware blob. Regards, Arnout > + > +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)) >
Thanks Arnout! On Friday 17 February 2017 03:04 AM, Arnout Vandecappelle wrote: > > On 15-02-17 08:33, Abhimanyu V wrote: >> From: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> >> >> Wifi kernel module and firmware for Imagination explorer RPU >> >> Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> >> Reviewed-by: Rahul Bedarkar <Rahul.Bedarkar@imgtec.com> > [snip] > >> 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@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. > Is this patch submitted upstream? Or if it is not for upstream, please specify > why not. I have been speaking to team maintaining the repo and they agreed that this patch should not be part of this repo, i have posted pull request for the same. This repo was mostly used with openwrt till now so the reason for this patch. >> + >> + Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> > [snip] >> 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 > Help text should be indented at 72 columns, where the tab counts as 8 (so 62 > actual characters). Will fix it. > >> + >> + 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.hash b/package/uccp420wlan/uccp420wlan.hash >> new file mode 100644 >> index 0000000..9e54f21 >> --- /dev/null >> +++ b/package/uccp420wlan/uccp420wlan.hash >> @@ -0,0 +1,2 @@ >> +# locally computed hash >> +sha256 c5b1194cb9fae049169b261548eaf18d87afce1c7388f7a0366bb5dd2a56cdb2 uccp420wlan-v6.9.tar.gz >> 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) > This is annoying. Proprietary means that no license is given here. So basically > we're not allowed to use it. I suppose you're fairly close to upstream, is there > a chance to get an actual license text for the firmware blob so people can > determine if they're allowed to use it or not? > >> +UCCP420WLAN_LICENSE_FILES = COPYING > For the record: the COPYING file only has GPLv2 + Linus explanation. There is > no license text for the firmware blob. Yes firmware blob license text got missed when we moved this repo from internal to github. I have raised PR for the same. > > Regards, > Arnout > >> + >> +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)) >> I will wait for new release with the above fixes to post new version of this patch. Thanks and Regards, Abhimanyu V
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@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@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.hash b/package/uccp420wlan/uccp420wlan.hash new file mode 100644 index 0000000..9e54f21 --- /dev/null +++ b/package/uccp420wlan/uccp420wlan.hash @@ -0,0 +1,2 @@ +# locally computed hash +sha256 c5b1194cb9fae049169b261548eaf18d87afce1c7388f7a0366bb5dd2a56cdb2 uccp420wlan-v6.9.tar.gz 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))