Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh
Linus Torvalds [Sat, 7 Apr 2012 16:52:46 +0000 (09:52 -0700)]
Pull SuperH fixes from Paul Mundt.

* tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
  sh: fix clock-sh7757 for the latest sh_mobile_sdhi driver
  serial: sh-sci: use serial_port_in/out vs sci_in/out.
  sh: vsyscall: Fix up .eh_frame generation.
  sh: dma: Fix up device attribute mismatch from sysdev fallout.
  sh: dwarf unwinder depends on SHcompact.
  sh: fix up fallout from system.h disintegration.

20 files changed:
arch/sh/Kconfig.debug
arch/sh/boards/board-sh7785lcr.c
arch/sh/boards/mach-hp6xx/pm.c
arch/sh/drivers/dma/dma-sysfs.c
arch/sh/kernel/cpu/fpu.c
arch/sh/kernel/cpu/sh2a/fpu.c
arch/sh/kernel/cpu/sh4/fpu.c
arch/sh/kernel/cpu/sh4a/clock-sh7757.c
arch/sh/kernel/cpu/shmobile/pm.c
arch/sh/kernel/idle.c
arch/sh/kernel/kgdb.c
arch/sh/kernel/process_32.c
arch/sh/kernel/smp.c
arch/sh/kernel/vsyscall/vsyscall-sigreturn.S
arch/sh/kernel/vsyscall/vsyscall-trapa.S
arch/sh/mm/cache-sh4.c
arch/sh/mm/flush-sh4.c
arch/sh/mm/sram.c
drivers/tty/serial/sh-sci.c
drivers/tty/serial/sh-sci.h

index c1d5a82..5f2bb42 100644 (file)
@@ -61,6 +61,7 @@ config DUMP_CODE
 config DWARF_UNWINDER
        bool "Enable the DWARF unwinder for stacktraces"
        select FRAME_POINTER
+       depends on SUPERH32
        default n
        help
          Enabling this option will make stacktraces more accurate, at
index d879848..d0d6221 100644 (file)
@@ -28,6 +28,7 @@
 #include <cpu/sh7785.h>
 #include <asm/heartbeat.h>
 #include <asm/clock.h>
+#include <asm/bl_bit.h>
 
 /*
  * NOTE: This board has 2 physical memory maps.
index adc9b4b..8b50cf7 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/gfp.h>
 #include <asm/io.h>
 #include <asm/hd64461.h>
+#include <asm/bl_bit.h>
 #include <mach/hp6xx.h>
 #include <cpu/dac.h>
 #include <asm/freq.h>
index b1cb271..67ee956 100644 (file)
@@ -54,7 +54,7 @@ static int __init dma_subsys_init(void)
        if (unlikely(ret))
                return ret;
 
-       return device_create_file(dma_subsys.dev_root, &dev_attr_devices.attr);
+       return device_create_file(dma_subsys.dev_root, &dev_attr_devices);
 }
 postcore_initcall(dma_subsys_init);
 
index 7f1b70c..f8f7af5 100644 (file)
@@ -2,6 +2,7 @@
 #include <linux/slab.h>
 #include <asm/processor.h>
 #include <asm/fpu.h>
+#include <asm/traps.h>
 
 int init_fpu(struct task_struct *tsk)
 {
index 488d24e..98bbaa4 100644 (file)
@@ -14,6 +14,7 @@
 #include <asm/processor.h>
 #include <asm/io.h>
 #include <asm/fpu.h>
+#include <asm/traps.h>
 
 /* The PR (precision) bit in the FP Status Register must be clear when
  * an frchg instruction is executed, otherwise the instruction is undefined.
index e74cd6c..69ab4d3 100644 (file)
@@ -16,6 +16,7 @@
 #include <cpu/fpu.h>
 #include <asm/processor.h>
 #include <asm/fpu.h>
+#include <asm/traps.h>
 
 /* The PR (precision) bit in the FP Status Register must be clear when
  * an frchg instruction is executed, otherwise the instruction is undefined.
index 5853989..04ab5ae 100644 (file)
@@ -113,7 +113,7 @@ static struct clk_lookup lookups[] = {
        CLKDEV_CON_ID("cpu_clk", &div4_clks[DIV4_I]),
 
        /* MSTP32 clocks */
-       CLKDEV_CON_ID("sdhi0", &mstp_clks[MSTP004]),
+       CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP004]),
        CLKDEV_CON_ID("riic0", &mstp_clks[MSTP000]),
        CLKDEV_CON_ID("riic1", &mstp_clks[MSTP000]),
        CLKDEV_CON_ID("riic2", &mstp_clks[MSTP000]),
