summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Robin2015-06-14 14:09:35 +0200
committerBenjamin Robin2015-06-14 14:09:35 +0200
commit03f537fd75935b91264c26692eafbc80f2fddba2 (patch)
treeebc730069fde96076d27a53cb8f473442e51c48f
downloadaur-03f537fd75935b91264c26692eafbc80f2fddba2.tar.gz
Copied from AUR 3 : with rm-orig-module.sh
-rw-r--r--.SRCINFO22
-rw-r--r--MT7630E-3.15.patch50
-rw-r--r--MT7630E-4.0.patch22
-rw-r--r--MT7630e-wifi.install41
-rw-r--r--PKGBUILD42
-rw-r--r--dkms.conf29
6 files changed, 206 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..9e1c23cf8f33
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,22 @@
+pkgbase = mt7630-pcie-wifi-dkms
+ pkgdesc = MT7630e PCIe Wifi (DKMS)
+ pkgver = 20140625
+ pkgrel = 5
+ url = http://www.mediatek.com/en/downloads/mt7630-pcie/
+ install = MT7630e-wifi.install
+ arch = i686
+ arch = x86_64
+ license = GPL
+ depends = dkms
+ optdepends = linux-headers: If running standard kernel, otherwise find matching headers for your kernel
+ source = http://www.mediatek.com/AmazonS3/Downloads/linux/MT7630E_Wi-Fi_BT_Source_V3.14_20140625_v2.tar.gz
+ source = dkms.conf
+ source = MT7630E-3.15.patch
+ source = MT7630E-4.0.patch
+ md5sums = d8583926d6c8ba8c3a1a8dd0b44a066e
+ md5sums = aa288cf135a28dcb2bc90e8f80ea4f97
+ md5sums = 561dc16b3df8f48aa15c2ce1ce1e6d3b
+ md5sums = 2997d0c6492e62f25050e92b3643d853
+
+pkgname = mt7630-pcie-wifi-dkms
+
diff --git a/MT7630E-3.15.patch b/MT7630E-3.15.patch
new file mode 100644
index 000000000000..afcbd61fc689
--- /dev/null
+++ b/MT7630E-3.15.patch
@@ -0,0 +1,50 @@
+diff -U 3 -b -B -d -p -r -- a/rt2x00/rt2800usb.c b/rt2x00/rt2800usb.c
+--- a/rt2x00/rt2800usb.c 2014-10-25 01:34:02.129618972 +0200
++++ b/rt2x00/rt2800usb.c 2014-10-25 01:33:55.466285690 +0200
+@@ -763,7 +763,7 @@ static int rt2800usb_probe_hw(struct rt2
+ /*
+ * Overwrite TX done handler
+ */
+- PREPARE_WORK(&rt2x00dev->txdone_work, rt2800usb_work_txdone);
++ rt2x00dev->txdone_workfn = rt2800usb_work_txdone;
+
+ return 0;
+ }
+diff -U 3 -b -B -d -p -r -- a/rt2x00/rt2x00.h b/rt2x00/rt2x00.h
+--- a/rt2x00/rt2x00.h 2014-10-25 01:34:02.129618972 +0200
++++ b/rt2x00/rt2x00.h 2014-10-25 01:33:55.472952357 +0200
+@@ -2349,6 +2349,7 @@ struct rt2x00_dev {
+ */
+ struct work_struct rxdone_work;
+ struct work_struct txdone_work;
++ work_func_t txdone_workfn;
+
+ /*
+ * Powersaving work
+diff -U 3 -b -B -d -p -r -- a/rt2x00/rt2x00usb.c b/rt2x00/rt2x00usb.c
+--- a/rt2x00/rt2x00usb.c 2014-10-25 01:34:02.129618972 +0200
++++ b/rt2x00/rt2x00usb.c 2014-10-25 01:33:55.469619023 +0200
+@@ -237,6 +237,12 @@ static void rt2x00usb_work_txdone_entry(
+ rt2x00lib_txdone_noinfo(entry, TXDONE_UNKNOWN);
+ }
+
++static void rt2x00usb_work_txdonefn(struct work_struct *work)
++{
++ struct rt2x00_dev *peer = container_of(work, struct rt2x00_dev, txdone_work);
++ peer->txdone_workfn(work);
++}
++
+ static void rt2x00usb_work_txdone(struct work_struct *work)
+ {
+ struct rt2x00_dev *rt2x00dev =
+@@ -810,7 +816,8 @@ int rt2x00usb_probe(struct usb_interface
+ rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_USB);
+
+ INIT_WORK(&rt2x00dev->rxdone_work, rt2x00usb_work_rxdone);
+- INIT_WORK(&rt2x00dev->txdone_work, rt2x00usb_work_txdone);
++ INIT_WORK(&rt2x00dev->txdone_work, rt2x00usb_work_txdonefn);
++ rt2x00dev->txdone_workfn = rt2x00usb_work_txdone;
+ hrtimer_init(&rt2x00dev->txstatus_timer, CLOCK_MONOTONIC,
+ HRTIMER_MODE_REL);
+
+
diff --git a/MT7630E-4.0.patch b/MT7630E-4.0.patch
new file mode 100644
index 000000000000..15bc0a9dc148
--- /dev/null
+++ b/MT7630E-4.0.patch
@@ -0,0 +1,22 @@
+--- a/rt2x00/rt2800lib.c 2014-04-24 11:20:40.000000000 +0200
++++ b/rt2x00/rt2800lib.c 2015-04-25 11:32:18.512617765 +0200
+@@ -9098,13 +9098,13 @@ int rt2800_get_survey(struct ieee80211_h
+ rt2800_register_read(rt2x00dev, CH_BUSY_STA_SEC, &busy_ext);
+
+ if (idle || busy) {
+- survey->filled = SURVEY_INFO_CHANNEL_TIME |
+- SURVEY_INFO_CHANNEL_TIME_BUSY |
+- SURVEY_INFO_CHANNEL_TIME_EXT_BUSY;
++ survey->filled = SURVEY_INFO_TIME |
++ SURVEY_INFO_TIME_BUSY |
++ SURVEY_INFO_TIME_EXT_BUSY;
+
+- survey->channel_time = (idle + busy) / 1000;
+- survey->channel_time_busy = busy / 1000;
+- survey->channel_time_ext_busy = busy_ext / 1000;
++ survey->time = (idle + busy) / 1000;
++ survey->time_busy = busy / 1000;
++ survey->time_ext_busy = busy_ext / 1000;
+ }
+
+ if (!(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL))
diff --git a/MT7630e-wifi.install b/MT7630e-wifi.install
new file mode 100644
index 000000000000..5e329ff8950d
--- /dev/null
+++ b/MT7630e-wifi.install
@@ -0,0 +1,41 @@
+post_install() {
+ dkms_install $1
+}
+
+pre_upgrade() {
+ dkms_remove $2
+}
+
+pre_remove() {
+ dkms_remove $1
+}
+
+post_upgrade() {
+ dkms_install $1
+}
+
+post_remove() {
+ echo "You should reinstall the kernel since this package did remove these files :"
+ echo '/usr/lib/modules/*/kernel/drivers/net/wireless/rt2x00/*'
+}
+
+dkms_remove() {
+ local line=`dkms status -m mt7630-pcie-wifi`
+ # in cases where the passed ${1%%-*} fails, use this as a fallback for detecting
+ # which version is installed:
+ # version=`dkms status mt7630-pcie-wifi | tr -d ' \n' | awk -F ',' '{print $2}'`
+ if echo "$line" | grep -E 'added|built|installed'; then
+ dkms remove -m mt7630-pcie-wifi -v ${1%%-*} --all
+ else
+ echo "No current dkms module found, skipping dkms remove"
+ fi
+ /usr/bin/depmod -a
+}
+
+dkms_install() {
+ echo ">>> DKMS: Module install"
+
+ dkms install -m mt7630-pcie-wifi -v ${1%%-*}
+
+ /usr/bin/depmod -a
+}
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..3fbe30072525
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Benjamin ROBIN <dev@benjarobin.fr>
+
+pkgname=mt7630-pcie-wifi-dkms
+pkgver=20140625
+pkgrel=5
+pkgdesc="MT7630e PCIe Wifi (DKMS)"
+arch=('i686' 'x86_64')
+url="http://www.mediatek.com/en/downloads/mt7630-pcie/"
+license=('GPL')
+depends=('dkms')
+optdepends=('linux-headers: If running standard kernel, otherwise find matching headers for your kernel')
+install=MT7630e-wifi.install
+source=('http://www.mediatek.com/AmazonS3/Downloads/linux/MT7630E_Wi-Fi_BT_Source_V3.14_20140625_v2.tar.gz'
+ 'dkms.conf'
+ 'MT7630E-3.15.patch'
+ 'MT7630E-4.0.patch')
+md5sums=('d8583926d6c8ba8c3a1a8dd0b44a066e'
+ 'aa288cf135a28dcb2bc90e8f80ea4f97'
+ '561dc16b3df8f48aa15c2ce1ce1e6d3b'
+ '2997d0c6492e62f25050e92b3643d853')
+
+prepare() {
+ cd "$srcdir/MT7630E_Wi-Fi_BT_Source_V3.14_20140625_v2"
+ patch -p1 -i "$srcdir/MT7630E-3.15.patch"
+ patch -p1 -i "$srcdir/MT7630E-4.0.patch"
+}
+
+package() {
+ cd "$srcdir/MT7630E_Wi-Fi_BT_Source_V3.14_20140625_v2"
+
+ mkdir -p "${pkgdir}/usr/src/mt7630-pcie-wifi-${pkgver}"
+ cp -RL --no-preserve='ownership' rt2x00/* "${pkgdir}/usr/src/mt7630-pcie-wifi-${pkgver}/"
+ rm "${pkgdir}/usr/src/mt7630-pcie-wifi-${pkgver}"/*.sh
+ install -m644 "$srcdir/dkms.conf" "${pkgdir}/usr/src/mt7630-pcie-wifi-${pkgver}/"
+
+ install -D -m644 "firmware/Wi-FI/MT7650E234.bin" "$pkgdir/usr/lib/firmware/MT7650E234.bin"
+
+ cd "${pkgdir}/usr/src/mt7630-pcie-wifi-${pkgver}/"
+ echo '#!/bin/sh' > rm-orig-module.sh
+ echo 'rm -f /usr/lib/modules/*/kernel/drivers/net/wireless/rt2x00/*' >> rm-orig-module.sh
+ chmod +x rm-orig-module.sh
+}
diff --git a/dkms.conf b/dkms.conf
new file mode 100644
index 000000000000..5eca3db73e6e
--- /dev/null
+++ b/dkms.conf
@@ -0,0 +1,29 @@
+PACKAGE_NAME="mt7630-pcie-wifi"
+PACKAGE_VERSION="20140625"
+BUILT_MODULE_NAME[0]="rt2800pci"
+BUILT_MODULE_NAME[1]="rt2400pci"
+BUILT_MODULE_NAME[2]="rt2800lib"
+BUILT_MODULE_NAME[3]="rt2800usb"
+BUILT_MODULE_NAME[4]="rt2x00pci"
+BUILT_MODULE_NAME[5]="rt2x00usb"
+BUILT_MODULE_NAME[6]="rt2x00mmio"
+BUILT_MODULE_NAME[7]="rt2500usb"
+BUILT_MODULE_NAME[8]="rt2x00lib"
+BUILT_MODULE_NAME[9]="rt61pci"
+BUILT_MODULE_NAME[10]="rt2500pci"
+BUILT_MODULE_NAME[11]="rt73usb"
+DEST_MODULE_LOCATION[0]="/kernel/mt7630"
+DEST_MODULE_LOCATION[1]="/kernel/mt7630"
+DEST_MODULE_LOCATION[2]="/kernel/mt7630"
+DEST_MODULE_LOCATION[3]="/kernel/mt7630"
+DEST_MODULE_LOCATION[4]="/kernel/mt7630"
+DEST_MODULE_LOCATION[5]="/kernel/mt7630"
+DEST_MODULE_LOCATION[6]="/kernel/mt7630"
+DEST_MODULE_LOCATION[7]="/kernel/mt7630"
+DEST_MODULE_LOCATION[8]="/kernel/mt7630"
+DEST_MODULE_LOCATION[9]="/kernel/mt7630"
+DEST_MODULE_LOCATION[10]="/kernel/mt7630"
+DEST_MODULE_LOCATION[11]="/kernel/mt7630"
+AUTOINSTALL="yes"
+REMAKE_INITRD="yes"
+PRE_INSTALL="rm-orig-module.sh"