aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2009-11-26 22:06:58 +0100
committerThomas White <taw@bitwiz.org.uk>2009-11-26 22:06:58 +0100
commit9811283a233b55428a99771f803d2ca0f80d29de (patch)
treef41b7c5958f865c1015c3e2f29f0ffdfccdc78e6
parentdd6196f5cc0cd707e7f694f52d7e847e066a1967 (diff)
parentb90406de472c1aa5371ab593a2bb79136d5de658 (diff)
Merge branch 'andy-tracking' into drm-tracking
-rw-r--r--arch/arm/configs/gta01_moredrivers_defconfig21
-rw-r--r--arch/arm/configs/gta02_moredrivers_defconfig19
-rw-r--r--arch/arm/configs/gta02_packaging_defconfig19
-rw-r--r--arch/arm/plat-s3c24xx/adc.c42
-rw-r--r--drivers/input/misc/lis302dl.c8
-rw-r--r--drivers/mfd/glamo/glamo-fb.c2
-rw-r--r--drivers/mfd/glamo/glamo-lcm-spi.c2
-rw-r--r--drivers/mfd/glamo/glamo-spi-gpio.c2
8 files changed, 67 insertions, 48 deletions
diff --git a/arch/arm/configs/gta01_moredrivers_defconfig b/arch/arm/configs/gta01_moredrivers_defconfig
index 411acab046f..68b95e7e9e6 100644
--- a/arch/arm/configs/gta01_moredrivers_defconfig
+++ b/arch/arm/configs/gta01_moredrivers_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.29-rc3
-# Tue Feb 24 02:13:21 2009
+# Fri Oct 2 16:49:49 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -203,6 +203,7 @@ CONFIG_S3C_GPIO_SPACE=0
CONFIG_S3C_GPIO_TRACK=y
CONFIG_S3C_DMA=y
CONFIG_S3C_PWM=y
+CONFIG_S3C_DEV_USB_HOST=y
#
# S3C2400 Machines
@@ -1159,6 +1160,7 @@ CONFIG_WATCHDOG=y
#
# CONFIG_SOFT_WATCHDOG is not set
CONFIG_S3C2410_WATCHDOG=m
+CONFIG_PCF50606_WATCHDOG=y
#
# USB-based Watchdog Cards
@@ -1686,17 +1688,14 @@ CONFIG_STAGING=y
#
# Android
#
-CONFIG_ANDROID=y
-CONFIG_ANDROID_BINDER_IPC=y
-CONFIG_ANDROID_LOGGER=y
-CONFIG_ANDROID_RAM_CONSOLE=y
-CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
-# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
-# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
-CONFIG_ANDROID_TIMED_GPIO=y
-CONFIG_ANDROID_LOW_MEMORY_KILLER=y
+# CONFIG_ANDROID is not set
+# CONFIG_ANDROID_BINDER_IPC is not set
+# CONFIG_ANDROID_LOGGER is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+# CONFIG_ANDROID_TIMED_GPIO is not set
+# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
# CONFIG_ANDROID_WAKELOCK is not set
-CONFIG_ANDROID_PARANOID_NETWORK=y
+# CONFIG_ANDROID_PARANOID_NETWORK is not set
#
# File systems
diff --git a/arch/arm/configs/gta02_moredrivers_defconfig b/arch/arm/configs/gta02_moredrivers_defconfig
index 13b41215faa..e4fe9a945d5 100644
--- a/arch/arm/configs/gta02_moredrivers_defconfig
+++ b/arch/arm/configs/gta02_moredrivers_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.29-rc3
-# Sun Apr 19 23:22:38 2009
+# Fri Oct 2 20:52:45 2009
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
@@ -1782,17 +1782,14 @@ CONFIG_STAGING=y
#
# Android
#
-CONFIG_ANDROID=y
-CONFIG_ANDROID_BINDER_IPC=y
-CONFIG_ANDROID_LOGGER=y
-CONFIG_ANDROID_RAM_CONSOLE=y
-CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
-# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
-# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
-CONFIG_ANDROID_TIMED_GPIO=y
-CONFIG_ANDROID_LOW_MEMORY_KILLER=y
+# CONFIG_ANDROID is not set
+# CONFIG_ANDROID_BINDER_IPC is not set
+# CONFIG_ANDROID_LOGGER is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+# CONFIG_ANDROID_TIMED_GPIO is not set
+# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
# CONFIG_ANDROID_WAKELOCK is not set
-CONFIG_ANDROID_PARANOID_NETWORK=y
+# CONFIG_ANDROID_PARANOID_NETWORK is not set
#
# File systems
diff --git a/arch/arm/configs/gta02_packaging_defconfig b/arch/arm/configs/gta02_packaging_defconfig
index 03c72d5652b..e2dbbef7b44 100644
--- a/arch/arm/configs/gta02_packaging_defconfig
+++ b/arch/arm/configs/gta02_packaging_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.29-rc3
-# Sun Apr 19 22:57:25 2009
+# Fri Oct 2 20:51:57 2009
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
@@ -1785,17 +1785,14 @@ CONFIG_STAGING=y
#
# Android
#
-CONFIG_ANDROID=y
-CONFIG_ANDROID_BINDER_IPC=y
-CONFIG_ANDROID_LOGGER=y
-CONFIG_ANDROID_RAM_CONSOLE=y
-CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
-# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set
-# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
-CONFIG_ANDROID_TIMED_GPIO=y
-CONFIG_ANDROID_LOW_MEMORY_KILLER=y
+# CONFIG_ANDROID is not set
+# CONFIG_ANDROID_BINDER_IPC is not set
+# CONFIG_ANDROID_LOGGER is not set
+# CONFIG_ANDROID_RAM_CONSOLE is not set
+# CONFIG_ANDROID_TIMED_GPIO is not set
+# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
# CONFIG_ANDROID_WAKELOCK is not set
-CONFIG_ANDROID_PARANOID_NETWORK=y
+# CONFIG_ANDROID_PARANOID_NETWORK is not set
#
# File systems
diff --git a/arch/arm/plat-s3c24xx/adc.c b/arch/arm/plat-s3c24xx/adc.c
index 9056bcc6c17..4ce45c5da53 100644
--- a/arch/arm/plat-s3c24xx/adc.c
+++ b/arch/arm/plat-s3c24xx/adc.c
@@ -43,6 +43,7 @@ struct s3c_adc_client {
unsigned int nr_samples;
unsigned char is_ts;
unsigned char channel;
+ unsigned selected;
void (*select_cb)(unsigned selected);
void (*convert_cb)(unsigned val1, unsigned val2,
@@ -68,6 +69,7 @@ static struct adc_device *adc_dev;
static LIST_HEAD(adc_pending);
#define adc_dbg(_adc, msg...) dev_dbg(&(_adc)->pdev->dev, msg)
+#define adc_info(_adc, msg...) dev_info(&(_adc)->pdev->dev, msg)
#define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | \
S3C2410_ADCTSC_XP_SEN | S3C2410_ADCTSC_AUTO_PST | \
@@ -91,7 +93,10 @@ static inline void s3c_adc_select(struct adc_device *adc,
{
unsigned con = readl(adc->regs + S3C2410_ADCCON);
- client->select_cb(1);
+ if (!client->selected) {
+ client->selected = 1;
+ client->select_cb(1);
+ }
con &= ~S3C2410_ADCCON_MUXMASK;
con &= ~S3C2410_ADCCON_STDBM;
@@ -115,12 +120,9 @@ void s3c_adc_try(struct adc_device *adc)
{
struct s3c_adc_client *next = adc->ts_pend;
- if (!next && !list_empty(&adc_pending)) {
+ if (!next && !list_empty(&adc_pending))
next = list_first_entry(&adc_pending,
struct s3c_adc_client, pend);
- list_del(&next->pend);
- } else
- adc->ts_pend = NULL;
if (next) {
adc_dbg(adc, "new client is %p\n", next);
@@ -229,9 +231,16 @@ static irqreturn_t s3c_adc_irq(int irq, void *pw)
/* fire another conversion for this */
client->select_cb(1);
+ client->selected = 1;
s3c_adc_convert(adc);
} else {
local_irq_save(flags);
+ client->selected = 0;
+ if (!adc->cur->is_ts)
+ list_del(&adc->cur->pend);
+ else
+ adc->ts_pend = NULL;
+
(client->select_cb)(0);
adc->cur = NULL;
@@ -341,20 +350,43 @@ static int s3c_adc_suspend(struct platform_device *pdev, pm_message_t state)
writel(con, adc->regs + S3C2410_ADCCON);
clk_disable(adc->clk);
+ disable_irq(IRQ_ADC);
+
+ if (!list_empty(&adc_pending) || adc->ts_pend)
+ adc_info(adc, "%s:We still have clients pending\n", __func__);
return 0;
}
+static struct work_struct resume_work;
+
+static void adc_resume_work(struct work_struct *work)
+{
+ struct adc_device *adc = platform_get_drvdata(adc_dev->pdev);
+
+ adc_info(adc, "%s:We still have clients pending\n", __func__);
+ s3c_adc_try(adc_dev);
+}
+
static int s3c_adc_resume(struct platform_device *pdev)
{
struct adc_device *adc = platform_get_drvdata(pdev);
+ enable_irq(IRQ_ADC);
clk_enable(adc->clk);
writel(adc->prescale | S3C2410_ADCCON_PRSCEN,
adc->regs + S3C2410_ADCCON);
writel(adc->delay, adc->regs + S3C2410_ADCDLY);
+ /* Schedule task if there are clients pending. */
+ if (!list_empty(&adc_pending) || adc_dev->ts_pend) {
+ INIT_WORK(&resume_work, adc_resume_work);
+ if (!schedule_work(&resume_work))
+ dev_err(&pdev->dev,
+ "Failed to schedule adc_resume work!\n");
+ }
+
return 0;
}
diff --git a/drivers/input/misc/lis302dl.c b/drivers/input/misc/lis302dl.c
index f31e5488440..d345bfb2718 100644
--- a/drivers/input/misc/lis302dl.c
+++ b/drivers/input/misc/lis302dl.c
@@ -818,7 +818,6 @@ static int __devexit lis302dl_remove(struct spi_device *spi)
#ifdef CONFIG_PM
static u8 regs_to_save[] = {
- LIS302DL_REG_CTRL1,
LIS302DL_REG_CTRL2,
LIS302DL_REG_CTRL3,
LIS302DL_REG_FF_WU_CFG_1,
@@ -833,7 +832,7 @@ static u8 regs_to_save[] = {
LIS302DL_REG_CLICK_TIME_LIMIT,
LIS302DL_REG_CLICK_LATENCY,
LIS302DL_REG_CLICK_WINDOW,
-
+ LIS302DL_REG_CTRL1,
};
static int lis302dl_suspend(struct spi_device *spi, pm_message_t state)
@@ -906,11 +905,6 @@ static int lis302dl_resume(struct spi_device *spi)
if (__lis302dl_reset_device(lis))
dev_err(&spi->dev, "device BOOT reload failed\n");
- lis->regs[LIS302DL_REG_CTRL1] |= LIS302DL_CTRL1_PD |
- LIS302DL_CTRL1_Xen |
- LIS302DL_CTRL1_Yen |
- LIS302DL_CTRL1_Zen;
-
/* restore registers after resume */
for (n = 0; n < ARRAY_SIZE(regs_to_save); n++)
__reg_write(lis, regs_to_save[n], lis->regs[regs_to_save[n]]);
diff --git a/drivers/mfd/glamo/glamo-fb.c b/drivers/mfd/glamo/glamo-fb.c
index 06bbe8a505f..f2f92bcfe66 100644
--- a/drivers/mfd/glamo/glamo-fb.c
+++ b/drivers/mfd/glamo/glamo-fb.c
@@ -128,7 +128,7 @@ static struct glamo_script glamo_regs[] = {
* 01 00 0 100 0 000 01 0 0 */
/* The following values assume 640*480@16bpp */
{ GLAMO_REG_LCD_A_BASE1, 0x0000 }, /* display A base address 15:0 */
- { GLAMO_REG_LCD_A_BASE2, 0x0000 }, /* display A base address 22:16 */
+ { GLAMO_REG_LCD_A_BASE2, 0x4000 }, /* display A base address 22:16 */
{ GLAMO_REG_LCD_B_BASE1, 0x6000 }, /* display B base address 15:0 */
{ GLAMO_REG_LCD_B_BASE2, 0x0009 }, /* display B base address 22:16 */
{ GLAMO_REG_LCD_CURSOR_BASE1, 0xC000 }, /* cursor base address 15:0 */
diff --git a/drivers/mfd/glamo/glamo-lcm-spi.c b/drivers/mfd/glamo/glamo-lcm-spi.c
index a7129fe798c..446f0581e9e 100644
--- a/drivers/mfd/glamo/glamo-lcm-spi.c
+++ b/drivers/mfd/glamo/glamo-lcm-spi.c
@@ -236,5 +236,5 @@ module_init(glamo_spi_init);
module_exit(glamo_spi_exit);
MODULE_DESCRIPTION("Smedia Glamo 336x/337x LCM serial command SPI Driver");
-MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>")
+MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>");
MODULE_LICENSE("GPL");
diff --git a/drivers/mfd/glamo/glamo-spi-gpio.c b/drivers/mfd/glamo/glamo-spi-gpio.c
index b92e48a17b7..6ebf4982d6c 100644
--- a/drivers/mfd/glamo/glamo-spi-gpio.c
+++ b/drivers/mfd/glamo/glamo-spi-gpio.c
@@ -274,5 +274,5 @@ module_init(glamo_spi_init);
module_exit(glamo_spi_exit);
MODULE_DESCRIPTION("Smedia Glamo 336x/337x LCM serial command SPI Driver");
-MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>")
+MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>");
MODULE_LICENSE("GPL");