Commit 14d4b01f authored by Manuel's avatar Manuel

Rebuild against new kernel

parent 5d7d6032
#
# Chakra Packages for Chakra, part of chakra-project.org
#
# maintainer abveritas@chakra-project.org
# Find the kernel name inside the chroot
_extramodules=extramodules-3.8-CHAKRA
_kver="$(cat /lib/modules/${_extramodules}/version)"
_kernver="$(cat /lib/modules/${_extramodules}/version)"
pkgname=broadcom-wl
pkgver=5.100.82.112
pkgrel=16
pkgrel=17
pkgdesc='Broadcom 802.11abgn hybrid Linux networking device driver'
arch=('x86_64')
url='http://www.broadcom.com/support/802.11/linux_sta.php'
arch=('i686' 'x86_64')
license=('custom')
depends=('linux>=3.8' 'linux<3.9')
depends=('linux')
makedepends=('linux-headers')
source=("http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_64-v${pkgver//./_}.tar.gz"
[[ $CARCH = x86_64 ]] && ARCH=x86_64 || ARCH=x86_32
source=("http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_${ARCH}-v${pkgver//./_}.tar.gz"
'modprobe.d'
'license.patch'
'user-ioctl.patch'
'linux-recent.patch')
sha1sums=('5bd78c20324e6a4aa9f3fafdc6f0155e884d5131'
sha1sums=('01aa32f9e85621253a3f15cf4361bb80d41da3e8'
'89bf92286ede30dd85304c6c4e42e89cfdc0f60a'
'ea7b67982ddc0f56fd3becb9914fd4458fe7d373'
'e0366dd15ea5b25aae0f61bec6be7a203dfca7e4'
'df3cd65e24beed349a40abcf476bdaa82bbc57d3')
'a41f11ffc18dbb126176259e02dd93b6ade04a10'
'64f99cde29168e7bd8508af30702c68f907556d9')
[[ $CARCH = x86_64 ]] && sha1sums[0]='5bd78c20324e6a4aa9f3fafdc6f0155e884d5131'
backup=('etc/modprobe.d/broadcom-wl.conf')
install=install
......@@ -34,11 +34,11 @@ install=install
build() {
cd "${srcdir}"
patch -p1 -i license.patch
patch -p1 -i linux-recent.patch
patch -p1 -i user-ioctl.patch
patch -p1 -i license.patch
make -C /lib/modules/"${_kver}"/build M=`pwd`
make -C /lib/modules/"${_kernver}"/build M=`pwd`
}
package() {
......
diff -Naur old/Makefile new/Makefile
--- old/Makefile 2012-10-15 23:08:11.256904135 +1100
+++ new/Makefile 2012-10-15 23:08:18.970262327 +1100
--- old/Makefile 2011-10-23 03:56:55.000000000 +1100
+++ new/Makefile 2013-03-18 23:40:48.561529595 +1100
@@ -15,21 +15,9 @@
ifneq ($(KERNELRELEASE),)
......@@ -26,8 +26,8 @@ diff -Naur old/Makefile new/Makefile
ifneq ($(API),)
ifeq ($(API), CFG80211)
diff -Naur old/src/wl/sys/wl_cfg80211.c new/src/wl/sys/wl_cfg80211.c
--- old/src/wl/sys/wl_cfg80211.c 2012-10-15 23:08:11.266904352 +1100
+++ new/src/wl/sys/wl_cfg80211.c 2012-10-15 23:08:32.313638398 +1100
--- old/src/wl/sys/wl_cfg80211.c 2011-10-23 03:56:55.000000000 +1100
+++ new/src/wl/sys/wl_cfg80211.c 2013-03-18 23:54:16.904968829 +1100
@@ -42,7 +42,7 @@
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
......@@ -37,7 +37,27 @@ diff -Naur old/src/wl/sys/wl_cfg80211.c new/src/wl/sys/wl_cfg80211.c
struct cfg80211_scan_request *request);
static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
@@ -570,10 +570,12 @@
@@ -56,15 +56,10 @@
struct cfg80211_connect_params *sme);
static s32 wl_cfg80211_disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_code);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)
-static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy,
- enum nl80211_tx_power_setting type, s32 dbm);
-#else
-static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy,
- enum tx_power_setting type, s32 dbm);
-#endif
-
-static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, s32 *dbm);
+static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev,
+ enum nl80211_tx_power_setting type, s32 dbm);
+static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev,
+ s32 *dbm);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy,
@@ -570,10 +565,12 @@
}
static s32
......@@ -51,9 +71,67 @@ diff -Naur old/src/wl/sys/wl_cfg80211.c new/src/wl/sys/wl_cfg80211.c
CHECK_SYS_UP();
err = __wl_cfg80211_scan(wiphy, ndev, request, NULL);
@@ -742,7 +739,7 @@
else
memset(&join_params.params.bssid, 0, ETHER_ADDR_LEN);
- wl_ch_to_chanspec(params->channel, &join_params, &join_params_size);
+ wl_ch_to_chanspec(params->chandef.chan, &join_params, &join_params_size);
err = wl_dev_ioctl(dev, WLC_SET_SSID, &join_params, join_params_size);
if (err) {
@@ -1099,16 +1096,9 @@
return err;
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)
-static s32
-wl_cfg80211_set_tx_power(struct wiphy *wiphy, enum nl80211_tx_power_setting type, s32 dbm)
-#else
-#define NL80211_TX_POWER_AUTOMATIC TX_POWER_AUTOMATIC
-#define NL80211_TX_POWER_LIMITED TX_POWER_LIMITED
-#define NL80211_TX_POWER_FIXED TX_POWER_FIXED
static s32
-wl_cfg80211_set_tx_power(struct wiphy *wiphy, enum tx_power_setting type, s32 dbm)
-#endif
+wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev,
+ enum nl80211_tx_power_setting type, s32 dbm)
{
struct wl_priv *wl = wiphy_to_wl(wiphy);
@@ -1158,7 +1148,8 @@
return err;
}
-static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, s32 *dbm)
+static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev,
+ s32 *dbm)
{
struct wl_priv *wl = wiphy_to_wl(wiphy);
struct net_device *ndev = wl_to_ndev(wl);
@@ -2036,6 +2027,7 @@
static s32 wl_update_bss_info(struct wl_priv *wl)
{
+ struct cfg80211_bss_ies *ies;
struct cfg80211_bss *bss;
struct wl_bss_info *bi;
struct wlc_ssid *ssid;
@@ -2074,8 +2066,9 @@
beacon_interval = cpu_to_le16(bi->beacon_period);
} else {
WL_DBG(("Found the AP in the list - BSSID %pM\n", bss->bssid));
- ie = bss->information_elements;
- ie_len = bss->len_information_elements;
+ ies = (struct cfg80211_bss_ies *)rcu_dereference(bss->ies);
+ ie = ies->data;
+ ie_len = ies->len;
beacon_interval = bss->beacon_interval;
cfg80211_put_bss(bss);
}
diff -Naur old/src/wl/sys/wl_iw.h new/src/wl/sys/wl_iw.h
--- old/src/wl/sys/wl_iw.h 2012-10-15 23:08:11.266904352 +1100
+++ new/src/wl/sys/wl_iw.h 2012-10-15 23:08:18.973595675 +1100
--- old/src/wl/sys/wl_iw.h 2011-10-23 03:56:55.000000000 +1100
+++ new/src/wl/sys/wl_iw.h 2013-03-18 23:40:48.561529595 +1100
@@ -15,6 +15,7 @@
#ifndef _wl_iw_h_
#define _wl_iw_h_
......@@ -63,8 +141,8 @@ diff -Naur old/src/wl/sys/wl_iw.h new/src/wl/sys/wl_iw.h
#include <typedefs.h>
diff -Naur old/src/wl/sys/wl_linux.c new/src/wl/sys/wl_linux.c
--- old/src/wl/sys/wl_linux.c 2012-10-15 23:08:11.266904352 +1100
+++ new/src/wl/sys/wl_linux.c 2012-10-15 23:08:18.973595675 +1100
--- old/src/wl/sys/wl_linux.c 2011-10-23 03:56:55.000000000 +1100
+++ new/src/wl/sys/wl_linux.c 2013-03-18 23:40:48.581530042 +1100
@@ -40,7 +40,6 @@
#include <linux/pci_ids.h>
#define WLC_MAXBSSCFG 1
......
diff -aur old/src/wl/sys/wl_cfg80211.c new/src/wl/sys/wl_cfg80211.c
--- old/src/wl/sys/wl_cfg80211.c 2011-10-23 03:56:55.000000000 +1100
+++ new/src/wl/sys/wl_cfg80211.c 2012-05-24 18:43:17.324465658 +1000
@@ -1466,7 +1466,10 @@
scb_val.val = 0;
err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
if (err) {
- WL_ERR(("Could not get rssi (%d)\n", err));
+ if (err != -EINVAL) {
+ // Don't fill syslog with EINVAL error
+ WL_ERR(("Could not get rssi (%d)\n", err));
+ }
return err;
}
rssi = dtoh32(scb_val.val);
diff -aur old/src/wl/sys/wl_linux.c new/src/wl/sys/wl_linux.c
--- old/src/wl/sys/wl_linux.c 2011-10-23 03:56:55.000000000 +1100
+++ new/src/wl/sys/wl_linux.c 2012-05-24 18:43:17.324465658 +1000
@@ -1579,11 +1579,7 @@
}
WL_LOCK(wl);
- if (!capable(CAP_NET_ADMIN)) {
- bcmerror = BCME_EPERM;
- } else {
- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
- }
+ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
WL_UNLOCK(wl);
done1:
diff -aur old/src/wl/sys/wl_cfg80211.c new/src/wl/sys/wl_cfg80211.c
--- old/src/wl/sys/wl_cfg80211.c 2011-10-23 03:56:55.000000000 +1100
+++ new/src/wl/sys/wl_cfg80211.c 2012-05-24 18:43:17.324465658 +1000
@@ -1466,7 +1466,10 @@
scb_val.val = 0;
err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
if (err) {
- WL_ERR(("Could not get rssi (%d)\n", err));
+ if (err != -EINVAL) {
+ // Don't fill syslog with EINVAL error
+ WL_ERR(("Could not get rssi (%d)\n", err));
+ }
return err;
}
rssi = dtoh32(scb_val.val);
diff -aur old/src/wl/sys/wl_linux.c new/src/wl/sys/wl_linux.c
--- old/src/wl/sys/wl_linux.c 2011-10-23 03:56:55.000000000 +1100
+++ new/src/wl/sys/wl_linux.c 2012-05-24 18:43:17.324465658 +1000
@@ -1579,11 +1579,7 @@
}
WL_LOCK(wl);
- if (!capable(CAP_NET_ADMIN)) {
- bcmerror = BCME_EPERM;
- } else {
- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
- }
+ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
WL_UNLOCK(wl);
done1:
diff -aur old/src/wl/sys/wl_cfg80211.c new/src/wl/sys/wl_cfg80211.c.new
--- old/src/wl/sys/wl_cfg80211.c 2013-04-30 18:21:18.190170600 +0300
+++ new/src/wl/sys/wl_cfg80211.c.new 2013-04-30 18:33:04.516810699 +0300
@@ -2073,7 +2073,11 @@
ie = ies->data;
ie_len = ies->len;
beacon_interval = bss->beacon_interval;
- cfg80211_put_bss(bss);
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
+ cfg80211_put_bss(bss);
+ #else
+ cfg80211_put_bss(wl_to_wiphy(wl), bss);
+ #endif
}
tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment