]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge with /home/tmlind/src/kernel/linux-2.6
authorTony Lindgren <tony@atomide.com>
Tue, 7 Feb 2006 03:36:15 +0000 (19:36 -0800)
committerTony Lindgren <tony@atomide.com>
Tue, 7 Feb 2006 03:36:15 +0000 (19:36 -0800)
1  2 
Makefile
drivers/Makefile
drivers/char/Kconfig
drivers/mmc/mmc.c
drivers/serial/8250.c

diff --combined Makefile
index 9de1c2748411069cd98c9f2b02ecee33a326a211,cd5b619db9d8f479171a37ed64b004de7cc47310..0a88b3e9696bdc8583bb9aa33a432c538da14b79
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 16
- EXTRAVERSION =-rc1
+ EXTRAVERSION =-rc2
  NAME=Sliding Snow Leopard
  
  # *DOCUMENTATION*
@@@ -10,9 -10,6 +10,9 @@@
  # Comments in this file are targeted only to the developer, do not
  # expect to learn how to build the kernel reading this file.
  
 +# Add custom flags here to avoid conflict with updates
 +EXTRAVERSION := $(EXTRAVERSION)-omap1
 +
  # Do not print "Entering directory ..."
  MAKEFLAGS += --no-print-directory
  
@@@ -156,7 -153,6 +156,7 @@@ SUBARCH := $(shell uname -m | sed -e s/
                                  -e s/arm.*/arm/ -e s/sa110/arm/ \
                                  -e s/s390x/s390/ -e s/parisc64/parisc/ \
                                  -e s/ppc.*/powerpc/ )
 +SUBARCH := arm
  
  # Cross compiling and selecting different set of gcc/bin-utils
  # ---------------------------------------------------------------------------
  # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
  
  ARCH          ?= $(SUBARCH)
 -CROSS_COMPILE ?=
 +CROSS_COMPILE ?= arm-linux-
  
  # Architecture as present in compile.h
  UTS_MACHINE := $(ARCH)
diff --combined drivers/Makefile
index 767652e85c5fe607da91258dc10f611dba981286,5c69b86db6247a3f776ce8bde0ede999fdc274d6..4a13ac995caecef232cc0ff82f9e656f382a6f5f
@@@ -30,9 -30,7 +30,9 @@@ obj-$(CONFIG_FB_INTEL)          += vide
  obj-$(CONFIG_SERIO)           += input/serio/
  obj-y                         += serial/
  obj-$(CONFIG_PARPORT)         += parport/
 -obj-y                         += base/ block/ misc/ mfd/ net/ media/
 +obj-y                         += base/ block/ misc/ mfd/ net/
 +obj-$(CONFIG_I2C)             += i2c/
 +obj-y                         += media/ ssi/ cbus/
  obj-$(CONFIG_NUBUS)           += nubus/
  obj-$(CONFIG_ATM)             += atm/
  obj-$(CONFIG_PPC_PMAC)                += macintosh/
@@@ -58,6 -56,7 +58,6 @@@ obj-$(CONFIG_USB_GADGET)      += usb/gadget
  obj-$(CONFIG_GAMEPORT)                += input/gameport/
  obj-$(CONFIG_INPUT)           += input/
  obj-$(CONFIG_I2O)             += message/
 -obj-$(CONFIG_I2C)             += i2c/
  obj-$(CONFIG_W1)              += w1/
  obj-$(CONFIG_HWMON)           += hwmon/
  obj-$(CONFIG_PHONE)           += telephony/
@@@ -70,7 -69,7 +70,7 @@@ obj-$(CONFIG_EISA)            += eisa
  obj-$(CONFIG_CPU_FREQ)                += cpufreq/
  obj-$(CONFIG_MMC)             += mmc/
  obj-$(CONFIG_INFINIBAND)      += infiniband/
- obj-$(CONFIG_SGI_IOC4)                += sn/
+ obj-$(CONFIG_SGI_SN)          += sn/
  obj-y                         += firmware/
  obj-$(CONFIG_CRYPTO)          += crypto/
  obj-$(CONFIG_SUPERH)          += sh/
diff --combined drivers/char/Kconfig
index 91350a2bd4ea4103ac88ed9fe1dde0b536732f70,4c67727d75b146f50fb8e0b368334af711cca314..deefd889bfc4eef3949917031a44baac242c84f3
@@@ -667,16 -667,6 +667,16 @@@ config HW_RANDO
  
          If unsure, say N.
  
 +config OMAP_RNG
 +      tristate "OMAP Random Number Generator support"
 +      depends on ARCH_OMAP16XX || ARCH_OMAP24XX
 +      ---help---
 +        This driver provides kernel-side support for the Random Number
 +        Generator hardware found on OMAP16xx and OMAP24xx multimedia
 +        processors.
 +
 +        If unsure, say N.
 +
  config NVRAM
        tristate "/dev/nvram support"
        depends on ATARI || X86 || ARM || GENERIC_NVRAM
@@@ -779,11 -769,6 +779,11 @@@ config GEN_RTC_
  config EFI_RTC
        bool "EFI Real Time Clock Services"
        depends on IA64
 +config OMAP_RTC
 +      bool "TI OMAP Real Time Clock"
 +      depends on ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730
 +      help
 +        Support for TI OMAP RTC
  
  config DS1302
        tristate "DS1302 RTC support"
@@@ -1007,7 -992,7 +1007,7 @@@ config HPET_MMA
  
  config HANGCHECK_TIMER
        tristate "Hangcheck timer"
-       depends on X86 || IA64 || PPC64 || S390
+       depends on X86 || IA64 || PPC64
        help
          The hangcheck-timer module detects when the system has gone
          out to lunch past a certain margin.  It can reboot the system
