kernel: updated omap and rpi kernel to 2.6.42.19 (aka 3.2.19).

This commit is contained in:
Arne Fitzenreiter
2012-06-10 11:13:59 +02:00
parent fddc02a51a
commit 1f6abd5362
19 changed files with 2533 additions and 984 deletions

View File

@@ -1,51 +0,0 @@
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index 90485fc..7a92185 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -583,7 +583,7 @@ static void omap4_panda_disable_dvi(struct omap_dss_device *dssdev)
/* Using generic display panel */
static struct panel_generic_dpi_data omap4_dvi_panel = {
- .name = "generic",
+ .name = "dvi_720p",
.platform_enable = omap4_panda_enable_dvi,
.platform_disable = omap4_panda_disable_dvi,
};
diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c
index 9c90f75..af8352f 100644
--- a/drivers/video/omap2/displays/panel-generic-dpi.c
+++ b/drivers/video/omap2/displays/panel-generic-dpi.c
@@ -232,7 +232,32 @@ static struct panel_config generic_dpi_panels[] = {
.power_off_delay = 0,
.name = "powertip_ph480272t",
},
-};
+
+ /* Vesa 720p 1280x768 */
+ {
+ {
+ .x_res = 1280,
+ .y_res = 768,
+
+ .pixel_clock = 71000,
+
+ .hfp = 128,
+ .hsw = 64,
+ .hbp = 192,
+
+ .vfp = 3,
+ .vsw = 7,
+ .vbp = 20,
+ },
+ .acbi = 0x0,
+ .acb = 0x0,
+ .config = OMAP_DSS_LCD_TFT,
+ .power_on_delay = 0,
+ .power_off_delay = 0,
+ .name = "dvi_720p",
+ },
+ };
+
struct panel_drv_data {

View File

@@ -1,22 +0,0 @@
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 58a58c7..bba0441 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -276,7 +276,7 @@ static void omap_i2c_unidle(struct omap_i2c_dev *dev)
pm_runtime_get_sync(&pdev->dev);
- if (cpu_is_omap34xx()) {
+ if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0);
omap_i2c_write_reg(dev, OMAP_I2C_PSC_REG, dev->pscstate);
omap_i2c_write_reg(dev, OMAP_I2C_SCLL_REG, dev->scllstate);
@@ -493,7 +493,7 @@ static int omap_i2c_init(struct omap_i2c_dev *dev)
OMAP_I2C_IE_AL) | ((dev->fifo_size) ?
(OMAP_I2C_IE_RDR | OMAP_I2C_IE_XDR) : 0);
omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate);
- if (cpu_is_omap34xx()) {
+ if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
dev->pscstate = psc;
dev->scllstate = scll;
dev->sclhstate = sclh;

View File

@@ -1,21 +0,0 @@
arch/arm/lib/uaccess_with_memcpy.c: In function 'pin_page_for_write':
arch/arm/lib/uaccess_with_memcpy.c:45: error: implicit declaration of function 'kmap_atomic'
arch/arm/lib/uaccess_with_memcpy.c:48: error: implicit declaration of function 'kunmap_atomic'
make[2]: *** [arch/arm/lib/uaccess_with_memcpy.o] Error 1
Signed-off-by: Paul Gortmaker <paul.gortmaker at windriver.com>
diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c
index 8b9b136..66945a6 100644
--- a/arch/arm/lib/uaccess_with_memcpy.c
+++ b/arch/arm/lib/uaccess_with_memcpy.c
@@ -12,6 +12,7 @@
#include <linux/kernel.h>
#include <linux/ctype.h>
#include <linux/uaccess.h>
+#include <linux/highmem.h>
#include <linux/rwsem.h>
#include <linux/mm.h>
#include <linux/sched.h>
--
1.7.6

View File

@@ -1,27 +0,0 @@
diff -Naur linux-3.0.24.org/drivers/rtc/rtc-twl.c linux-3.0.24/drivers/rtc/rtc-twl.c
--- linux-3.0.24.org/drivers/rtc/rtc-twl.c 2012-03-12 18:58:19.000000000 +0100
+++ linux-3.0.24/drivers/rtc/rtc-twl.c 2012-03-20 23:24:52.213578926 +0100
@@ -362,14 +362,6 @@
int res;
u8 rd_reg;
-#ifdef CONFIG_LOCKDEP
- /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
- * we don't want and can't tolerate. Although it might be
- * friendlier not to borrow this thread context...
- */
- local_irq_enable();
-#endif
-
res = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG);
if (res)
goto out;
@@ -462,7 +454,7 @@
if (ret < 0)
goto out1;
- ret = request_irq(irq, twl_rtc_interrupt,
+ ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt,
IRQF_TRIGGER_RISING,
dev_name(&rtc->dev), rtc);
if (ret < 0) {

View File

@@ -1,12 +0,0 @@
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index 1269658..8ec6330 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -377,6 +377,7 @@ static struct regulator_init_data omap4_panda_vusb = {
static struct regulator_init_data omap4_panda_clk32kg = {
.constraints = {
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
+ .always_on = true,
},
};

View File

View File

@@ -0,0 +1,12 @@
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
index daa056e..fe03b09 100644
--- a/arch/arm/mach-omap2/twl-common.c
+++ b/arch/arm/mach-omap2/twl-common.c
@@ -261,6 +261,7 @@ static struct regulator_init_data omap4_vusb_idata = {
static struct regulator_init_data omap4_clk32kg_idata = {
.constraints = {
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
+ .always_on = true,
},
};

View File

@@ -0,0 +1,51 @@
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 7f47092..2a05d3d 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -389,8 +389,10 @@ static void __init omap4_check_revision(void)
omap_revision = OMAP4430_REV_ES2_1;
break;
case 4:
- default:
omap_revision = OMAP4430_REV_ES2_2;
+ case 6:
+ default:
+ omap_revision = OMAP4430_REV_ES2_3;
}
break;
case 0xb94e:
@@ -403,7 +405,7 @@ static void __init omap4_check_revision(void)
break;
default:
/* Unknown default to latest silicon rev as default */
- omap_revision = OMAP4430_REV_ES2_2;
+ omap_revision = OMAP4430_REV_ES2_3;
}
pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16,
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 7695e5d..71d3e36 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -2257,7 +2257,8 @@ static struct omap_hwmod_class omap44xx_i2c_hwmod_class = {
};
static struct omap_i2c_dev_attr i2c_dev_attr = {
- .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE,
+ .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE |
+ OMAP_I2C_FLAG_RESET_REGS_POSTIDLE,
};
/* i2c1 */
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
index 408a12f..e279395 100644
--- a/arch/arm/plat-omap/include/plat/cpu.h
+++ b/arch/arm/plat-omap/include/plat/cpu.h
@@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517)
#define OMAP4430_REV_ES2_0 (OMAP443X_CLASS | (0x20 << 8))
#define OMAP4430_REV_ES2_1 (OMAP443X_CLASS | (0x21 << 8))
#define OMAP4430_REV_ES2_2 (OMAP443X_CLASS | (0x22 << 8))
+#define OMAP4430_REV_ES2_3 (OMAP443X_CLASS | (0x23 << 8))
#define OMAP446X_CLASS 0x44600044
#define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8))