index a6f95ae..08d27fa 100644 (file)
@@ -16,6 +16,7 @@
 #include <asm/suspend.h>
 #include <asm/uaccess.h>
 #include <asm/cacheflush.h>
+#include <asm/bl_bit.h>
 
 /*
  * Notifier lists for pre/post sleep notification
index 64852ec..ee226e2 100644 (file)
@@ -17,8 +17,8 @@
 #include <linux/irqflags.h>
 #include <linux/smp.h>
 #include <linux/cpuidle.h>
-#include <asm/pgalloc.h>
 #include <linux/atomic.h>
+#include <asm/pgalloc.h>
 #include <asm/smp.h>
 #include <asm/bl_bit.h>
 
index efb6d39..b117781 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/irq.h>
 #include <linux/io.h>
 #include <asm/cacheflush.h>
+#include <asm/traps.h>
 
 /* Macros for single step instruction identification */
 #define OPCODE_BT(op)          (((op) & 0xff00) == 0x8900)
index f72e3a9..94273aa 100644 (file)
@@ -26,6 +26,7 @@
 #include <asm/mmu_context.h>
 #include <asm/fpu.h>
 #include <asm/syscalls.h>
+#include <asm/switch_to.h>
 
 void show_regs(struct pt_regs * regs)
 {
index a17a14d..eaebdf6 100644 (file)
@@ -27,6 +27,7 @@
 #include <asm/smp.h>
 #include <asm/cacheflush.h>
 #include <asm/sections.h>
+#include <asm/setup.h>
 
 int __cpu_number_map[NR_CPUS];         /* Map physical to logical */
 int __cpu_logical_map[NR_CPUS];                /* Map logical to physical */
index 555a64f..23af175 100644 (file)
@@ -34,6 +34,41 @@ __kernel_rt_sigreturn:
 1:     .short  __NR_rt_sigreturn
 .LEND_rt_sigreturn:
        .size __kernel_rt_sigreturn,.-.LSTART_rt_sigreturn
+       .previous
 
        .section .eh_frame,"a",@progbits
+.LCIE1:
+       .ualong .LCIE1_end - .LCIE1_start
+.LCIE1_start:
+       .ualong 0               /* CIE ID */
+       .byte   0x1             /* Version number */
+       .string "zRS"           /* NUL-terminated augmentation string */
+       .uleb128 0x1            /* Code alignment factor */
+       .sleb128 -4             /* Data alignment factor */
+       .byte   0x11            /* Return address register column */
+       .uleb128 0x1            /* Augmentation length and data */
+       .byte 0x1b              /* DW_EH_PE_pcrel | DW_EH_PE_sdata4. */
+       .byte   0xc, 0xf, 0x0   /* DW_CFA_def_cfa: r15 ofs 0 */
+
+       .align 2
+.LCIE1_end:
+
+       .ualong .LFDE0_end-.LFDE0_start /* Length FDE0 */
+.LFDE0_start:
+       .ualong .LFDE0_start-.LCIE1     /* CIE pointer */
+       .ualong .LSTART_sigreturn-.     /* PC-relative start address */
+       .ualong .LEND_sigreturn-.LSTART_sigreturn
+       .uleb128 0                      /* Augmentation */
+       .align 2
+.LFDE0_end:
+
+       .ualong .LFDE1_end-.LFDE1_start /* Length FDE1 */
+.LFDE1_start:
+       .ualong .LFDE1_start-.LCIE1     /* CIE pointer */
+       .ualong .LSTART_rt_sigreturn-.  /* PC-relative start address */
+       .ualong .LEND_rt_sigreturn-.LSTART_rt_sigreturn
+       .uleb128 0                      /* Augmentation */
+       .align 2
+.LFDE1_end:
+
        .previous
index 3e70f85..0eb74d0 100644 (file)
@@ -3,37 +3,34 @@
        .type __kernel_vsyscall,@function
 __kernel_vsyscall:
 .LSTART_vsyscall:
-       /* XXX: We'll have to do something here once we opt to use the vDSO
-        * page for something other than the signal trampoline.. as well as
-        * fill out .eh_frame -- PFM. */
+       trapa   #0x10
+        nop
 .LEND_vsyscall:
        .size __kernel_vsyscall,.-.LSTART_vsyscall
+       .previous
 
        .section .eh_frame,"a",@progbits
-       .previous
 .LCIE:
        .ualong .LCIE_end - .LCIE_start
 .LCIE_start:
        .ualong 0               /* CIE ID */
        .byte   0x1             /* Version number */
-       .string "zRS"           /* NUL-terminated augmentation string */
+       .string "zR"            /* NUL-terminated augmentation string */
        .uleb128 0x1            /* Code alignment factor */
        .sleb128 -4             /* Data alignment factor */
        .byte   0x11            /* Return address register column */
-                               /* Augmentation length and data (none) */
-       .byte   0xc             /* DW_CFA_def_cfa */
-       .uleb128 0xf            /* r15 */
-       .uleb128 0x0            /* offset 0 */
-
+       .uleb128 0x1            /* Augmentation length and data */
+       .byte 0x1b              /* DW_EH_PE_pcrel | DW_EH_PE_sdata4. */
+       .byte   0xc,0xf,0x0     /* DW_CFA_def_cfa: r15 ofs 0 */
        .align 2
 .LCIE_end:
 
        .ualong .LFDE_end-.LFDE_start   /* Length FDE */
 .LFDE_start:
-       .ualong .LCIE                   /* CIE pointer */
-       .ualong .LSTART_vsyscall-.      /* start address */
+       .ualong .LFDE_start-.LCIE       /* CIE pointer */
+       .ualong .LSTART_vsyscall-.      /* PC-relative start address */
        .ualong .LEND_vsyscall-.LSTART_vsyscall
-       .uleb128 0
+       .uleb128 0                      /* Augmentation */
        .align 2
 .LFDE_end:
        .previous
index 112fea1..0e52928 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/highmem.h>
 #include <asm/pgtable.h>
 #include <asm/mmu_context.h>
+#include <asm/cache_insns.h>
 #include <asm/cacheflush.h>
 
 /*
index 75a17f5..0b85dd9 100644 (file)
@@ -1,5 +1,6 @@
 #include <linux/mm.h>
 #include <asm/mmu_context.h>
+#include <asm/cache_insns.h>
 #include <asm/cacheflush.h>
 #include <asm/traps.h>
 
index bc156ec..2d8fa71 100644 (file)
@@ -9,6 +9,7 @@
  */
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/errno.h>
 #include <asm/sram.h>
 
 /*
index bf461cf..3158e17 100644 (file)
@@ -355,9 +355,6 @@ static void sci_serial_out(struct uart_port *p, int offset, int value)
                WARN(1, "Invalid register access\n");
 }
 
-#define sci_in(up, offset)             (up->serial_in(up, offset))
-#define sci_out(up, offset, value)     (up->serial_out(up, offset, value))
-
 static int sci_probe_regmap(struct plat_sci_port *cfg)
 {
        switch (cfg->type) {
@@ -422,9 +419,9 @@ static int sci_poll_get_char(struct uart_port *port)
        int c;
 
        do {
-               status = sci_in(port, SCxSR);
+               status = serial_port_in(port, SCxSR);
                if (status & SCxSR_ERRORS(port)) {
-                       sci_out(port, SCxSR, SCxSR_ERROR_CLEAR(port));
+                       serial_port_out(port, SCxSR, SCxSR_ERROR_CLEAR(port));
                        continue;
                }
                break;
@@ -433,11 +430,11 @@ static int sci_poll_get_char(struct uart_port *port)
        if (!(status & SCxSR_RDxF(port)))
                return NO_POLL_CHAR;
 
-       c = sci_in(port, SCxRDR);
+       c = serial_port_in(port, SCxRDR);
 
        /* Dummy read */
-       sci_in(port, SCxSR);
-       sci_out(port, SCxSR, SCxSR_RDxF_CLEAR(port));
+       serial_port_in(port, SCxSR);
+       serial_port_out(port, SCxSR, SCxSR_RDxF_CLEAR(port));
 
        return c;
 }
