diff options
author | Benjamin Robin | 2015-06-14 14:09:35 +0200 |
---|---|---|
committer | Benjamin Robin | 2015-06-14 14:09:35 +0200 |
commit | 03f537fd75935b91264c26692eafbc80f2fddba2 (patch) | |
tree | ebc730069fde96076d27a53cb8f473442e51c48f | |
download | aur-03f537fd75935b91264c26692eafbc80f2fddba2.tar.gz |
Copied from AUR 3 : with rm-orig-module.sh
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | MT7630E-3.15.patch | 50 | ||||
-rw-r--r-- | MT7630E-4.0.patch | 22 | ||||
-rw-r--r-- | MT7630e-wifi.install | 41 | ||||
-rw-r--r-- | PKGBUILD | 42 | ||||
-rw-r--r-- | dkms.conf | 29 |
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" |