View File

@@ -0,0 +1,48 @@
diff -Naur linux-3.2.19.org/sound/arm/bcm2835-ctl.c linux-3.2.19/sound/arm/bcm2835-ctl.c
--- linux-3.2.19.org/sound/arm/bcm2835-ctl.c 2012-06-04 21:11:15.000000000 +0200
+++ linux-3.2.19/sound/arm/bcm2835-ctl.c 2012-06-04 21:32:37.969298501 +0200
@@ -33,6 +33,19 @@
#include "bcm2835.h"
+
+/* functions to convert alsa to chip volume and back. */
+int alsa2chip(int vol)
+{
+ return -((vol << 8) / 100);
+}
+
+int chip2alsa(int vol)
+{
+ return -((vol * 100) >> 8);
+}
+
+
static int snd_bcm2835_ctl_info(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{
@@ -64,7 +77,7 @@
BUG_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));
if (kcontrol->private_value == PCM_PLAYBACK_VOLUME)
- ucontrol->value.integer.value[0] = chip->volume;
+ ucontrol->value.integer.value[0] = chip2alsa(chip->volume);
else if (kcontrol->private_value == PCM_PLAYBACK_MUTE)
ucontrol->value.integer.value[0] = chip->mute;
else if (kcontrol->private_value == PCM_PLAYBACK_DEVICE)
@@ -85,13 +98,10 @@
changed = 1;
}
if (changed
- || (ucontrol->value.integer.value[0] != chip->volume)) {
- int atten;
+ || (ucontrol->value.integer.value[0] != chip2alsa(chip->volume))) {
- chip->volume = ucontrol->value.integer.value[0];
+ chip->volume = alsa2chip(ucontrol->value.integer.value[0]);
changed = 1;
- atten = -((chip->volume << 8) / 100);
- chip->volume = atten;
}
} else if (kcontrol->private_value == PCM_PLAYBACK_MUTE) {

View File

@@ -0,0 +1,12 @@
diff -Naur linux-3.2.19.org/sound/arm/bcm2835-ctl.c linux-3.2.19/sound/arm/bcm2835-ctl.c
--- linux-3.2.19.org/sound/arm/bcm2835-ctl.c 2012-06-04 22:38:54.000000000 +0200
+++ linux-3.2.19/sound/arm/bcm2835-ctl.c 2012-06-05 22:37:46.343725845 +0200
@@ -53,7 +53,7 @@
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 1;
uinfo->value.integer.min = -10240;
- uinfo->value.integer.max = 2303;
+ uinfo->value.integer.max = 400; /* 2303 */
} else if (kcontrol->private_value == PCM_PLAYBACK_MUTE) {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 1;

File diff suppressed because it is too large Load Diff