@@ -448,11 +445,11 @@ static void sci_poll_put_char(struct uart_port *port, unsigned char c)
        unsigned short status;
 
        do {
-               status = sci_in(port, SCxSR);
+               status = serial_port_in(port, SCxSR);
        } while (!(status & SCxSR_TDxE(port)));
 
-       sci_out(port, SCxTDR, c);
-       sci_out(port, SCxSR, SCxSR_TDxE_CLEAR(port) & ~SCxSR_TEND(port));
+       serial_port_out(port, SCxTDR, c);
+       serial_port_out(port, SCxSR, SCxSR_TDxE_CLEAR(port) & ~SCxSR_TEND(port));
 }
 #endif /* CONFIG_CONSOLE_POLL || CONFIG_SERIAL_SH_SCI_CONSOLE */
 
@@ -480,10 +477,10 @@ static void sci_init_pins(struct uart_port *port, unsigned int cflag)
            ((!(cflag & CRTSCTS)))) {
                unsigned short status;
 
-               status = sci_in(port, SCSPTR);
+               status = serial_port_in(port, SCSPTR);
                status &= ~SCSPTR_CTSIO;
                status |= SCSPTR_RTSIO;
-               sci_out(port, SCSPTR, status); /* Set RTS = 1 */
+               serial_port_out(port, SCSPTR, status); /* Set RTS = 1 */
        }
 }
 
