kernel3: updated to 3.2.21.

This commit is contained in:
Arne Fitzenreiter
2012-06-27 18:57:03 +02:00
parent 631b4d458d
commit 83d893a984
6 changed files with 20 additions and 173 deletions

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 2.6.42.19-ipfire-omap Kernel Configuration
# Linux/arm 3.2.21 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 2.6.42.20 Kernel Configuration
# Linux/arm 3.2.21 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -122,9 +122,10 @@ CONFIG_PERF_USE_VMALLOC=y
# CONFIG_PERF_EVENTS is not set
# CONFIG_PERF_COUNTERS is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
@@ -3182,7 +3183,8 @@ CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
CONFIG_TIMER_STATS=y
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set

View File

@@ -1,5 +1,5 @@
boot/uInit-ipfire-omap
boot/uImage-ipfire-omap
boot/System.map-2.6.42.20-ipfire-omap
boot/config-2.6.42.20-ipfire-omap
lib/modules/2.6.42.20-ipfire-omap
boot/System.map-3.2.21-ipfire-omap
boot/config-3.2.21-ipfire-omap
lib/modules/3.2.21-ipfire-omap

View File

@@ -1,4 +1,4 @@
boot/kernel.img
boot/System.map-2.6.42.20-ipfire-rpi
boot/config-2.6.42.20-ipfire-rpi
lib/modules/2.6.42.20-ipfire-rpi
boot/System.map-3.2.21-ipfire-rpi
boot/config-3.2.21-ipfire-rpi
lib/modules/3.2.21-ipfire-rpi

View File

@@ -24,20 +24,12 @@
include Config
PATCHLEVEL = .20
VER = 3.2.21
VER = 2.6.42.20
XVERS = 3.2.20
XVERSION = 2
XPATCHLEVEL = 6
XSUBLEVEL = 42
XEXTRAVERSION = .20
RPI_PATCHES = linux-3.2-bootc-6ab6087
RPI_PATCHES = linux-3.2-bootc-a1f8d7a
THISAPP = linux-$(VER)
DL_FILE = linux-$(XVERS).tar.bz2
DL_FILE = linux-$(VER).tar.bz2
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
CFLAGS =
@@ -83,8 +75,8 @@ objects =$(DL_FILE) \
$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE)
rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz
$(DL_FILE)_MD5 = bd0063a747c3ea0ecdcc85a512d9760a
rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = fd87188cbd0b168a2b335db3d661ece9
$(DL_FILE)_MD5 = c8a4ae25eb44f9122f386068e30e7e2e
rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = c3891a7f38609783358e765d784e5e6e
install : $(TARGET)
@@ -117,13 +109,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) $(DIR_SRC)/linux && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
# Change version from 3.x to 2.6.4x
cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^VERSION =.*$$/VERSION = $(XVERSION)/g" Makefile
cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^PATCHLEVEL =.*$$/PATCHLEVEL = $(XPATCHLEVEL)/g" Makefile
cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^SUBLEVEL =.*$$/SUBLEVEL = $(XSUBLEVEL)/g" Makefile
cd $(DIR_SRC)/linux-$(XVERS) && sed -i -e "s/^EXTRAVERSION =.*$$/EXTRAVERSION = $(XEXTRAVERSION)/g" Makefile
mv $(DIR_SRC)/linux-$(XVERS) $(DIR_SRC)/linux-$(VER)
ln -svf linux-$(VER) $(DIR_SRC)/linux
# Linux Intermediate Queueing Device
@@ -132,7 +117,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
# Not report deprecated syscall 1.23 (for kudzu)
# cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch
# ipp2p 0.8.2-ipfire
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch
@@ -169,11 +153,10 @@ ifeq "$(KCFG)" "-omap"
endif
ifeq "$(KCFG)" "-rpi"
# Apply Raspberry Pi kernel patches. (only avail for 3.1.x kernel yet)
# Apply Raspberry Pi kernel patches.
cd $(DIR_APP) && xzcat $(DIR_DL)/rpi-patches-$(RPI_PATCHES).patch.xz | patch -Np1
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-bcm2835-alsamixer.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-bcm2835-limit_volume.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-bcm2708-sdhci_patches.patch
endif
ifeq "$(HEADERS)" "1"
@@ -192,7 +175,7 @@ else
cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config
cd $(DIR_APP) && make CC="$(KGCC)" oldconfig
cd $(DIR_APP) && make CC="$(KGCC)" clean
cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile
cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ -$(VERSUFIX)/' Makefile
ifeq "$(KCFG)" "-kirkwood"
cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage

View File

