From fc54b9bf158eea9cae647ce2c58f7d9989af173a Mon Sep 17 00:00:00 2001 From: mirko Date: Fri, 12 Dec 2008 11:58:53 +0000 Subject: changed Makefile and profiles, added patches for kernel 2.6.24 (stable-branch of Openmoko) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13613 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../1264-silence-serial-console-gta01.patch.patch | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 target/linux/s3c24xx/patches-2.6.24/1264-silence-serial-console-gta01.patch.patch (limited to 'target/linux/s3c24xx/patches-2.6.24/1264-silence-serial-console-gta01.patch.patch') diff --git a/target/linux/s3c24xx/patches-2.6.24/1264-silence-serial-console-gta01.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1264-silence-serial-console-gta01.patch.patch new file mode 100644 index 000000000..7713c47f1 --- /dev/null +++ b/target/linux/s3c24xx/patches-2.6.24/1264-silence-serial-console-gta01.patch.patch @@ -0,0 +1,76 @@ +From bea12b6beb76a483145b07d30602b0dd18ff2484 Mon Sep 17 00:00:00 2001 +From: Mike Westerhof +Date: Fri, 8 Aug 2008 13:10:18 +0100 +Subject: [PATCH] silence-serial-console-gta01.patch + + This patch ensures that no console data will go the UART while + the GSM mux is switched to the GSM. This is necessary despite + the code that disables the console due to the fact that the + console resumes before the neo1973_pm_gsm driver, and consoles + always resume in the "on" state. + +Signed-off-by: Mike Westerhof +--- + arch/arm/plat-s3c24xx/neo1973_pm_gsm.c | 3 +++ + drivers/serial/s3c2410.c | 10 ++++++++++ + 2 files changed, 13 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c b/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c +index 0543905..68b7111 100644 +--- a/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c ++++ b/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c +@@ -31,6 +31,7 @@ + #include + #endif + ++extern void s3c24xx_serial_console_set_silence(int silence); + extern void s3c24xx_serial_register_resume_dependency(struct resume_dependency * + resume_dependency, int uart_index); + +@@ -105,6 +106,7 @@ static ssize_t gsm_write(struct device *dev, struct device_attribute *attr, + "disconnecting serial console\n"); + + console_stop(gta01_gsm.con); ++ s3c24xx_serial_console_set_silence(1); + } + + if (gta01_gsm.gpio_ngsm_en) +@@ -144,6 +146,7 @@ static ssize_t gsm_write(struct device *dev, struct device_attribute *attr, + s3c2410_gpio_setpin(gta01_gsm.gpio_ngsm_en, 1); + + if (gta01_gsm.con) { ++ s3c24xx_serial_console_set_silence(0); + console_start(gta01_gsm.con); + + dev_dbg(dev, "powered down GSM, thus enabling " +diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c +index 5652905..2a388cf 100644 +--- a/drivers/serial/s3c2410.c ++++ b/drivers/serial/s3c2410.c +@@ -1780,6 +1780,13 @@ module_exit(s3c24xx_serial_modexit); + #ifdef CONFIG_SERIAL_S3C2410_CONSOLE + + static struct uart_port *cons_uart; ++static int cons_silenced; ++ ++void s3c24xx_serial_console_set_silence(int silenced) ++{ ++ cons_silenced = silenced; ++} ++EXPORT_SYMBOL(s3c24xx_serial_console_set_silence); + + static int + s3c24xx_serial_console_txrdy(struct uart_port *port, unsigned int ufcon) +@@ -1806,6 +1813,9 @@ s3c24xx_serial_console_putchar(struct uart_port *port, int ch) + unsigned int ufcon = rd_regl(cons_uart, S3C2410_UFCON); + unsigned int umcon = rd_regl(cons_uart, S3C2410_UMCON); + ++ if (cons_silenced) ++ return; ++ + /* If auto HW flow control enabled, temporarily turn it off */ + if (umcon & S3C2410_UMCOM_AFC) + wr_regl(port, S3C2410_UMCON, (umcon & !S3C2410_UMCOM_AFC)); +-- +1.5.6.5 + -- cgit v1.2.3