@@ -493,13 +490,13 @@ static int sci_txfill(struct uart_port *port)
 
        reg = sci_getreg(port, SCTFDR);
        if (reg->size)
-               return sci_in(port, SCTFDR) & 0xff;
+               return serial_port_in(port, SCTFDR) & 0xff;
 
        reg = sci_getreg(port, SCFDR);
        if (reg->size)
-               return sci_in(port, SCFDR) >> 8;
+               return serial_port_in(port, SCFDR) >> 8;
 
-       return !(sci_in(port, SCxSR) & SCI_TDRE);
+       return !(serial_port_in(port, SCxSR) & SCI_TDRE);
 }
 
 static int sci_txroom(struct uart_port *port)
@@ -513,13 +510,13 @@ static int sci_rxfill(struct uart_port *port)
 
        reg = sci_getreg(port, SCRFDR);
        if (reg->size)
-               return sci_in(port, SCRFDR) & 0xff;
+               return serial_port_in(port, SCRFDR) & 0xff;
 
        reg = sci_getreg(port, SCFDR);
        if (reg->size)
-               return sci_in(port, SCFDR) & ((port->fifosize << 1) - 1);
+               return serial_port_in(port, SCFDR) & ((port->fifosize << 1) - 1);
 
-       return (sci_in(port, SCxSR) & SCxSR_RDxF(port)) != 0;
+       return (serial_port_in(port, SCxSR) & SCxSR_RDxF(port)) != 0;
 }
 
 /*
@@ -547,14 +544,14 @@ static void sci_transmit_chars(struct uart_port *port)
        unsigned short ctrl;
        int count;
 
-       status = sci_in(port, SCxSR);
+       status = serial_port_in(port, SCxSR);
        if (!(status & SCxSR_TDxE(port))) {
-               ctrl = sci_in(port, SCSCR);
+               ctrl = serial_port_in(port, SCSCR);
                if (uart_circ_empty(xmit))
                        ctrl &= ~SCSCR_TIE;
                else
                        ctrl |= SCSCR_TIE;
-               sci_out(port, SCSCR, ctrl);
+               serial_port_out(port, SCSCR, ctrl);
                return;
        }
 
@@ -573,27 +570,27 @@ static void sci_transmit_chars(struct uart_port *port)
                        break;
                }
 
-               sci_out(port, SCxTDR, c);
+               serial_port_out(port, SCxTDR, c);
 
                port->icount.tx++;
        } while (--count > 0);
 
-       sci_out(port, SCxSR, SCxSR_TDxE_CLEAR(port));
+       serial_port_out(port, SCxSR, SCxSR_TDxE_CLEAR(port));
 
        if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
                uart_write_wakeup(port);
        if (uart_circ_empty(xmit)) {
                sci_stop_tx(port);
        } else {
-               ctrl = sci_in(port, SCSCR);
+               ctrl = serial_port_in(port, SCSCR);
 
                if (port->type != PORT_SCI) {
-                       sci_in(port, SCxSR); /* Dummy read */
-                       sci_out(port, SCxSR, SCxSR_TDxE_CLEAR(port));
+                       serial_port_in(port, SCxSR); /* Dummy read */
+                       serial_port_out(port, SCxSR, SCxSR_TDxE_CLEAR(port));
                }
 
                ctrl |= SCSCR_TIE;
-               sci_out(port, SCSCR, ctrl);
+               serial_port_out(port, SCSCR, ctrl);
        }
 }
 
@@ -608,7 +605,7 @@ static void sci_receive_chars(struct uart_port *port)
        unsigned short status;
        unsigned char flag;
 
-       status = sci_in(port, SCxSR);
+       status = serial_port_in(port, SCxSR);
        if (!(status & SCxSR_RDxF(port)))
                return;
 