@@ -1,138 +0,0 @@
commit 872a8ff772ded51403bd8a46f80b1bf9706b76cd
Author: Paul Walmsley <paul@pwsan.com>
Date: Mon Mar 12 10:58:00 2012 -0600
mmc: use really long write timeout to deal with crappy cards
mmc: use really long write timeout to deal with crappy cards
Several people have noticed that crappy SD cards take much longer to
complete multiple block writes than the 300ms that Linux specifies.
Try to work around this by using a three second write timeout instead.
This is a generalized version of a patch from Chase Maupin
<Chase.Maupin@ti.com>, whose patch description said:
* With certain SD cards timeouts like the following have been seen
due to an improper calculation of the dto value:
mmcblk0: error -110 transferring data, sector 4126233, nr 8,
card status 0xc00
* By removing the dto calculation and setting the timeout value
to the maximum specified by the SD card specification part A2
section 2.2.15 these timeouts can be avoided.
* This change has been used by beagleboard users as well as the
Texas Instruments SDK without a negative impact.
* There are multiple discussion threads about this but the most
relevant ones are:
* http://talk.maemo.org/showthread.php?p=1000707#post1000707
* http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42213.html
* Original proposal for this fix was done by Sukumar Ghoral of
Texas Instruments
* Tested using a Texas Instruments AM335x EVM
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index d637982..a14ddf96 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -396,10 +396,14 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card)
if (data->flags & MMC_DATA_WRITE)
/*
- * The limit is really 250 ms, but that is
- * insufficient for some crappy cards.
+ * The MMC spec "It is strongly recommended
+ * for hosts to implement more than 500ms
+ * timeout value even if the card indicates
+ * the 250ms maximum busy length." Even the
+ * previous value of 300ms is known to be
+ * insufficient for some cards.
*/
- limit_us = 300000;
+ limit_us = 3000000;
else
limit_us = 100000;
The folowing sdhci fixes rebased from rasperry pi github tree to kernel 3.2 to use
actial firmware that run emmc slot at 50Mhz.
Author: Arne Fitzenreiter <arne.fitzenreiter@ipfire.org>
diff -Naur linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c
--- linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c 2012-06-12 00:18:23.000000000 +0200
+++ linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 09:33:42.448194435 +0200
@@ -328,12 +328,7 @@
static unsigned int sdhci_bcm2708_get_max_clock(struct sdhci_host *host)
{
- return 100000000; // this value is in Hz (100MHz/4)
-}
-
-static unsigned int sdhci_bcm2708_get_timeout_clock(struct sdhci_host *host)
-{
- return 100000; // this value is in kHz (100MHz/4)
+ return BCM2708_EMMC_CLOCK_FREQ;
}
/*****************************************************************************\
@@ -1222,12 +1217,7 @@
#else
#error The BCM2708 SDHCI driver needs CONFIG_MMC_SDHCI_IO_ACCESSORS to be set
#endif
- //.enable_dma = NULL,
- //.set_clock = NULL,
.get_max_clock = sdhci_bcm2708_get_max_clock,
- //.get_min_clock = NULL,
- .get_timeout_clock = sdhci_bcm2708_get_timeout_clock,
-
.enable = sdhci_bcm2708_enable,
.disable = sdhci_bcm2708_disable,
.set_plat_power = sdhci_bcm2708_set_plat_power,
diff -Naur linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c
--- linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 09:33:42.000000000 +0200
+++ linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 09:47:20.635695042 +0200
@@ -1277,7 +1277,10 @@
host->irq = platform_get_irq(pdev, 0);
host->quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
- SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK;
+ SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
+ SDHCI_QUIRK_BROKEN_TIMEOUT_VAL |
+ SDHCI_QUIRK_MISSING_CAPS |
+ SDHCI_QUIRK_NO_HISPD_BIT;
#ifdef CONFIG_MMC_SDHCI_BCM2708_DMA
host->flags = SDHCI_USE_PLATDMA;
#endif
diff -Naur linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c
--- linux-3.2.20.org/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 10:03:31.000000000 +0200
+++ linux-3.2.20/drivers/mmc/host/sdhci-bcm2708.c 2012-06-14 10:15:44.909133194 +0200
@@ -71,6 +71,8 @@
#define BCM2708_SDHCI_SLEEP_TIMEOUT 1000 /* msecs */
+#define BCM2708_EMMC_CLOCK_FREQ 50000000
+
#define POWER_OFF 0
#define POWER_LAZY_OFF 1
#define POWER_ON 2
With the last revert Chris Boot has removed the UHS block at 3.3V
so it is needed to readd it to use some cards (eg. Verbatim 8GB Class10)
Author: Arne Fitzenreiter <arne.fitzenreiter@ipfire.org>
diff -Naur linux-3.2.20.org/drivers/mmc/host/sdhci.c linux-3.2.20/drivers/mmc/host/sdhci.c
--- linux-3.2.20.org/drivers/mmc/host/sdhci.c 2012-06-12 00:18:24.000000000 +0200
+++ linux-3.2.20/drivers/mmc/host/sdhci.c 2012-06-14 12:47:25.435538000 +0200
@@ -2930,6 +2930,10 @@
if(host->ops->voltage_broken)
ocr_avail |= MMC_VDD_29_30 | MMC_VDD_30_31;
+ /* No UHS Modes at 3.3V */
+ mmc->caps &= ~(MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | MMC_CAP_UHS_SDR104 |
+ MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_DDR50 );
+
mmc->ocr_avail = ocr_avail;
mmc->ocr_avail_sdio = ocr_avail;
if (host->ocr_avail_sdio)