linux-rp-2.6.17: Sync with OE

git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2013 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
Richard Purdie
2007-06-26 21:36:34 +00:00
parent d3076aca9d
commit 8689ce9ada
6 changed files with 31939 additions and 8 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,157 @@
Index: linux-tosa/arch/arm/mach-pxa/tosa.c
===================================================================
--- linux-tosa.orig/arch/arm/mach-pxa/tosa.c 2006-08-29 16:52:59.000000000 +0100
+++ linux-tosa/arch/arm/mach-pxa/tosa.c 2006-08-29 16:55:25.959706776 +0100
@@ -2,6 +2,7 @@
* Support for Sharp SL-C6000x PDAs
* Model: (Tosa)
*
+ * Copyright (c) 2006 Wolfson Microelectronics PLC.
* Copyright (c) 2005 Dirk Opfer
*
* Based on code written by Sharp/Lineo for 2.4 kernels
@@ -46,6 +47,8 @@
#include <asm/hardware/tmio.h>
#include <asm/mach/sharpsl_param.h>
+#include <linux/wm97xx.h>
+
#include "generic.h"
/*
@@ -428,6 +431,16 @@
},
};
+
+/*
+ * Tosa Touchscreen device
+ */
+
+static struct wm97xx_machinfo tosa_ts_machinfo = {
+ .get_hsync_time = tosa_get_hsync_time,
+ .wait_hsync = tosa_wait_hsync,
+};
+
/*
* Tosa Blueooth
*/
@@ -457,6 +470,7 @@
GPSR(TOSA_GPIO_ON_RESET) = GPIO_bit(TOSA_GPIO_ON_RESET);
mdelay(1000);
+ wm97xx_unset_machinfo();
}
static void tosa_restart(void)
@@ -501,6 +515,8 @@
platform_scoop_config = &tosa_pcmcia_config;
platform_add_devices(devices, ARRAY_SIZE(devices));
+
+ wm97xx_set_machinfo(&tosa_ts_machinfo);
}
static void __init fixup_tosa(struct machine_desc *desc,
Index: linux-tosa/arch/arm/mach-pxa/tosa_lcd.c
===================================================================
--- linux-tosa.orig/arch/arm/mach-pxa/tosa_lcd.c 2006-08-29 16:52:59.000000000 +0100
+++ linux-tosa/arch/arm/mach-pxa/tosa_lcd.c 2006-08-29 16:55:32.818664056 +0100
@@ -1,6 +1,7 @@
/*
* LCD / Backlight control code for Sharp SL-6000x (tosa)
*
+ * Copyright (c) 2006 Wolfson Microelectronics PLC.
* Copyright (c) 2005 Dirk Opfer
*
* This program is free software; you can redistribute it and/or modify
@@ -59,6 +60,8 @@
static struct ssp_dev tosa_nssp_dev;
static struct ssp_state tosa_nssp_state;
static spinlock_t tosa_nssp_lock;
+static int blanked;
+static unsigned long hsync_time;
static unsigned short normal_i2c[] = {
DAC_BASE,
@@ -130,6 +133,17 @@
pxa_nssp_output(TG_GPOSR,0x02); /* GPOS0=powercontrol, GPOS1=GPIO, GPOS2=TCTL */
}
+static unsigned long calc_hsync_time(const struct fb_videomode *mode) {
+ /* The 25 and 44 'magic numbers' are from Sharp's 2.4 patches */
+ if (mode->yres == 640) {
+ return 25;
+ }
+ if (mode->yres == 320) {
+ return 44;
+ }
+ return 0;
+}
+
static void tosa_lcd_tg_on(struct device *dev, const struct fb_videomode *mode)
{
const int value = TG_REG0_COLOR | TG_REG0_UD | TG_REG0_LR;
@@ -154,6 +168,8 @@
/* set common voltage */
i2c_smbus_write_byte_data(tosa_i2c_dac, DAC_CH1, comadj);
+ blanked = 0;
+ hsync_time = calc_hsync_time(mode);
}
static void tosa_lcd_tg_off(struct device *dev)
@@ -172,6 +188,8 @@
/* L3V Off */
reset_scoop_gpio( &tosascoop_jc_device.dev,TOSA_SCOOP_JC_TC3693_L3V_ON);
+
+ blanked = 1;
}
static int tosa_detect_client(struct i2c_adapter* adapter, int address, int kind) {
@@ -238,6 +256,23 @@
return 0;
}
+unsigned long tosa_get_hsync_time(void)
+{
+/* This method should eventually contain the correct algorithm for calculating
+ the hsync_time */
+ if (blanked)
+ return 0;
+ else
+ return hsync_time;
+}
+
+void tosa_wait_hsync(void)
+{
+ /* Waits for a rising edge on the VGA line */
+ while((GPLR(TOSA_GPIO_VGA_LINE) & GPIO_bit(TOSA_GPIO_VGA_LINE)) == 0);
+ while((GPLR(TOSA_GPIO_VGA_LINE) & GPIO_bit(TOSA_GPIO_VGA_LINE)) != 0);
+}
+
static struct i2c_driver tosa_driver={
.id = TOSA_LCD_I2C_DEVICEID,
.attach_adapter = tosa_attach_adapter,
Index: linux-tosa/include/asm-arm/arch-pxa/tosa.h
===================================================================
--- linux-tosa.orig/include/asm-arm/arch-pxa/tosa.h 2006-08-29 16:52:59.000000000 +0100
+++ linux-tosa/include/asm-arm/arch-pxa/tosa.h 2006-08-29 16:55:12.442761664 +0100
@@ -1,6 +1,7 @@
/*
* Hardware specific definitions for Sharp SL-C6000x series of PDAs
*
+ * Copyright (c) 2006 Wolfson Microelectronics PLC.
* Copyright (c) 2005 Dirk Opfer
*
* Based on Sharp's 2.4 kernel patches
@@ -187,4 +188,8 @@
extern struct platform_device tosascoop_jc_device;
extern struct platform_device tosascoop_device;
extern struct platform_device tc6393_device;
+
+unsigned long tosa_get_hsync_time(void);
+void tosa_wait_hsync(void);
+
#endif /* _ASM_ARCH_TOSA_H_ */

View File

@@ -0,0 +1,44 @@
sound/soc/codecs/wm9712.c | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
Index: linux-2.6.18/sound/soc/codecs/wm9712.c
===================================================================
--- linux-2.6.18.orig/sound/soc/codecs/wm9712.c 2006-12-05 23:25:33.000000000 +0000
+++ linux-2.6.18/sound/soc/codecs/wm9712.c 2006-12-05 23:27:20.000000000 +0000
@@ -618,18 +618,26 @@ static int wm9712_dapm_event(struct snd_
static int wm9712_reset(struct snd_soc_codec *codec, int try_warm)
{
- if (try_warm && soc_ac97_ops.warm_reset) {
- soc_ac97_ops.warm_reset(codec->ac97);
- if (!(ac97_read(codec, 0) & 0x8000))
- return 1;
- }
+ int retry = 3;
+
+ while (retry--)
+ {
+ if(try_warm && soc_ac97_ops.warm_reset) {
+ soc_ac97_ops.warm_reset(codec->ac97);
+ if(ac97_read(codec, 0) & 0x8000)
+ continue;
+ else
+ return 1;
+ }
- soc_ac97_ops.reset(codec->ac97);
- if (ac97_read(codec, 0) & 0x8000)
- goto err;
- return 0;
+ soc_ac97_ops.reset(codec->ac97);
+ if(ac97_read(codec, 0) & 0x8000)
+ continue;
+ else
+ return 0;
+
+ }
-err:
printk(KERN_ERR "WM9712 AC97 reset failed\n");
return -EIO;
}

View File

@@ -0,0 +1,16 @@
sound/soc/codecs/wm9712.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6.18/sound/soc/codecs/wm9712.c
===================================================================
--- linux-2.6.18.orig/sound/soc/codecs/wm9712.c 2006-12-05 23:19:53.000000000 +0000
+++ linux-2.6.18/sound/soc/codecs/wm9712.c 2006-12-05 23:22:04.000000000 +0000
@@ -651,7 +651,7 @@ static int wm9712_soc_resume(struct plat
int i, ret;
u16 *cache = codec->reg_cache;
- ret = wm9712_reset(codec, 1);
+ ret = wm9712_reset(codec, 0);
if (ret < 0){
printk(KERN_ERR "could not reset AC97 codec\n");
return ret;

View File

@@ -1653,3 +1653,4 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
# CONFIG_SHARPSL_RC is not set

View File

@@ -1,6 +1,6 @@
require linux-rp.inc
PR = "r34"
PR = "r35"
# Handy URLs
# git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git \
@@ -27,8 +27,7 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.17.tar.bz2 \
${RPSRC}/spectrumcs_fix-r0.patch;patch=1 \
file://00-hostap.patch;patch=1;status=merged \
file://10-pcnet.patch;patch=1;status=merged \
${RPSRC}/alsa/asoc-v0.12.patch;patch=1 \
${RPSRC}/asoc_makefile-r0.patch;patch=1 \
file://asoc-v0.12.4_2.6.17.patch;patch=1 \
${RPSRC}/hx2750_base-r27.patch;patch=1 \
${RPSRC}/hx2750_bl-r7.patch;patch=1 \
${RPSRC}/hx2750_pcmcia-r2.patch;patch=1 \
@@ -42,12 +41,13 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.17.tar.bz2 \
${RPSRC}/pm_changes-r1.patch;patch=1 \
${RPSRC}/usb_pxa27x_udc-r0.patch;patch=1 \
${RPSRC}/usb_add_epalloc-r1.patch;patch=1 \
${DOSRC}/kexec-arm-r3.patch;patch=1 \
${RPSRC}/kexec-arm-r3a.patch;patch=1 \
${RPSRC}/locomo_kbd_tweak-r1.patch;patch=1 \
${RPSRC}/poodle_pm-r3.patch;patch=1 \
${RPSRC}/pxafb_changeres-r0.patch;patch=1 \
${RPSRC}/poodle_audio-r6.patch;patch=1 \
${RPSRC}/poodle_audio-r7.patch;patch=1 \
${RPSRC}/pxa27x_overlay-r2.patch;patch=1 \
${RPSRC}/w100_extaccel-r0.patch;patch=1 \
${RPSRC}/xscale_cache_workaround-r1.patch;patch=1 \
file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \
file://hrw-pcmcia-ids-r5.patch;patch=1 \
@@ -85,7 +85,7 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.17.tar.bz2 \
# Is anything out of this still needed? Parts were commited to mainline by rmk (drivers/mfd/)
# (Pavel Machek's git tree has updated versions of this?)
# ${JLSRC}/zaurus-lcd-2.6.11.diff.gz;patch=1
# ${JLSRC}/zaurus-lcd-2.6.11.diff.gz;patch=1
# These patches are extracted from Pavel Machek's git tree
# (diff against vanilla kernel)
@@ -113,11 +113,11 @@ SRC_URI_append_tosa = "\
${DOSRC}/tosa-tmio-lcd-r8.patch;patch=1 \
${DOSRC}/tosa-bluetooth-r8.patch;patch=1 \
${DOSRC}/wm97xx-lg7-r0.patch;patch=1 \
${DOSRC}/wm9712-suspend-cold-res-r1.patch;patch=1 \
file://wm9712-suspend-cold-res-r2.patch;patch=1 \
${DOSRC}/sharpsl-pm-postresume-r0.patch;patch=1 \
${DOSRC}/wm97xx-dig-restore-r0.patch;patch=1 \
${DOSRC}/wm97xx-miscdevs-resume-r0.patch;patch=1 \
${DOSRC}/wm9712-reset-loop-r1.patch;patch=1 \
file://wm9712-reset-loop-r2.patch;patch=1 \
file://tosa-lcdnoise-r0.patch;patch=1 \
file://wm97xx-lcdnoise-r0.patch;patch=1 "
# ${DOSRC}/tosa-asoc-r1.patch;patch=1 "