@@ -621,7 +618,7 @@ static void sci_receive_chars(struct uart_port *port)
                        break;
 
                if (port->type == PORT_SCI) {
-                       char c = sci_in(port, SCxRDR);
+                       char c = serial_port_in(port, SCxRDR);
                        if (uart_handle_sysrq_char(port, c) ||
                            sci_port->break_flag)
                                count = 0;
@@ -629,9 +626,9 @@ static void sci_receive_chars(struct uart_port *port)
                                tty_insert_flip_char(tty, c, TTY_NORMAL);
                } else {
                        for (i = 0; i < count; i++) {
-                               char c = sci_in(port, SCxRDR);
+                               char c = serial_port_in(port, SCxRDR);
 
-                               status = sci_in(port, SCxSR);
+                               status = serial_port_in(port, SCxSR);
 #if defined(CONFIG_CPU_SH3)
                                /* Skip "chars" during break */
                                if (sci_port->break_flag) {
@@ -672,8 +669,8 @@ static void sci_receive_chars(struct uart_port *port)
                        }
                }
 
-               sci_in(port, SCxSR); /* dummy read */
-               sci_out(port, SCxSR, SCxSR_RDxF_CLEAR(port));
+               serial_port_in(port, SCxSR); /* dummy read */
+               serial_port_out(port, SCxSR, SCxSR_RDxF_CLEAR(port));
 
                copied += count;
                port->icount.rx += count;
@@ -683,8 +680,8 @@ static void sci_receive_chars(struct uart_port *port)
                /* Tell the rest of the system the news. New characters! */
                tty_flip_buffer_push(tty);
        } else {
-               sci_in(port, SCxSR); /* dummy read */
-               sci_out(port, SCxSR, SCxSR_RDxF_CLEAR(port));
+               serial_port_in(port, SCxSR); /* dummy read */
+               serial_port_out(port, SCxSR, SCxSR_RDxF_CLEAR(port));
        }
 }
 
