mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-09 00:17:31 +00:00
core/linux-omap to 3.7.10-6 (#500)
This commit is contained in:
parent
3803f36cc2
commit
2bb43bfbe4
4 changed files with 180 additions and 3 deletions
106
core/linux-omap/01-wifi.patch
Normal file
106
core/linux-omap/01-wifi.patch
Normal file
|
@ -0,0 +1,106 @@
|
|||
From af4e94c56581b446b2010854a983ef722ad9ed1f Mon Sep 17 00:00:00 2001
|
||||
From: Luciano Coelho <coelho@ti.com>
|
||||
Date: Tue, 27 Nov 2012 13:51:58 +0000
|
||||
Subject: wlcore: change way of checking the firmware version
|
||||
|
||||
The firmwares version string contain 5 integers. We used to consider
|
||||
all the digits (except for the first one, which indicates the chip) as
|
||||
linearly increasing version numbers. This is not correct, because
|
||||
some of the integers indicate type of firmware (eg. single-role
|
||||
vs. multi-role) or the internal project it was created for.
|
||||
|
||||
Besides, this varies a bit from chip to chip, so we need to make the
|
||||
firmware version checks more flexible (eg. allow the lower driver to
|
||||
ignore some of the integers). Additionally, we need to change the
|
||||
code so that we only check for a linearly increasing number on the
|
||||
fields where this actually makes sense.
|
||||
|
||||
Signed-off-by: Luciano Coelho <coelho@ti.com>
|
||||
---
|
||||
(limited to 'drivers/net/wireless/ti/wlcore/boot.c')
|
||||
|
||||
diff --git a/drivers/net/wireless/ti/wlcore/boot.c b/drivers/net/wireless/ti/wlcore/boot.c
|
||||
index 230c765..2c57246 100644
|
||||
--- a/drivers/net/wireless/ti/wlcore/boot.c
|
||||
+++ b/drivers/net/wireless/ti/wlcore/boot.c
|
||||
@@ -85,46 +85,55 @@ static int wlcore_validate_fw_ver(struct wl1271 *wl)
|
||||
{
|
||||
unsigned int *fw_ver = wl->chip.fw_ver;
|
||||
unsigned int *min_ver = wl->min_fw_ver;
|
||||
+ char min_fw_str[32] = "";
|
||||
+ int i;
|
||||
|
||||
/* the chip must be exactly equal */
|
||||
- if (min_ver[FW_VER_CHIP] != fw_ver[FW_VER_CHIP])
|
||||
+ if ((min_ver[FW_VER_CHIP] != WLCORE_FW_VER_IGNORE) &&
|
||||
+ (min_ver[FW_VER_CHIP] != fw_ver[FW_VER_CHIP]))
|
||||
goto fail;
|
||||
|
||||
- /* always check the next digit if all previous ones are equal */
|
||||
-
|
||||
- if (min_ver[FW_VER_IF_TYPE] < fw_ver[FW_VER_IF_TYPE])
|
||||
- goto out;
|
||||
- else if (min_ver[FW_VER_IF_TYPE] > fw_ver[FW_VER_IF_TYPE])
|
||||
+ /* the firmware type must be equal */
|
||||
+ if ((min_ver[FW_VER_IF_TYPE] != WLCORE_FW_VER_IGNORE) &&
|
||||
+ (min_ver[FW_VER_IF_TYPE] != fw_ver[FW_VER_IF_TYPE]))
|
||||
goto fail;
|
||||
|
||||
- if (min_ver[FW_VER_MAJOR] < fw_ver[FW_VER_MAJOR])
|
||||
- goto out;
|
||||
- else if (min_ver[FW_VER_MAJOR] > fw_ver[FW_VER_MAJOR])
|
||||
+ /* the project number must be equal */
|
||||
+ if ((min_ver[FW_VER_SUBTYPE] != WLCORE_FW_VER_IGNORE) &&
|
||||
+ (min_ver[FW_VER_SUBTYPE] != fw_ver[FW_VER_SUBTYPE]))
|
||||
goto fail;
|
||||
|
||||
- if (min_ver[FW_VER_SUBTYPE] < fw_ver[FW_VER_SUBTYPE])
|
||||
- goto out;
|
||||
- else if (min_ver[FW_VER_SUBTYPE] > fw_ver[FW_VER_SUBTYPE])
|
||||
+ /* the API version must be greater or equal */
|
||||
+ if ((min_ver[FW_VER_MAJOR] != WLCORE_FW_VER_IGNORE) &&
|
||||
+ (min_ver[FW_VER_MAJOR] > fw_ver[FW_VER_MAJOR]))
|
||||
goto fail;
|
||||
|
||||
- if (min_ver[FW_VER_MINOR] < fw_ver[FW_VER_MINOR])
|
||||
- goto out;
|
||||
- else if (min_ver[FW_VER_MINOR] > fw_ver[FW_VER_MINOR])
|
||||
+ /* if the API version is equal... */
|
||||
+ if (((min_ver[FW_VER_MAJOR] == WLCORE_FW_VER_IGNORE) ||
|
||||
+ (min_ver[FW_VER_MAJOR] == fw_ver[FW_VER_MAJOR])) &&
|
||||
+ /* ...the minor must be greater or equal */
|
||||
+ ((min_ver[FW_VER_MINOR] != WLCORE_FW_VER_IGNORE) &&
|
||||
+ (min_ver[FW_VER_MINOR] > fw_ver[FW_VER_MINOR])))
|
||||
goto fail;
|
||||
|
||||
-out:
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
- wl1271_error("Your WiFi FW version (%u.%u.%u.%u.%u) is outdated.\n"
|
||||
- "Please use at least FW %u.%u.%u.%u.%u.\n"
|
||||
- "You can get more information at:\n"
|
||||
- "http://wireless.kernel.org/en/users/Drivers/wl12xx",
|
||||
+ for (i = 0; i < NUM_FW_VER; i++)
|
||||
+ if (min_ver[i] == WLCORE_FW_VER_IGNORE)
|
||||
+ snprintf(min_fw_str, sizeof(min_fw_str),
|
||||
+ "%s*.", min_fw_str);
|
||||
+ else
|
||||
+ snprintf(min_fw_str, sizeof(min_fw_str),
|
||||
+ "%s%u.", min_fw_str, min_ver[i]);
|
||||
+
|
||||
+ wl1271_error("Your WiFi FW version (%u.%u.%u.%u.%u) is invalid.\n"
|
||||
+ "Please use at least FW %s\n"
|
||||
+ "You can get the latest firmwares at:\n"
|
||||
+ "git://github.com/TI-OpenLink/firmwares.git",
|
||||
fw_ver[FW_VER_CHIP], fw_ver[FW_VER_IF_TYPE],
|
||||
fw_ver[FW_VER_MAJOR], fw_ver[FW_VER_SUBTYPE],
|
||||
- fw_ver[FW_VER_MINOR], min_ver[FW_VER_CHIP],
|
||||
- min_ver[FW_VER_IF_TYPE], min_ver[FW_VER_MAJOR],
|
||||
- min_ver[FW_VER_SUBTYPE], min_ver[FW_VER_MINOR]);
|
||||
+ fw_ver[FW_VER_MINOR], min_fw_str);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
--
|
||||
cgit v0.9.2
|
29
core/linux-omap/02-wifi.patch
Normal file
29
core/linux-omap/02-wifi.patch
Normal file
|
@ -0,0 +1,29 @@
|
|||
From 8675f9abdf5b67a3f621fa99e1f0e0c8d8ae2531 Mon Sep 17 00:00:00 2001
|
||||
From: Luciano Coelho <coelho@ti.com>
|
||||
Date: Tue, 27 Nov 2012 13:52:00 +0000
|
||||
Subject: wlcore/wl12xx/wl18xx: verify multi-role and single-role fw versions
|
||||
|
||||
Previously we were only checking the single-role firmware version.
|
||||
Now add code to check for the firmware versions separately for each
|
||||
firmware type.
|
||||
|
||||
Signed-off-by: Luciano Coelho <coelho@ti.com>
|
||||
---
|
||||
(limited to 'drivers/net/wireless/ti/wlcore/boot.c')
|
||||
|
||||
diff --git a/drivers/net/wireless/ti/wlcore/boot.c b/drivers/net/wireless/ti/wlcore/boot.c
|
||||
index 2c57246..b58ae5f 100644
|
||||
--- a/drivers/net/wireless/ti/wlcore/boot.c
|
||||
+++ b/drivers/net/wireless/ti/wlcore/boot.c
|
||||
@@ -84,7 +84,8 @@ out:
|
||||
static int wlcore_validate_fw_ver(struct wl1271 *wl)
|
||||
{
|
||||
unsigned int *fw_ver = wl->chip.fw_ver;
|
||||
- unsigned int *min_ver = wl->min_fw_ver;
|
||||
+ unsigned int *min_ver = (wl->fw_type == WL12XX_FW_TYPE_NORMAL) ?
|
||||
+ wl->min_sr_fw_ver : wl->min_mr_fw_ver;
|
||||
char min_fw_str[32] = "";
|
||||
int i;
|
||||
|
||||
--
|
||||
cgit v0.9.2
|
33
core/linux-omap/03-wifi.patch
Normal file
33
core/linux-omap/03-wifi.patch
Normal file
|
@ -0,0 +1,33 @@
|
|||
From 9646b1346760a0af1035f0c59ba727fca1f5824d Mon Sep 17 00:00:00 2001
|
||||
From: Luciano Coelho <coelho@ti.com>
|
||||
Date: Wed, 12 Dec 2012 08:14:22 +0000
|
||||
Subject: wlcore: use single-role version when verifying the PLT firmware
|
||||
|
||||
The PLT firmware used by wl12xx for calibration always has the same
|
||||
version number as the single-role firmware.
|
||||
|
||||
Currntly the driver rejects the PLT firmware since anything that is
|
||||
not single-role uses the multi-role version. Fix this by using the
|
||||
single-role version for everything except multi-role.
|
||||
|
||||
Signed-off-by: Luciano Coelho <coelho@ti.com>
|
||||
---
|
||||
(limited to 'drivers/net/wireless/ti/wlcore/boot.c')
|
||||
|
||||
diff --git a/drivers/net/wireless/ti/wlcore/boot.c b/drivers/net/wireless/ti/wlcore/boot.c
|
||||
index b58ae5f..77752b0 100644
|
||||
--- a/drivers/net/wireless/ti/wlcore/boot.c
|
||||
+++ b/drivers/net/wireless/ti/wlcore/boot.c
|
||||
@@ -84,8 +84,8 @@ out:
|
||||
static int wlcore_validate_fw_ver(struct wl1271 *wl)
|
||||
{
|
||||
unsigned int *fw_ver = wl->chip.fw_ver;
|
||||
- unsigned int *min_ver = (wl->fw_type == WL12XX_FW_TYPE_NORMAL) ?
|
||||
- wl->min_sr_fw_ver : wl->min_mr_fw_ver;
|
||||
+ unsigned int *min_ver = (wl->fw_type == WL12XX_FW_TYPE_MULTI) ?
|
||||
+ wl->min_mr_fw_ver : wl->min_sr_fw_ver;
|
||||
char min_fw_str[32] = "";
|
||||
int i;
|
||||
|
||||
--
|
||||
cgit v0.9.2
|
|
@ -12,7 +12,7 @@ pkgname=('linux-omap' 'linux-headers-omap')
|
|||
_kernelname=${pkgname#linux}
|
||||
_basekernel=3.7
|
||||
pkgver=${_basekernel}.10
|
||||
pkgrel=5
|
||||
pkgrel=6
|
||||
rcnrel=x11
|
||||
arch=('arm')
|
||||
url="http://www.kernel.org/"
|
||||
|
@ -24,13 +24,19 @@ source=("http://www.kernel.org/pub/linux/kernel/v3.0/linux-${_basekernel}.tar.xz
|
|||
"http://rcn-ee.net/deb/sid-armhf/v${pkgver}-${rcnrel}/patch-${pkgver}-${rcnrel}.diff.gz"
|
||||
'config'
|
||||
'change-default-console-loglevel.patch'
|
||||
'aufs3-3.7.patch.xz')
|
||||
'aufs3-3.7.patch.xz'
|
||||
'01-wifi.patch'
|
||||
'02-wifi.patch'
|
||||
'03-wifi.patch')
|
||||
md5sums=('21223369d682bcf44bcdfe1521095983'
|
||||
'5545033e0ce84a7f343f79530ebe94ab'
|
||||
'd4b5402d8398f2a39d893a00e6678d20'
|
||||
'a024158aa219adabf1c03e0587529c28'
|
||||
'9d3c56a4b999c8bfbd4018089a62f662'
|
||||
'961e19a119443158f104a68ea4d0d9f1')
|
||||
'961e19a119443158f104a68ea4d0d9f1'
|
||||
'6fec5a517a4a583d36dc39d5615750d3'
|
||||
'df0fd551867cd8b3735bc0c52048135c'
|
||||
'31f0326982d9f2af42f58e980c56af5e')
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/linux-${_basekernel}"
|
||||
|
@ -48,6 +54,9 @@ build() {
|
|||
# ALARM patches
|
||||
git apply "${srcdir}/patch-${pkgver}-${rcnrel}.diff"
|
||||
patch -Np1 -F10 -i "${srcdir}/aufs3-3.7.patch"
|
||||
patch -Np1 -i "${srcdir}/01-wifi.patch"
|
||||
patch -Np1 -i "${srcdir}/02-wifi.patch"
|
||||
patch -Np1 -i "${srcdir}/03-wifi.patch"
|
||||
|
||||
cat "${srcdir}/config" > ./.config
|
||||
|
||||
|
|
Loading…
Reference in a new issue