diff --git a/kernel/drivers/module-broadcom-wl/actions.py b/kernel/drivers/module-broadcom-wl/actions.py
new file mode 100644
index 00000000..a53f56d2
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/actions.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/copyleft/gpl.txt.
+
+from pisi.actionsapi import kerneltools
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+from pisi.actionsapi import shelltools
+
+WorkDir = get.ARCH()
+KDIR = kerneltools.getKernelVersion()
+
+def build():
+ shelltools.system("sed -e '/BRCM_WLAN_IFNAME/s:eth:wlan:' \
+ -i src/wl/sys/wl_linux.c")
+ autotools.make("Werror=0 -C /lib/modules/%s/build M=%s modules" % (KDIR, get.curDIR()))
+
+def install():
+ pisitools.insinto("/lib/modules/%s/extra" % KDIR, "wl.ko")
+
+ pisitools.dodoc("lib/LICENSE.txt")
\ No newline at end of file
diff --git a/kernel/drivers/module-broadcom-wl/files/conf/broadcom-wl b/kernel/drivers/module-broadcom-wl/files/conf/broadcom-wl
new file mode 100644
index 00000000..6f830566
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/files/conf/broadcom-wl
@@ -0,0 +1 @@
+install wl /sbin/modprobe -qr b43 ssb; /sbin/modprobe --ignore-install wl $CMDLINE_OPTS
diff --git a/kernel/drivers/module-broadcom-wl/files/conf/broadcom-wl-alias.conf b/kernel/drivers/module-broadcom-wl/files/conf/broadcom-wl-alias.conf
new file mode 100644
index 00000000..74e62259
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/files/conf/broadcom-wl-alias.conf
@@ -0,0 +1,18 @@
+alias pci:v000014E4d00000576sv*sd*bc*sc*i* wl
+alias pci:v000014E4d0000435Asv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004359sv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004358sv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004727sv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004357sv*sd*bc*sc*i* wl
+alias pci:v000014E4d0000A99Dsv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004353sv*sd*bc*sc*i* wl
+alias pci:v000014E4d0000432Dsv*sd*bc*sc*i* wl
+alias pci:v000014E4d0000432Csv*sd*bc*sc*i* wl
+alias pci:v000014E4d0000432Bsv*sd*bc*sc*i* wl
+alias pci:v000014E4d0000432Asv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004329sv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004328sv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004315sv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004313sv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004312sv*sd*bc*sc*i* wl
+alias pci:v000014E4d00004311sv*sd*bc*sc*i* wl
diff --git a/kernel/drivers/module-broadcom-wl/files/conf/broadcom-wl-blacklist.conf b/kernel/drivers/module-broadcom-wl/files/conf/broadcom-wl-blacklist.conf
new file mode 100644
index 00000000..258f4f4d
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/files/conf/broadcom-wl-blacklist.conf
@@ -0,0 +1,6 @@
+blacklist brcm80211
+blacklist b43
+blacklist ssb
+blacklist bcma
+blacklist brcmsmac
+blacklist brcmfmac
\ No newline at end of file
diff --git a/kernel/drivers/module-broadcom-wl/files/patch/broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch b/kernel/drivers/module-broadcom-wl/files/patch/broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch
new file mode 100644
index 00000000..035593cb
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/files/patch/broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch
@@ -0,0 +1,12 @@
+diff -urN a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+--- a/src/wl/sys/wl_linux.c 2015-01-06 12:33:42.981659618 +0100
++++ b/src/wl/sys/wl_linux.c 2015-01-06 12:34:05.647395418 +0100
+@@ -2157,8 +2157,8 @@
+ wlif = WL_DEV_IF(dev);
+ wl = WL_INFO(dev);
+
++ skb->prev = NULL;
+ if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
+- skb->prev = NULL;
+
+ TXQ_LOCK(wl);
\ No newline at end of file
diff --git a/kernel/drivers/module-broadcom-wl/files/patch/gcc.patch b/kernel/drivers/module-broadcom-wl/files/patch/gcc.patch
new file mode 100644
index 00000000..d67cd3d1
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/files/patch/gcc.patch
@@ -0,0 +1,11 @@
+--- a/Makefile 2014-06-26 10:42:08.000000000 +0000
++++ b/Makefile 2014-07-17 22:44:01.662297228 +0000
+@@ -126,6 +126,8 @@
+ EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
+ #EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
+
++EXTRA_CFLAGS += -Wno-date-time
++
+ EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
+
+ KBASE ?= /lib/modules/`uname -r`
\ No newline at end of file
diff --git a/kernel/drivers/module-broadcom-wl/files/patch/license.patch b/kernel/drivers/module-broadcom-wl/files/patch/license.patch
new file mode 100644
index 00000000..1719a99c
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/files/patch/license.patch
@@ -0,0 +1,10 @@
+--- a/src/wl/sys/wl_linux.c 2014-06-26 10:42:08.000000000 +0000
++++ b/src/wl/sys/wl_linux.c 2014-07-17 22:44:26.254759666 +0000
+@@ -205,6 +205,7 @@
+
+ static int nompc = 0;
+ module_param(nompc, int, 0);
++MODULE_LICENSE("Mixed/Proprietary");
+
+ #ifdef quote_str
+ #undef quote_str
diff --git a/kernel/drivers/module-broadcom-wl/files/patch/linux-40.patch b/kernel/drivers/module-broadcom-wl/files/patch/linux-40.patch
new file mode 100644
index 00000000..7f7d327f
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/files/patch/linux-40.patch
@@ -0,0 +1,26 @@
+--- a/src/wl/sys/wl_cfg80211_hybrid.c 2015-03-16 14:39:29.899350026 +0100
++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2015-03-16 14:39:06.732682365 +0100
+@@ -1452,7 +1452,11 @@
+ WL_DBG(("Could not get rate (%d)\n", err));
+ } else {
+ rate = dtoh32(rate);
++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)
++ sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE);
++ #else
+ sinfo->filled |= STATION_INFO_TX_BITRATE;
++ #endif
+ sinfo->txrate.legacy = rate * 5;
+ WL_DBG(("Rate %d Mbps\n", (rate / 2)));
+ }
+@@ -1465,7 +1469,11 @@
+ return err;
+ }
+ rssi = dtoh32(scb_val.val);
++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0)
++ sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
++ #else
+ sinfo->filled |= STATION_INFO_SIGNAL;
++ #endif
+ sinfo->signal = rssi;
+ WL_DBG(("RSSI %d dBm\n", rssi));
+ }
diff --git a/kernel/drivers/module-broadcom-wl/files/patch/linux-recent.patch b/kernel/drivers/module-broadcom-wl/files/patch/linux-recent.patch
new file mode 100644
index 00000000..29f7860b
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/files/patch/linux-recent.patch
@@ -0,0 +1,60 @@
+--- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2014-10-08 18:47:07.549476082 +0200
+@@ -2071,7 +2071,22 @@
+ wl_get_assoc_ies(wl);
+ memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
+ wl_update_bss_info(wl);
+- cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
++ {
++ struct wl_bss_info *bi;
++ u16 bss_info_channel;
++ struct ieee80211_channel *channel;
++ u32 freq;
++
++ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
++ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
++
++ freq = ieee80211_channel_to_frequency(bss_info_channel,
++ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
++ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
++
++ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
++ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
++ }
+ set_bit(WL_STATUS_CONNECTED, &wl->status);
+ wl->profile->active = true;
+ }
+--- a/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_linux.c 2014-10-08 18:47:19.526693719 +0200
+@@ -878,7 +878,7 @@
+ static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume);
+ #endif
+
+-static struct pci_driver wl_pci_driver = {
++static struct pci_driver wl_pci_driver __refdata = {
+ .name = "wl",
+ .probe = wl_pci_probe,
+ .remove = __devexit_p(wl_remove),
+@@ -1307,7 +1307,12 @@
+ dev->priv = priv_link;
+ #else
+
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
++#else
++ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN,
++ ether_setup);
++#endif
+ if (!dev) {
+ WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
+ (wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
+--- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-12-10 03:43:11.145810000 +0000
++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2014-12-10 03:44:37.700680960 +0000
+@@ -2010,7 +2010,7 @@
+
+ notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
+ notify_ielen = le32_to_cpu(bi->ie_length);
+- cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
++ cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet),
+ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
\ No newline at end of file
diff --git a/kernel/drivers/module-broadcom-wl/files/patch/wlan.patch b/kernel/drivers/module-broadcom-wl/files/patch/wlan.patch
new file mode 100644
index 00000000..4e1e50df
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/files/patch/wlan.patch
@@ -0,0 +1,11 @@
+diff -urN a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+--- a/src/wl/sys/wl_linux.c 2013-08-01 09:52:22.000000000 +0300
++++ b/src/wl/sys/wl_linux.c 2013-09-27 09:20:11.495023471 +0300
+@@ -235,7 +235,7 @@
+ #define to_str(s) #s
+ #define quote_str(s) to_str(s)
+
+-#define BRCM_WLAN_IFNAME eth%d
++#define BRCM_WLAN_IFNAME wlan%d
+
+ static char intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
diff --git a/kernel/drivers/module-broadcom-wl/pspec.xml b/kernel/drivers/module-broadcom-wl/pspec.xml
new file mode 100644
index 00000000..081e0d54
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/pspec.xml
@@ -0,0 +1,346 @@
+
+
+
+
+ module-broadcom-wl
+ http://www.broadcom.com/support/802.11/linux_sta.php
+
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+ freedist
+ driver
+ Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver for use with Broadcom's BCM4311, BCM4312, BCM4321, and BCM4322 based hardware
+ This package contains Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver for use with Broadcom's BCM4311, BCM4312, BCM4321, and BCM4322 based hardware. You must read the LICENSE.txt file in the docs directory before using this software.
+ http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_248.tar.gz
+ http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz
+
+ kernel-module-headers
+
+
+ patch/linux-40.patch
+ patch/linux-recent.patch
+ patch/license.patch
+ patch/gcc.patch
+ patch/wlan.patch
+ patch/broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch
+
+
+
+
+ module-broadcom-wl
+
+ kernel
+ module-broadcom-wl-userspace
+
+
+ broadcom-wl
+
+
+ /lib/modules
+
+
+ noDelta
+
+
+
+
+ module-broadcom-wl-userspace
+ modprobe rules and documents for broadcom-wl kernel driver
+
+ /etc/modprobe.d
+ /usr/share/doc
+
+
+ conf/broadcom-wl
+ conf/broadcom-wl-alias.conf
+ conf/broadcom-wl-blacklist.conf
+
+
+ noDelta
+
+
+
+
+
+ 2015-06-16
+ 6.30.223.248
+ Rebuild for kernel 4.0.5
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2015-05-22
+ 6.30.223.248
+ Rebuild for kernel 3.19.6
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2015-05-05
+ 6.30.223.248
+ Rebuild for kernel 3.19.6
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2015-04-24
+ 6.30.223.248
+ Rebuild for kernel 3.19.5
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2015-04-16
+ 6.30.223.248
+ Rebuild for kernel 3.19.4
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2015-04-02
+ 6.30.223.248
+ Rebuild for kernel 3.19.3
+ Hakan Yıldız
+ hknyldz93@gmail.com
+
+
+ 2015-03-08
+ 6.30.223.248
+ Rebuild for kernel 3.19.1
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2015-03-01
+ 6.30.223.248
+ Rebuild for kernel 3.19.0
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2015-02-28
+ 6.30.223.248
+ Rebuild for kernel 3.18.3
+ Hakan Yıldız
+ hknyldz93@gmail.com
+
+
+ 2014-11-29
+ 6.30.223.248
+ Rebuild for kernel 3.17.4
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-10-19
+ 6.30.223.248
+ Rebuild for kernel 3.17.1
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-09-19
+ 6.30.223.248
+ Rebuild for kernel 3.16.3
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-09-03
+ 6.30.223.248
+ Rebuild for kernel 3.16.1
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-07-23
+ 6.30.223.248
+ Version bump for kernel 3.15.6
+ Vedat Demir
+ vedat@pisilinux.org
+
+
+ 2014-06-15
+ 6.30.223.141
+ Rebuild for kernel 3.15.0
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-05-29
+ 6.30.223.141
+ Rebuild for kernel 3.14.4.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-05-02
+ 6.30.223.141
+ Rebuild for kernel 3.14.2.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-04-15
+ 6.30.223.141
+ Rebuild for kernel 3.13.10.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-03-29
+ 6.30.223.141
+ Rebuild for 3.13.6
+ PisiLinux Community
+ admins@pisilinux.org
+
+
+ 2014-03-01
+ 6.30.223.141
+ Rebuild for 3.12.13
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-01-17
+ 6.30.223.141
+ Rebuild for 3.12.8
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2013-12-17
+ 6.30.223.141
+ Rebuild for 3.12.5
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2013-12-14
+ 6.30.223.141
+ Rebuild for 3.12.5
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2013-11-23
+ 5.100.82.112
+ Rebuild for 3.10.20
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2013-11-05
+ 5.100.82.112
+ Rebuild for 3.10.18
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2013-10-09
+ 5.100.82.112
+ fix solution broadcom-wl
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-09-28
+ 5.100.82.112
+ fix solution broadcom-wl
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-09-18
+ 5.100.82.112
+ fix solution broadcom-wl
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-09-05
+ 5.100.82.112
+ fix solution broadcom-wl
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-08-30
+ 5.100.82.112
+ 3.10.10
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-08-20
+ 5.100.82.112
+ 3.10.9
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-08-20
+ 5.100.82.112
+ 3.10.x
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-08-11
+ 5.100.82.112
+ without blacklist
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-07-26
+ 5.100.82.112
+ Rebuild for Kernel 3.10.x
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-06-15
+ 5.100.82.112
+ rebuild for Kernel 3.8.13
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-05-26
+ 5.100.82.112
+ rebuild for Kernel 3.9.4
+ Erdinç Gültekin
+ erdincgultekin@pisilinux.org
+
+
+ 2013-05-26
+ 5.100.82.112
+ Kernel 3.9.3
+ PisiLinux Community
+ admins@pisilinux.org
+
+
+ 2013-02-07
+ 5.100.82.112
+ Runtime dep
+ Ertan Güven
+ admins@pisilinux.org
+
+
+ 2013-02-01
+ 5.100.82.112
+ bump+fix for new kernel-line
+ Erdinç Gültekin
+ admins@pisilinux.org
+
+
+ 2011-09-15
+ 5.100.82.38
+ First release
+ Pisi Linux Admins
+ admins@pisilinux.org
+
+
+
diff --git a/kernel/drivers/module-broadcom-wl/translations.xml b/kernel/drivers/module-broadcom-wl/translations.xml
new file mode 100644
index 00000000..119acf95
--- /dev/null
+++ b/kernel/drivers/module-broadcom-wl/translations.xml
@@ -0,0 +1,13 @@
+
+
+
+ module-broadcom-wl
+ Broadcom'un BCM4311, BCM4312, BCM4321 ve BCM4322 tabanlı kablosuz bağdaştırıcıları için IEEE 802.11a/b/g/n aygıt sürücüleri
+ Bu paket Broadcom'un BCM4311, BCM4312, BCM4321 ve BCM4322 tabanlı kablosuz bağdaştırıcıları ile kullanımı için IEEE 802.11a/b/g/n aygıt sürücülerini içerir. Bu yazılımı kullanmadan önce belgeler dizinindeki LICENSE.txt dosyasında yer alan lisans sözleşmesini okumalısınız.
+
+
+
+ module-broadcom-wl-userspace
+ broadcom-wl çekirdek sürücüsü için modprobe kuralları ve belgeler
+
+