@@ -726,7 +723,7 @@ static void sci_break_timer(unsigned long data)
 static int sci_handle_errors(struct uart_port *port)
 {
        int copied = 0;
-       unsigned short status = sci_in(port, SCxSR);
+       unsigned short status = serial_port_in(port, SCxSR);
        struct tty_struct *tty = port->state->port.tty;
        struct sci_port *s = to_sci_port(port);
 
@@ -804,8 +801,8 @@ static int sci_handle_fifo_overrun(struct uart_port *port)
        if (!reg->size)
                return 0;
 
-       if ((sci_in(port, SCLSR) & (1 << s->cfg->overrun_bit))) {
-               sci_out(port, SCLSR, 0);
+       if ((serial_port_in(port, SCLSR) & (1 << s->cfg->overrun_bit))) {
+               serial_port_out(port, SCLSR, 0);
 
                port->icount.overrun++;
 
@@ -822,7 +819,7 @@ static int sci_handle_fifo_overrun(struct uart_port *port)
 static int sci_handle_breaks(struct uart_port *port)
 {
        int copied = 0;
-       unsigned short status = sci_in(port, SCxSR);
+       unsigned short status = serial_port_in(port, SCxSR);
        struct tty_struct *tty = port->state->port.tty;
        struct sci_port *s = to_sci_port(port);
 
@@ -859,8 +856,8 @@ static irqreturn_t sci_rx_interrupt(int irq, void *ptr)
        struct sci_port *s = to_sci_port(port);
 
        if (s->chan_rx) {
-               u16 scr = sci_in(port, SCSCR);
-               u16 ssr = sci_in(port, SCxSR);
+               u16 scr = serial_port_in(port, SCSCR);
+               u16 ssr = serial_port_in(port, SCxSR);
 
                /* Disable future Rx interrupts */
                if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
@@ -869,9 +866,9 @@ static irqreturn_t sci_rx_interrupt(int irq, void *ptr)
                } else {
                        scr &= ~SCSCR_RIE;
                }
-               sci_out(port, SCSCR, scr);
+               serial_port_out(port, SCSCR, scr);
                /* Clear current interrupt */
-               sci_out(port, SCxSR, ssr & ~(1 | SCxSR_RDxF(port)));
+               serial_port_out(port, SCxSR, ssr & ~(1 | SCxSR_RDxF(port)));
                dev_dbg(port->dev, "Rx IRQ %lu: setup t-out in %u jiffies\n",
                        jiffies, s->rx_timeout);
                mod_timer(&s->rx_timer, jiffies + s->rx_timeout);
@@ -909,15 +906,15 @@ static irqreturn_t sci_er_interrupt(int irq, void *ptr)
        if (port->type == PORT_SCI) {
                if (sci_handle_errors(port)) {
                        /* discard character in rx buffer */
-                       sci_in(port, SCxSR);
-                       sci_out(port, SCxSR, SCxSR_RDxF_CLEAR(port));
+                       serial_port_in(port, SCxSR);
+                       serial_port_out(port, SCxSR, SCxSR_RDxF_CLEAR(port));
                }
        } else {
                sci_handle_fifo_overrun(port);
                sci_rx_interrupt(irq, ptr);
        }
 
-       sci_out(port, SCxSR, SCxSR_ERROR_CLEAR(port));
+       serial_port_out(port, SCxSR, SCxSR_ERROR_CLEAR(port));
 
        /* Kick the transmission */
        sci_tx_interrupt(irq, ptr);
@@ -931,7 +928,7 @@ static irqreturn_t sci_br_interrupt(int irq, void *ptr)
 
        /* Handle BREAKs */
        sci_handle_breaks(port);
-       sci_out(port, SCxSR, SCxSR_BREAK_CLEAR(port));
+       serial_port_out(port, SCxSR, SCxSR_BREAK_CLEAR(port));
 
        return IRQ_HANDLED;
 }
@@ -955,8 +952,8 @@ static irqreturn_t sci_mpxed_interrupt(int irq, void *ptr)
        struct sci_port *s = to_sci_port(port);
        irqreturn_t ret = IRQ_NONE;
 
-       ssr_status = sci_in(port, SCxSR);
-       scr_status = sci_in(port, SCSCR);
+       ssr_status = serial_port_in(port, SCxSR);
+       scr_status = serial_port_in(port, SCSCR);
        err_enabled = scr_status & port_rx_irq_mask(port);
 
        /* Tx Interrupt */
@@ -1170,7 +1167,7 @@ static void sci_free_gpios(struct sci_port *port)
 
 static unsigned int sci_tx_empty(struct uart_port *port)
 {
-       unsigned short status = sci_in(port, SCxSR);
+       unsigned short status = serial_port_in(port, SCxSR);
        unsigned short in_tx_fifo = sci_txfill(port);
 
        return (status & SCxSR_TEND(port)) && !in_tx_fifo ? TIOCSER_TEMT : 0;
@@ -1198,7 +1195,7 @@ static void sci_set_mctrl(struct uart_port *port, unsigned int mctrl)
                 */
                reg = sci_getreg(port, SCFCR);
                if (reg->size)
-                       sci_out(port, SCFCR, sci_in(port, SCFCR) | 1);
+                       serial_port_out(port, SCFCR, serial_port_in(port, SCFCR) | 1);
        }
 }
 
@@ -1240,8 +1237,8 @@ static void sci_dma_tx_complete(void *arg)
        } else {
                s->cookie_tx = -EINVAL;
                if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
-                       u16 ctrl = sci_in(port, SCSCR);
-                       sci_out(port, SCSCR, ctrl & ~SCSCR_TIE);
+                       u16 ctrl = serial_port_in(port, SCSCR);
+                       serial_port_out(port, SCSCR, ctrl & ~SCSCR_TIE);
                }
        }
 
@@ -1494,13 +1491,13 @@ static void sci_start_tx(struct uart_port *port)
 
 #ifdef CONFIG_SERIAL_SH_SCI_DMA
        if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
-               u16 new, scr = sci_in(port, SCSCR);
+               u16 new, scr = serial_port_in(port, SCSCR);
                if (s->chan_tx)
                        new = scr | 0x8000;
                else
                        new = scr & ~0x8000;
                if (new != scr)
-                       sci_out(port, SCSCR, new);
+                       serial_port_out(port, SCSCR, new);
        }
 
        if (s->chan_tx && !uart_circ_empty(&s->port.state->xmit) &&
@@ -1512,8 +1509,8 @@ static void sci_start_tx(struct uart_port *port)
 
        if (!s->chan_tx || port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
                /* Set TIE (Transmit Interrupt Enable) bit in SCSCR */
-               ctrl = sci_in(port, SCSCR);
-               sci_out(port, SCSCR, ctrl | SCSCR_TIE);
+               ctrl = serial_port_in(port, SCSCR);
+               serial_port_out(port, SCSCR, ctrl | SCSCR_TIE);
        }
 }
 
