From 9a725b75ff28d0729af42a355ea89f9edf2c88f6 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 2 Nov 2005 19:05:55 +0000 Subject: Update git3 kernel to have working alsa support for both c7x0 and cxx00 :) git-svn-id: https://svn.o-hand.com/repos/poky@157 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../linux-openzaurus-2.6.14-git3/defconfig-c7x0 | 52 +++++-- .../linux-openzaurus-2.6.14-git3/defconfig-cxx00 | 39 ++++-- ...t-for-non-standard-xtals-to-16c950-driver.patch | 155 +++++++++++++++++++++ 3 files changed, 222 insertions(+), 24 deletions(-) create mode 100644 openembedded/packages/linux/linux-openzaurus-2.6.14-git3/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch (limited to 'openembedded/packages/linux/linux-openzaurus-2.6.14-git3') diff --git a/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/defconfig-c7x0 b/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/defconfig-c7x0 index 3e6df05f2..15aaa9891 100644 --- a/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/defconfig-c7x0 +++ b/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/defconfig-c7x0 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.14-rc4 -# Thu Oct 13 14:55:00 2005 +# Linux kernel version: 2.6.14-git3 +# Wed Nov 2 15:14:36 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -158,6 +158,7 @@ CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 CONFIG_ALIGNMENT_TRAP=y # @@ -165,7 +166,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" # CONFIG_XIP_KERNEL is not set # @@ -175,7 +176,9 @@ CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_DEBUG=y CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y @@ -450,7 +453,6 @@ CONFIG_BT_HCIUSB=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_BCSP_TXCRC=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -578,6 +580,11 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ATA_OVER_ETH is not set # @@ -813,6 +820,7 @@ CONFIG_TOUCHSCREEN_CORGI=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_WM97XX is not set CONFIG_INPUT_MISC=y CONFIG_INPUT_UINPUT=m @@ -875,6 +883,7 @@ CONFIG_SA1100_RTC=y # # TPM devices # +# CONFIG_TELCLOCK is not set # # I2C support @@ -909,6 +918,8 @@ CONFIG_I2C_PXA=y # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_MAX6875 is not set +# CONFIG_RTC_X1205_I2C is not set +# CONFIG_MAX7310 is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -1001,11 +1012,9 @@ CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_SOFT_CURSOR=y # CONFIG_FB_MACMODES is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set -# CONFIG_FB_ELPP is not set # CONFIG_FB_PXA is not set CONFIG_FB_W100=y # CONFIG_FB_S1D13XXX is not set @@ -1017,6 +1026,7 @@ CONFIG_FB_W100=y # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set CONFIG_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y @@ -1078,6 +1088,15 @@ CONFIG_SND_AC97_BUS=m CONFIG_SND_PXA2XX_PCM=m CONFIG_SND_PXA2XX_AC97=m +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set + +# +# PCMCIA devices +# + # # SoC audio support # @@ -1091,13 +1110,19 @@ CONFIG_SND_PXA2xx_SOC=m CONFIG_SND_PXA2xx_SOC_I2S=m # CONFIG_SND_PXA2xx_SOC_SSP is not set +# +# PXA2xx machine support +# +# CONFIG_SND_PXA2xx_SOC_MAINSTONE is not set +CONFIG_SND_PXA2xx_SOC_CORGI=m + # # Soc Codecs # +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8753 is not set CONFIG_SND_SOC_WM8731=m # CONFIG_SND_SOC_WM8750 is not set -# CONFIG_SND_SOC_WM8753 is not set -# CONFIG_SND_SOC_WM9713_VOICE is not set # # Open Sound System @@ -1164,15 +1189,15 @@ CONFIG_USB_SL811_CS=m # USB Device Class drivers # # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m # -# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m # -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information +# may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set @@ -1293,6 +1318,7 @@ CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_SERIAL_HP4X is not set CONFIG_USB_SERIAL_SAFE=m @@ -1543,7 +1569,9 @@ CONFIG_DETECT_SOFTLOCKUP=y CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_VM is not set CONFIG_FRAME_POINTER=y +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y diff --git a/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/defconfig-cxx00 b/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/defconfig-cxx00 index bae704280..9665ac548 100644 --- a/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/defconfig-cxx00 +++ b/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/defconfig-cxx00 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.14-rc4 -# Mon Oct 17 23:25:42 2005 +# Linux kernel version: 2.6.14-git3 +# Wed Nov 2 10:36:59 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -157,6 +157,7 @@ CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 CONFIG_ALIGNMENT_TRAP=y # @@ -164,7 +165,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/hda1 rootfstype=ext3 rw debug" +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/hda1 rootfstype=ext3 rw fbcon=rotate:1 debug" # CONFIG_XIP_KERNEL is not set # @@ -439,7 +440,6 @@ CONFIG_BT_HCIUSB=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_BCSP_TXCRC=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -567,6 +567,11 @@ CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ATA_OVER_ETH is not set # @@ -802,6 +807,7 @@ CONFIG_TOUCHSCREEN_CORGI=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_WM97XX is not set CONFIG_INPUT_MISC=y CONFIG_INPUT_UINPUT=m @@ -864,6 +870,7 @@ CONFIG_SA1100_RTC=y # # TPM devices # +# CONFIG_TELCLOCK is not set # # I2C support @@ -898,6 +905,7 @@ CONFIG_I2C_PXA=y # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_RTC8564 is not set # CONFIG_SENSORS_MAX6875 is not set +# CONFIG_RTC_X1205_I2C is not set CONFIG_MAX7310=y # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set @@ -973,11 +981,9 @@ CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_SOFT_CURSOR=y # CONFIG_FB_MACMODES is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set -# CONFIG_FB_ELPP is not set CONFIG_FB_PXA=y # CONFIG_FB_W100 is not set # CONFIG_FB_PXA_PARAMETERS is not set @@ -1075,13 +1081,19 @@ CONFIG_SND_PXA2xx_SOC=m CONFIG_SND_PXA2xx_SOC_I2S=m # CONFIG_SND_PXA2xx_SOC_SSP is not set +# +# PXA2xx machine support +# +# CONFIG_SND_PXA2xx_SOC_MAINSTONE is not set +CONFIG_SND_PXA2xx_SOC_CORGI=m + # # Soc Codecs # +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8731 is not set CONFIG_SND_SOC_WM8750=m -# CONFIG_SND_SOC_WM8753 is not set -# CONFIG_SND_SOC_WM9713_VOICE is not set # # Open Sound System @@ -1119,15 +1131,15 @@ CONFIG_USB_SL811_CS=m # USB Device Class drivers # # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m # -# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m # -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information +# may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set @@ -1243,6 +1255,7 @@ CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_SERIAL_HP4X is not set CONFIG_USB_SERIAL_SAFE=m @@ -1498,7 +1511,9 @@ CONFIG_DETECT_SOFTLOCKUP=y CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_VM is not set CONFIG_FRAME_POINTER=y +# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y diff --git a/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch b/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch new file mode 100644 index 000000000..18bf4268f --- /dev/null +++ b/openembedded/packages/linux/linux-openzaurus-2.6.14-git3/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch @@ -0,0 +1,155 @@ + +From: Petr Vandrovec + +Patch below adds support for using different prescaler than 16 for 16c950 +chips. This is needed for using Fujitsu-Siemens Connect2Air compact-flash +card, which comes (apparently) with 806kHz clocks, and so you have to +program prescaler for division by 7, and DLAB to 1, to get 115200Bd. + +To get card properly running you also have to add lines below to +/etc/pcmcia/serial.opts so kernel knows that base speed is not 115200 but +50400 (50400 * 16 = 806400; 806400 / 7 = 115200). As I've found no code +specifying baud_rate in serial_cs, I assume that specifying it in +serial.opts is right way to do this type of things. + +Patch also fixes problem that for UPF_MAGIC_MULTIPLIER maximum possible +baud rate passed to uart code was uartclk / 16 while correct value for +these devices (and for 16c950) is uartclk / 4. + +Patch also fixes problem that for UPF_MAGIC_MULTIPLIER devices with +baud_rate 19200 or 9600 spd_cust did not work correctly. Not that such +devices exist, but we should not ignore spd_cust, user probably knows why +he asked for spd_cust. + +serial.opts: + +case "$MANFID-$FUNCID-$PRODID_1-$PRODID_2-$PRODID_3-$PRODID_4" in +'0279,950b-2-GPRS Modem---') + SERIAL_OPTS="baud_base 50400" + ;; +esac + +Cc: David Woodhouse +Signed-off-by: Andrew Morton +--- + + drivers/serial/8250.c | 82 +++++++++++++++++++++++++++++++++++++++----------- + 1 files changed, 64 insertions(+), 18 deletions(-) + +diff -puN drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver drivers/serial/8250.c +--- devel/drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver 2005-09-12 03:34:57.000000000 -0700 ++++ devel-akpm/drivers/serial/8250.c 2005-09-12 03:34:57.000000000 -0700 +@@ -1653,24 +1653,58 @@ static void serial8250_shutdown(struct u + serial_unlink_irq_chain(up); + } + +-static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud) ++static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud, ++ unsigned int *prescaler) + { +- unsigned int quot; +- +- /* +- * Handle magic divisors for baud rates above baud_base on +- * SMSC SuperIO chips. ++ /* ++ * Use special handling only if user did not supply its own divider. ++ * spd_cust is defined in terms of baud_base, so always use default ++ * prescaler when spd_cust is requested. + */ +- if ((port->flags & UPF_MAGIC_MULTIPLIER) && +- baud == (port->uartclk/4)) +- quot = 0x8001; +- else if ((port->flags & UPF_MAGIC_MULTIPLIER) && +- baud == (port->uartclk/8)) +- quot = 0x8002; +- else +- quot = uart_get_divisor(port, baud); + +- return quot; ++ *prescaler = 16; ++ if (baud != 38400 || (port->flags & UPF_SPD_MASK) != UPF_SPD_CUST) { ++ unsigned int quot = port->uartclk / baud; ++ ++ /* ++ * Handle magic divisors for baud rates above baud_base on ++ * SMSC SuperIO chips. ++ */ ++ if (port->flags & UPF_MAGIC_MULTIPLIER) { ++ if (quot == 4) { ++ return 0x8001; ++ } else if (quot == 8) { ++ return 0x8002; ++ } ++ } ++ if (port->type == PORT_16C950) { ++ /* ++ * This computes TCR value (4 to 16), not CPR value (which can ++ * be between 1.000 and 31.875) - chip I have uses XTAL of ++ * 806400Hz, and so a division by 7 is required to get 115200Bd. ++ * I'm leaving CPR disabled for now, until someone will ++ * hit even more exotic XTAL (it is needed to get 500kbps ++ * or 1000kbps from 18.432MHz XTAL, but I have no device ++ * which would benefit from doing that). ++ * ++ * If we can use divide by 16, use it. Otherwise look for ++ * better prescaler, from 15 to 4. If quotient cannot ++ * be divided by any integer value between 4 and 15, use 4. ++ */ ++ if (quot & 0x0F) { ++ unsigned int div; ++ ++ for (div = 15; div > 4; div--) { ++ if (quot % div == 0) { ++ break; ++ } ++ } ++ *prescaler = div; ++ return quot / div; ++ } ++ } ++ } ++ return uart_get_divisor(port, baud); + } + + static void +@@ -1680,7 +1714,7 @@ serial8250_set_termios(struct uart_port + struct uart_8250_port *up = (struct uart_8250_port *)port; + unsigned char cval, fcr = 0; + unsigned long flags; +- unsigned int baud, quot; ++ unsigned int baud, quot, prescaler; + + switch (termios->c_cflag & CSIZE) { + case CS5: +@@ -1712,8 +1746,13 @@ serial8250_set_termios(struct uart_port + /* + * Ask the core to calculate the divisor for us. + */ +- baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); +- quot = serial8250_get_divisor(port, baud); ++ ++ if (port->type == PORT_16C950 || (port->flags & UPF_MAGIC_MULTIPLIER)) { ++ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/4); ++ } else { ++ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); ++ } ++ quot = serial8250_get_divisor(port, baud, &prescaler); + + /* + * Oxford Semi 952 rev B workaround +@@ -1817,6 +1856,13 @@ serial8250_set_termios(struct uart_port + serial_outp(up, UART_DLM, quot >> 8); /* MS of divisor */ + + /* ++ * Program prescaler for 16C950 chips. ++ */ ++ if (up->port.type == PORT_16C950) { ++ serial_icr_write(up, UART_TCR, prescaler == 16 ? 0 : prescaler); ++ } ++ ++ /* + * LCR DLAB must be set to enable 64-byte FIFO mode. If the FCR + * is written without DLAB set, this mode will be disabled. + */ +_ -- cgit v1.2.3