diff --combined drivers/mmc/mmc.c
index 8179afcadf9af4593b5da7dd80fd9195c8431d6c,1888060c5e0c415cf5701250f845bf4d27a5e0a4..09aeeba61b75dd24758ffd17d8d062a8dfa19a12
@@@ -211,7 -211,7 +211,7 @@@ int mmc_wait_for_app_cmd(struct mmc_hos
  
                appcmd.opcode = MMC_APP_CMD;
                appcmd.arg = rca << 16;
-               appcmd.flags = MMC_RSP_R1;
+               appcmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
                appcmd.retries = 0;
                memset(appcmd.resp, 0, sizeof(appcmd.resp));
                appcmd.data = NULL;
@@@ -331,7 -331,7 +331,7 @@@ static int mmc_select_card(struct mmc_h
  
        cmd.opcode = MMC_SELECT_CARD;
        cmd.arg = card->rca << 16;
-       cmd.flags = MMC_RSP_R1;
+       cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
  
        err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
        if (err != MMC_ERR_NONE)
                        struct mmc_command cmd;
                        cmd.opcode = SD_APP_SET_BUS_WIDTH;
                        cmd.arg = SD_BUS_WIDTH_4;
-                       cmd.flags = MMC_RSP_R1;
+                       cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
  
                        err = mmc_wait_for_app_cmd(host, card->rca, &cmd,
                                CMD_RETRIES);
@@@ -386,7 -386,7 +386,7 @@@ static void mmc_deselect_cards(struct m
  
                cmd.opcode = MMC_SELECT_CARD;
                cmd.arg = 0;
-               cmd.flags = MMC_RSP_NONE;
+               cmd.flags = MMC_RSP_NONE | MMC_CMD_AC;
  
                mmc_wait_for_cmd(host, &cmd, 0);
        }
@@@ -677,7 -677,7 +677,7 @@@ static void mmc_idle_cards(struct mmc_h
  
        cmd.opcode = MMC_GO_IDLE_STATE;
        cmd.arg = 0;
-       cmd.flags = MMC_RSP_NONE;
+       cmd.flags = MMC_RSP_NONE | MMC_CMD_BC;
  
        mmc_wait_for_cmd(host, &cmd, 0);
  
@@@ -705,7 -705,6 +705,7 @@@ static void mmc_power_up(struct mmc_hos
        int bit = fls(host->ocr_avail) - 1;
  
        host->ios.vdd = bit;
 +      host->ios.clock = host->f_min;
        host->ios.bus_mode = MMC_BUSMODE_OPENDRAIN;
        host->ios.chip_select = MMC_CS_DONTCARE;
        host->ios.power_mode = MMC_POWER_UP;
  
        mmc_delay(1);
  
 -      host->ios.clock = host->f_min;
        host->ios.power_mode = MMC_POWER_ON;
        host->ops->set_ios(host, &host->ios);
  
@@@ -738,7 -738,7 +738,7 @@@ static int mmc_send_op_cond(struct mmc_
  
        cmd.opcode = MMC_SEND_OP_COND;
        cmd.arg = ocr;
-       cmd.flags = MMC_RSP_R3;
+       cmd.flags = MMC_RSP_R3 | MMC_CMD_BCR;
  
        for (i = 100; i; i--) {
                err = mmc_wait_for_cmd(host, &cmd, 0);
  
                if (cmd.resp[0] & MMC_CARD_BUSY || ocr == 0)
                        break;
 -
 +              mmc_delay(1);
                err = MMC_ERR_TIMEOUT;
  
                mmc_delay(10);
@@@ -766,7 -766,7 +766,7 @@@ static int mmc_send_app_op_cond(struct 
  
        cmd.opcode = SD_APP_OP_COND;
        cmd.arg = ocr;
-       cmd.flags = MMC_RSP_R3;
+       cmd.flags = MMC_RSP_R3 | MMC_CMD_BCR;
  
        for (i = 100; i; i--) {
                err = mmc_wait_for_app_cmd(host, 0, &cmd, CMD_RETRIES);
@@@ -805,7 -805,7 +805,7 @@@ static void mmc_discover_cards(struct m
  
                cmd.opcode = MMC_ALL_SEND_CID;
                cmd.arg = 0;
-               cmd.flags = MMC_RSP_R2;
+               cmd.flags = MMC_RSP_R2 | MMC_CMD_BCR;
  
                err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
                if (err == MMC_ERR_TIMEOUT) {
  
                        cmd.opcode = SD_SEND_RELATIVE_ADDR;
                        cmd.arg = 0;
-                       cmd.flags = MMC_RSP_R6;
+                       cmd.flags = MMC_RSP_R6 | MMC_CMD_BCR;
  
                        err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
                        if (err != MMC_ERR_NONE)
                } else {
                        cmd.opcode = MMC_SET_RELATIVE_ADDR;
                        cmd.arg = card->rca << 16;
-                       cmd.flags = MMC_RSP_R1;
+                       cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
  
                        err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
                        if (err != MMC_ERR_NONE)
@@@ -878,7 -878,7 +878,7 @@@ static void mmc_read_csds(struct mmc_ho
  
                cmd.opcode = MMC_SEND_CSD;
                cmd.arg = card->rca << 16;
-               cmd.flags = MMC_RSP_R2;
+               cmd.flags = MMC_RSP_R2 | MMC_CMD_AC;
  
                err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
                if (err != MMC_ERR_NONE) {
@@@ -920,7 -920,7 +920,7 @@@ static void mmc_read_scrs(struct mmc_ho
  
                cmd.opcode = MMC_APP_CMD;
                cmd.arg = card->rca << 16;
-               cmd.flags = MMC_RSP_R1;
+               cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
  
                err = mmc_wait_for_cmd(host, &cmd, 0);
                if ((err != MMC_ERR_NONE) || !(cmd.resp[0] & R1_APP_CMD)) {
  
                cmd.opcode = SD_APP_SEND_SCR;
                cmd.arg = 0;
-               cmd.flags = MMC_RSP_R1;
+               cmd.flags = MMC_RSP_R1 | MMC_CMD_ADTC;
  
                memset(&data, 0, sizeof(struct mmc_data));
  
@@@ -1003,7 -1003,7 +1003,7 @@@ static void mmc_check_cards(struct mmc_
  
                cmd.opcode = MMC_SEND_STATUS;
                cmd.arg = card->rca << 16;
-               cmd.flags = MMC_RSP_R1;
+               cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
  
                err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
                if (err == MMC_ERR_NONE)
@@@ -1089,14 -1089,6 +1089,14 @@@ static void mmc_setup(struct mmc_host *
        host->ios.bus_mode = MMC_BUSMODE_PUSHPULL;
        host->ops->set_ios(host, &host->ios);
  
 +      /*
 +       * Some already detectd cards get confused in the card identification
 +       * mode and futher commands can fail.  Doing an extra status inquiry
 +       * after the identification mode seems to get cards back to their
 +       * senses.
 +       */
 +      mmc_check_cards(host);
 +
        mmc_read_csds(host);
  
        if (host->mode == MMC_MODE_SD)
diff --combined drivers/serial/8250.c
index d587f4355e355f2babe922f0e1320856579d1cc0,179c1f065e60a5662498c006f28c48b83828baa1..59ba4b1071c01bd000a470fce06cd75be7f1e524
@@@ -31,7 -31,6 +31,6 @@@
  #include <linux/init.h>
  #include <linux/console.h>
  #include <linux/sysrq.h>
- #include <linux/mca.h>
  #include <linux/delay.h>
  #include <linux/platform_device.h>
  #include <linux/tty.h>
@@@ -1343,8 -1342,7 +1342,8 @@@ static irqreturn_t serial8250_interrupt
  
        DEBUG_INTR("end.\n");
  
 -      return IRQ_RETVAL(handled);
 +      //return IRQ_RETVAL(handled);
 +      return IRQ_HANDLED;     /* FIXME: iir status not ready on 1510 */
  }
  
  /*
@@@ -1857,17 -1855,6 +1856,17 @@@ serial8250_set_termios(struct uart_por
                serial_outp(up, UART_EFR, efr);
        }
  
 +#ifdef CONFIG_ARCH_OMAP15XX
 +      /* Workaround to enable 115200 baud on OMAP1510 internal ports */
 +      if (cpu_is_omap1510() && is_omap_port((unsigned int)up->port.membase)) {
 +              if (baud == 115200) {
 +                      quot = 1;
 +                      serial_out(up, UART_OMAP_OSC_12M_SEL, 1);
 +              } else
 +                      serial_out(up, UART_OMAP_OSC_12M_SEL, 0);
 +        }
 +#endif
 +
        if (up->capabilities & UART_NATSEMI) {
                /* Switch to bank 2 not bank 1, to avoid resetting EXCR2 */
                serial_outp(up, UART_LCR, 0xe0);
@@@ -1918,11 -1905,6 +1917,11 @@@ static int serial8250_request_std_resou
        unsigned int size = 8 << up->port.regshift;
        int ret = 0;
  
 +#ifdef CONFIG_ARCH_OMAP
 +      if (is_omap_port((unsigned int)up->port.membase))
 +              size = 0x16 << up->port.regshift;
 +#endif
 +
        switch (up->port.iotype) {
        case UPIO_MEM:
                if (!up->port.mapbase)
@@@ -2043,12 -2025,6 +2042,6 @@@ static void serial8250_config_port(stru
        int probeflags = PROBE_ANY;
        int ret;
  
-       /*
-        * Don't probe for MCA ports on non-MCA machines.
-        */
-       if (up->port.flags & UPF_BOOT_ONLYMCA && !MCA_bus)
-               return;
        /*
         * Find the region that we can probe for.  This in turn
         * tells us whether we can probe for the type of port.
@@@ -2181,7 -2157,7 +2174,7 @@@ serial8250_register_ports(struct uart_d
  /*
   *    Wait for transmitter & holding register to empty
   */
- static inline void wait_for_xmitr(struct uart_8250_port *up)
+ static inline void wait_for_xmitr(struct uart_8250_port *up, int bits)
  {
        unsigned int status, tmout = 10000;
  
                if (--tmout == 0)
                        break;
                udelay(1);
-       } while ((status & BOTH_EMPTY) != BOTH_EMPTY);
+       } while ((status & bits) != bits);
  
        /* Wait up to 1s for flow control if necessary */
        if (up->port.flags & UPF_CONS_FLOW) {
@@@ -2235,7 -2211,7 +2228,7 @@@ serial8250_console_write(struct consol
         *      Now, do each character
         */
        for (i = 0; i < count; i++, s++) {
-               wait_for_xmitr(up);
+               wait_for_xmitr(up, UART_LSR_THRE);
  
                /*
                 *      Send the character out.
                 */
                serial_out(up, UART_TX, *s);
                if (*s == 10) {
-                       wait_for_xmitr(up);
+                       wait_for_xmitr(up, UART_LSR_THRE);
                        serial_out(up, UART_TX, 13);
                }
        }
         *      Finally, wait for transmitter to become empty
         *      and restore the IER
         */
-       wait_for_xmitr(up);
-       serial_out(up, UART_IER, ier);
+       wait_for_xmitr(up, BOTH_EMPTY);
+       serial_out(up, UART_IER, ier | UART_IER_THRI);
  }
  
  static int serial8250_console_setup(struct console *co, char *options)