@@ -1522,40 +1519,40 @@ static void sci_stop_tx(struct uart_port *port)
        unsigned short ctrl;
 
        /* Clear TIE (Transmit Interrupt Enable) bit in SCSCR */
-       ctrl = sci_in(port, SCSCR);
+       ctrl = serial_port_in(port, SCSCR);
 
        if (port->type == PORT_SCIFA || port->type == PORT_SCIFB)
                ctrl &= ~0x8000;
 
        ctrl &= ~SCSCR_TIE;
 
-       sci_out(port, SCSCR, ctrl);
+       serial_port_out(port, SCSCR, ctrl);
 }
 
 static void sci_start_rx(struct uart_port *port)
 {
        unsigned short ctrl;
 
-       ctrl = sci_in(port, SCSCR) | port_rx_irq_mask(port);
+       ctrl = serial_port_in(port, SCSCR) | port_rx_irq_mask(port);
 
        if (port->type == PORT_SCIFA || port->type == PORT_SCIFB)
                ctrl &= ~0x4000;
 
-       sci_out(port, SCSCR, ctrl);
+       serial_port_out(port, SCSCR, ctrl);
 }
 
 static void sci_stop_rx(struct uart_port *port)
 {
        unsigned short ctrl;
 
-       ctrl = sci_in(port, SCSCR);
+       ctrl = serial_port_in(port, SCSCR);
 
        if (port->type == PORT_SCIFA || port->type == PORT_SCIFB)
                ctrl &= ~0x4000;
 
        ctrl &= ~port_rx_irq_mask(port);
 
-       sci_out(port, SCSCR, ctrl);
+       serial_port_out(port, SCSCR, ctrl);
 }
 
 static void sci_enable_ms(struct uart_port *port)
@@ -1589,13 +1586,13 @@ static void rx_timer_fn(unsigned long arg)
 {
        struct sci_port *s = (struct sci_port *)arg;
        struct uart_port *port = &s->port;
-       u16 scr = sci_in(port, SCSCR);
+       u16 scr = serial_port_in(port, SCSCR);
 
        if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
                scr &= ~0x4000;
                enable_irq(s->cfg->irqs[1]);
        }
-       sci_out(port, SCSCR, scr | SCSCR_RIE);
+       serial_port_out(port, SCSCR, scr | SCSCR_RIE);
        dev_dbg(port->dev, "DMA Rx timed out\n");
        schedule_work(&s->work_rx);
 }
@@ -1776,14 +1773,14 @@ static void sci_reset(struct uart_port *port)
        unsigned int status;
 
        do {
-               status = sci_in(port, SCxSR);
+               status = serial_port_in(port, SCxSR);
        } while (!(status & SCxSR_TEND(port)));
 
-       sci_out(port, SCSCR, 0x00);     /* TE=0, RE=0, CKE1=0 */
+       serial_port_out(port, SCSCR, 0x00);     /* TE=0, RE=0, CKE1=0 */
 
        reg = sci_getreg(port, SCFCR);
        if (reg->size)
-               sci_out(port, SCFCR, SCFCR_RFRST | SCFCR_TFRST);
+               serial_port_out(port, SCFCR, SCFCR_RFRST | SCFCR_TFRST);
 }
 
 static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
@@ -1812,7 +1809,7 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
 
        sci_reset(port);
 
-       smr_val = sci_in(port, SCSMR) & 3;
+       smr_val = serial_port_in(port, SCSMR) & 3;
 
        if ((termios->c_cflag & CSIZE) == CS7)
                smr_val |= 0x40;
@@ -1825,19 +1822,19 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
 
        uart_update_timeout(port, termios->c_cflag, baud);
 
-       sci_out(port, SCSMR, smr_val);
+       serial_port_out(port, SCSMR, smr_val);
 
        dev_dbg(port->dev, "%s: SMR %x, t %x, SCSCR %x\n", __func__, smr_val, t,
                s->cfg->scscr);
 
        if (t > 0) {
                if (t >= 256) {
-                       sci_out(port, SCSMR, (sci_in(port, SCSMR) & ~3) | 1);
+                       serial_port_out(port, SCSMR, (serial_port_in(port, SCSMR) & ~3) | 1);
                        t >>= 2;
                } else
-                       sci_out(port, SCSMR, sci_in(port, SCSMR) & ~3);
+                       serial_port_out(port, SCSMR, serial_port_in(port, SCSMR) & ~3);
 
-               sci_out(port, SCBRR, t);
+               serial_port_out(port, SCBRR, t);
                udelay((1000000+(baud-1)) / baud); /* Wait one bit interval */
        }
 
@@ -1845,7 +1842,7 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
 
        reg = sci_getreg(port, SCFCR);
        if (reg->size) {
-               unsigned short ctrl = sci_in(port, SCFCR);
+               unsigned short ctrl = serial_port_in(port, SCFCR);
 
                if (s->cfg->capabilities & SCIx_HAVE_RTSCTS) {
                        if (termios->c_cflag & CRTSCTS)
@@ -1861,10 +1858,10 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
                 */
                ctrl &= ~(SCFCR_RFRST | SCFCR_TFRST);
 
-               sci_out(port, SCFCR, ctrl);
+               serial_port_out(port, SCFCR, ctrl);
        }
 
-       sci_out(port, SCSCR, s->cfg->scscr);
+       serial_port_out(port, SCSCR, s->cfg->scscr);
 
 #ifdef CONFIG_SERIAL_SH_SCI_DMA
        /*
@@ -2166,7 +2163,7 @@ static void serial_console_write(struct console *co, const char *s,
 
        /* wait until fifo is empty and last bit has been transmitted */
        bits = SCxSR_TDxE(port) | SCxSR_TEND(port);
-       while ((sci_in(port, SCxSR) & bits) != bits)
+       while ((serial_port_in(port, SCxSR) & bits) != bits)
                cpu_relax();
 
        sci_port_disable(sci_port);
@@ -2260,12 +2257,12 @@ static int sci_runtime_suspend(struct device *dev)
        if (uart_console(port)) {
                struct plat_sci_reg *reg;
 
-               sci_port->saved_smr = sci_in(port, SCSMR);
-               sci_port->saved_brr = sci_in(port, SCBRR);
+               sci_port->saved_smr = serial_port_in(port, SCSMR);
+               sci_port->saved_brr = serial_port_in(port, SCBRR);
 
                reg = sci_getreg(port, SCFCR);
                if (reg->size)
-                       sci_port->saved_fcr = sci_in(port, SCFCR);
+                       sci_port->saved_fcr = serial_port_in(port, SCFCR);
                else
                        sci_port->saved_fcr = 0;
        }
@@ -2279,13 +2276,13 @@ static int sci_runtime_resume(struct device *dev)
 
        if (uart_console(port)) {
                sci_reset(port);
-               sci_out(port, SCSMR, sci_port->saved_smr);
-               sci_out(port, SCBRR, sci_port->saved_brr);
+               serial_port_out(port, SCSMR, sci_port->saved_smr);
+               serial_port_out(port, SCBRR, sci_port->saved_brr);
 
                if (sci_port->saved_fcr)
-                       sci_out(port, SCFCR, sci_port->saved_fcr);
+                       serial_port_out(port, SCFCR, sci_port->saved_fcr);
 
-               sci_out(port, SCSCR, sci_port->cfg->scscr);
+               serial_port_out(port, SCSCR, sci_port->cfg->scscr);
        }
        return 0;
 }
index a1a2d36..4c22a15 100644 (file)
     defined(CONFIG_ARCH_SH7372) || \
     defined(CONFIG_ARCH_R8A7740)
 
-# define SCxSR_RDxF_CLEAR(port)         (sci_in(port, SCxSR) & 0xfffc)
-# define SCxSR_ERROR_CLEAR(port) (sci_in(port, SCxSR) & 0xfd73)
-# define SCxSR_TDxE_CLEAR(port)         (sci_in(port, SCxSR) & 0xffdf)
-# define SCxSR_BREAK_CLEAR(port) (sci_in(port, SCxSR) & 0xffe3)
+# define SCxSR_RDxF_CLEAR(port)         (serial_port_in(port, SCxSR) & 0xfffc)
+# define SCxSR_ERROR_CLEAR(port) (serial_port_in(port, SCxSR) & 0xfd73)
+# define SCxSR_TDxE_CLEAR(port)         (serial_port_in(port, SCxSR) & 0xffdf)
+# define SCxSR_BREAK_CLEAR(port) (serial_port_in(port, SCxSR) & 0xffe3)
 #else
 # define SCxSR_RDxF_CLEAR(port)         (((port)->type == PORT_SCI) ? 0xbc : 0x00fc)
 # define SCxSR_ERROR_CLEAR(port) (((port)->type == PORT_SCI) ? 0xc4 : 0x0073)