]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 20 Oct 2008 16:13:34 +0000 (09:13 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 20 Oct 2008 16:13:34 +0000 (09:13 -0700)
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (112 commits)
  sh: Move SH-4 CPU headers down one more level.
  sh: Only build in gpio.o when CONFIG_GENERIC_GPIO is selected.
  sh: Migrate common board headers to mach-common/.
  sh: Move the CPU definition headers from asm/ to cpu/.
  serial: sh-sci: Add support SCIF of SH7723
  video: add sh_mobile_lcdc platform flags
  video: remove unused sh_mobile_lcdc platform data
  sh: remove consistent alloc cruft
  sh: add dynamic crash base address support
  sh: reduce Migo-R smc91x overruns
  sh: Fix up some merge damage.
  Fix debugfs_create_file's error checking method for arch/sh/mm/
  Fix debugfs_create_dir's error checking method for arch/sh/kernel/
  sh: ap325rxa: Add support RTC RX-8564LC in AP325RXA board
  sh: Use sh7720 GPIO on magicpanelr2 board
  sh: Add sh7720 pinmux code
  sh: Use sh7203 GPIO on rsk7203 board
  sh: Add sh7203 pinmux code
  sh: Use sh7723 GPIO on AP325RXA board
  sh: Add sh7723 pinmux code
  ...

1  2 
Documentation/kernel-parameters.txt
arch/sh/Kconfig
drivers/rtc/rtc-ds1302.c
drivers/rtc/rtc-sh.c

index b49fcee5e9cc6e520241b98ceaed8166796ab084,bcecfaa1e7701cea682367553551e4fb54791dca..0f1544f67400b4288887649bf73b9fb09449b92c
@@@ -690,7 -690,7 +690,7 @@@ and is between 256 and 4096 characters
                        See Documentation/block/as-iosched.txt and
                        Documentation/block/deadline-iosched.txt for details.
  
 -      elfcorehdr=     [X86-32, X86_64]
 +      elfcorehdr=     [IA64,PPC,SH,X86-32,X86_64]
                        Specifies physical address of start of kernel core
                        image elf header. Generally kexec loader will
                        pass this option to capture kernel.
                        Defaults to the default architecture's huge page size
                        if not specified.
  
+       hlt             [BUGS=ARM,SH]
        i8042.debug     [HW] Toggle i8042 debug mode
        i8042.direct    [HW] Put keyboard port into non-translated mode
        i8042.dumbkbd   [HW] Pretend that controller can only read data from
        mem=nopentium   [BUGS=X86-32] Disable usage of 4MB pages for kernel
                        memory.
  
+       memchunk=nn[KMG]
+                       [KNL,SH] Allow user to override the default size for
+                       per-device physically contiguous DMA buffers.
        memmap=exactmap [KNL,X86-32,X86_64] Enable setting of an exact
                        E820 memory map, as specified by the user.
                        Such memmap=exactmap lines can be constructed based on
  
        nodisconnect    [HW,SCSI,M68K] Disables SCSI disconnects.
  
+       nodsp           [SH] Disable hardware DSP at boot time.
        noefi           [X86-32,X86-64] Disable EFI runtime services support.
  
        noexec          [IA-64]
                        noexec32=off: disable non-executable mappings
                                read implies executable mappings
  
+       nofpu           [SH] Disable hardware FPU at boot time.
        nofxsr          [BUGS=X86-32] Disables x86 floating point extended
                        register save and restore. The kernel will only save
                        legacy floating-point registers on task switch.
  
        noclflush       [BUGS=X86] Don't use the CLFLUSH instruction
  
-       nohlt           [BUGS=ARM]
+       nohlt           [BUGS=ARM,SH]
  
        no-hlt          [BUGS=X86-32] Tells the kernel that the hlt
                        instruction doesn't work correctly and not to
diff --combined arch/sh/Kconfig
index 2ed5713b7540ab4985e3b1fda64b9365d5a1a2fe,b4aa2a03e19b3c3a3008e4b8ea6935760dcd7f6c..cb2c87df70ceeb9d8c4558fbafde0e3b35eb9220
@@@ -12,6 -12,7 +12,7 @@@ config SUPER
        select HAVE_IDE
        select HAVE_OPROFILE
        select HAVE_GENERIC_DMA_COHERENT
+       select HAVE_IOREMAP_PROT if MMU
        help
          The SuperH is a RISC processor targeted for use in embedded systems
          and consumer electronics; it was also used in the Sega Dreamcast
  
  config SUPERH32
        def_bool !SUPERH64
+       select HAVE_KPROBES
+       select HAVE_KRETPROBES
+       select HAVE_ARCH_TRACEHOOK
+       select HAVE_FTRACE
  
  config SUPERH64
        def_bool y if CPU_SH5
@@@ -54,8 -59,11 +59,11 @@@ config GENERIC_HARDIRQS_NO__DO_IR
  config GENERIC_IRQ_PROBE
        def_bool y
  
+ config GENERIC_GPIO
+       def_bool n
  config GENERIC_CALIBRATE_DELAY
-       def_bool y
+       bool
  
  config GENERIC_IOMAP
        bool
@@@ -66,6 -74,9 +74,9 @@@ config GENERIC_TIM
  config GENERIC_CLOCKEVENTS
        def_bool n
  
+ config GENERIC_CLOCKEVENTS_BROADCAST
+       bool
  config GENERIC_LOCKBREAK
        def_bool y
        depends on SMP && PREEMPT
@@@ -92,6 -103,10 +103,10 @@@ config STACKTRACE_SUPPOR
  config LOCKDEP_SUPPORT
        def_bool y
  
+ config HAVE_LATENCYTOP_SUPPORT
+       def_bool y
+       depends on !SMP
  config ARCH_HAS_ILOG2_U32
        def_bool n
  
@@@ -106,8 -121,6 +121,8 @@@ config IO_TRAPPE
  
  source "init/Kconfig"
  
 +source "kernel/Kconfig.freezer"
 +
  menu "System type"
  
  #
@@@ -325,6 -338,7 +340,7 @@@ config CPU_SUBTYPE_SHX
        select ARCH_SPARSEMEM_ENABLE
        select SYS_SUPPORTS_NUMA
        select SYS_SUPPORTS_SMP
+       select GENERIC_CLOCKEVENTS_BROADCAST if SMP
  
  # SH4AL-DSP Processor Support
  
@@@ -492,7 -506,6 +508,6 @@@ config CRASH_DUM
  config SECCOMP
        bool "Enable seccomp to safely compute untrusted bytecode"
        depends on PROC_FS
-       default y
        help
          This kernel feature is useful for number crunching applications
          that may need to compute untrusted bytecode during their
diff --combined drivers/rtc/rtc-ds1302.c
index 16bdba6a6b0cf1bf0a4d9ff1da156ef930568cba,8f4e96bb229a06f4d073a96fa4033dcf4ff8899e..184556620778c5da5f8ec45dc3144d3b611a47ca
@@@ -40,7 -40,7 +40,7 @@@
  #define       RTC_SCLK        0x0400
  
  #ifdef CONFIG_SH_SECUREEDGE5410
- #include <asm/snapgear.h>
+ #include <mach/snapgear.h>
  #define set_dp(x)     SECUREEDGE_WRITE_IOPORT(x, 0x1c00)
  #define get_dp()      SECUREEDGE_READ_IOPORT()
  #else
@@@ -107,13 -107,13 +107,13 @@@ static int ds1302_rtc_read_time(struct 
  
        spin_lock_irq(&rtc->lock);
  
 -      tm->tm_sec      = BCD2BIN(ds1302_readbyte(RTC_ADDR_SEC));
 -      tm->tm_min      = BCD2BIN(ds1302_readbyte(RTC_ADDR_MIN));
 -      tm->tm_hour     = BCD2BIN(ds1302_readbyte(RTC_ADDR_HOUR));
 -      tm->tm_wday     = BCD2BIN(ds1302_readbyte(RTC_ADDR_DAY));
 -      tm->tm_mday     = BCD2BIN(ds1302_readbyte(RTC_ADDR_DATE));
 -      tm->tm_mon      = BCD2BIN(ds1302_readbyte(RTC_ADDR_MON)) - 1;
 -      tm->tm_year     = BCD2BIN(ds1302_readbyte(RTC_ADDR_YEAR));
 +      tm->tm_sec      = bcd2bin(ds1302_readbyte(RTC_ADDR_SEC));
 +      tm->tm_min      = bcd2bin(ds1302_readbyte(RTC_ADDR_MIN));
 +      tm->tm_hour     = bcd2bin(ds1302_readbyte(RTC_ADDR_HOUR));
 +      tm->tm_wday     = bcd2bin(ds1302_readbyte(RTC_ADDR_DAY));
 +      tm->tm_mday     = bcd2bin(ds1302_readbyte(RTC_ADDR_DATE));
 +      tm->tm_mon      = bcd2bin(ds1302_readbyte(RTC_ADDR_MON)) - 1;
 +      tm->tm_year     = bcd2bin(ds1302_readbyte(RTC_ADDR_YEAR));
  
        if (tm->tm_year < 70)
                tm->tm_year += 100;
@@@ -141,13 -141,13 +141,13 @@@ static int ds1302_rtc_set_time(struct d
        /* Stop RTC */
        ds1302_writebyte(RTC_ADDR_SEC, ds1302_readbyte(RTC_ADDR_SEC) | 0x80);
  
 -      ds1302_writebyte(RTC_ADDR_SEC, BIN2BCD(tm->tm_sec));
 -      ds1302_writebyte(RTC_ADDR_MIN, BIN2BCD(tm->tm_min));
 -      ds1302_writebyte(RTC_ADDR_HOUR, BIN2BCD(tm->tm_hour));
 -      ds1302_writebyte(RTC_ADDR_DAY, BIN2BCD(tm->tm_wday));
 -      ds1302_writebyte(RTC_ADDR_DATE, BIN2BCD(tm->tm_mday));
 -      ds1302_writebyte(RTC_ADDR_MON, BIN2BCD(tm->tm_mon + 1));
 -      ds1302_writebyte(RTC_ADDR_YEAR, BIN2BCD(tm->tm_year % 100));
 +      ds1302_writebyte(RTC_ADDR_SEC, bin2bcd(tm->tm_sec));
 +      ds1302_writebyte(RTC_ADDR_MIN, bin2bcd(tm->tm_min));
 +      ds1302_writebyte(RTC_ADDR_HOUR, bin2bcd(tm->tm_hour));
 +      ds1302_writebyte(RTC_ADDR_DAY, bin2bcd(tm->tm_wday));
 +      ds1302_writebyte(RTC_ADDR_DATE, bin2bcd(tm->tm_mday));
 +      ds1302_writebyte(RTC_ADDR_MON, bin2bcd(tm->tm_mon + 1));
 +      ds1302_writebyte(RTC_ADDR_YEAR, bin2bcd(tm->tm_year % 100));
  
        /* Start RTC */
        ds1302_writebyte(RTC_ADDR_SEC, ds1302_readbyte(RTC_ADDR_SEC) & ~0x80);
diff --combined drivers/rtc/rtc-sh.c
index 1ec297128ea639fac6db8f9c7f81f0bd59f3bea3,3f393c82e32cba741c10f50cea4783fe536cceec..aaf9d6a337cc78181e89413353026e56b9bde272
@@@ -324,23 -324,23 +324,23 @@@ static int sh_rtc_read_time(struct devi
  
                sec128 = readb(rtc->regbase + R64CNT);
  
 -              tm->tm_sec      = BCD2BIN(readb(rtc->regbase + RSECCNT));
 -              tm->tm_min      = BCD2BIN(readb(rtc->regbase + RMINCNT));
 -              tm->tm_hour     = BCD2BIN(readb(rtc->regbase + RHRCNT));
 -              tm->tm_wday     = BCD2BIN(readb(rtc->regbase + RWKCNT));
 -              tm->tm_mday     = BCD2BIN(readb(rtc->regbase + RDAYCNT));
 -              tm->tm_mon      = BCD2BIN(readb(rtc->regbase + RMONCNT)) - 1;
 +              tm->tm_sec      = bcd2bin(readb(rtc->regbase + RSECCNT));
 +              tm->tm_min      = bcd2bin(readb(rtc->regbase + RMINCNT));
 +              tm->tm_hour     = bcd2bin(readb(rtc->regbase + RHRCNT));
 +              tm->tm_wday     = bcd2bin(readb(rtc->regbase + RWKCNT));
 +              tm->tm_mday     = bcd2bin(readb(rtc->regbase + RDAYCNT));
 +              tm->tm_mon      = bcd2bin(readb(rtc->regbase + RMONCNT)) - 1;
  
                if (rtc->capabilities & RTC_CAP_4_DIGIT_YEAR) {
                        yr  = readw(rtc->regbase + RYRCNT);
 -                      yr100 = BCD2BIN(yr >> 8);
 +                      yr100 = bcd2bin(yr >> 8);
                        yr &= 0xff;
                } else {
                        yr  = readb(rtc->regbase + RYRCNT);
 -                      yr100 = BCD2BIN((yr == 0x99) ? 0x19 : 0x20);
 +                      yr100 = bcd2bin((yr == 0x99) ? 0x19 : 0x20);
                }
  
 -              tm->tm_year = (yr100 * 100 + BCD2BIN(yr)) - 1900;
 +              tm->tm_year = (yr100 * 100 + bcd2bin(yr)) - 1900;
  
                sec2 = readb(rtc->regbase + R64CNT);
                cf_bit = readb(rtc->regbase + RCR1) & RCR1_CF;
@@@ -382,20 -382,20 +382,20 @@@ static int sh_rtc_set_time(struct devic
        tmp &= ~RCR2_START;
        writeb(tmp, rtc->regbase + RCR2);
  
 -      writeb(BIN2BCD(tm->tm_sec),  rtc->regbase + RSECCNT);
 -      writeb(BIN2BCD(tm->tm_min),  rtc->regbase + RMINCNT);
 -      writeb(BIN2BCD(tm->tm_hour), rtc->regbase + RHRCNT);
 -      writeb(BIN2BCD(tm->tm_wday), rtc->regbase + RWKCNT);
 -      writeb(BIN2BCD(tm->tm_mday), rtc->regbase + RDAYCNT);
 -      writeb(BIN2BCD(tm->tm_mon + 1), rtc->regbase + RMONCNT);
 +      writeb(bin2bcd(tm->tm_sec),  rtc->regbase + RSECCNT);
 +      writeb(bin2bcd(tm->tm_min),  rtc->regbase + RMINCNT);
 +      writeb(bin2bcd(tm->tm_hour), rtc->regbase + RHRCNT);
 +      writeb(bin2bcd(tm->tm_wday), rtc->regbase + RWKCNT);
 +      writeb(bin2bcd(tm->tm_mday), rtc->regbase + RDAYCNT);
 +      writeb(bin2bcd(tm->tm_mon + 1), rtc->regbase + RMONCNT);
  
        if (rtc->capabilities & RTC_CAP_4_DIGIT_YEAR) {
 -              year = (BIN2BCD((tm->tm_year + 1900) / 100) << 8) |
 -                      BIN2BCD(tm->tm_year % 100);
 +              year = (bin2bcd((tm->tm_year + 1900) / 100) << 8) |
 +                      bin2bcd(tm->tm_year % 100);
                writew(year, rtc->regbase + RYRCNT);
        } else {
                year = tm->tm_year % 100;
 -              writeb(BIN2BCD(year), rtc->regbase + RYRCNT);
 +              writeb(bin2bcd(year), rtc->regbase + RYRCNT);
        }
  
        /* Start RTC */
@@@ -417,7 -417,7 +417,7 @@@ static inline int sh_rtc_read_alarm_val
        byte = readb(rtc->regbase + reg_off);
        if (byte & AR_ENB) {
                byte &= ~AR_ENB;        /* strip the enable bit */
 -              value = BCD2BIN(byte);
 +              value = bcd2bin(byte);
        }
  
        return value;
@@@ -455,7 -455,7 +455,7 @@@ static inline void sh_rtc_write_alarm_v
        if (value < 0)
                writeb(0, rtc->regbase + reg_off);
        else
 -              writeb(BIN2BCD(value) | AR_ENB,  rtc->regbase + reg_off);
 +              writeb(bin2bcd(value) | AR_ENB,  rtc->regbase + reg_off);
  }
  
  static int sh_rtc_check_alarm(struct rtc_time *tm)
@@@ -568,7 -568,7 +568,7 @@@ static int __devinit sh_rtc_probe(struc
        struct sh_rtc *rtc;
        struct resource *res;
        unsigned int tmp;
-       int ret = -ENOENT;
+       int ret;
  
        rtc = kzalloc(sizeof(struct sh_rtc), GFP_KERNEL);
        if (unlikely(!rtc))
        spin_lock_init(&rtc->lock);
  
        /* get periodic/carry/alarm irqs */
-       rtc->periodic_irq = platform_get_irq(pdev, 0);
-       if (unlikely(rtc->periodic_irq < 0)) {
+       ret = platform_get_irq(pdev, 0);
+       if (unlikely(ret < 0)) {
+               ret = -ENOENT;
                dev_err(&pdev->dev, "No IRQ for period\n");
                goto err_badres;
        }
+       rtc->periodic_irq = ret;
  
-       rtc->carry_irq = platform_get_irq(pdev, 1);
-       if (unlikely(rtc->carry_irq < 0)) {
+       ret = platform_get_irq(pdev, 1);
+       if (unlikely(ret < 0)) {
+               ret = -ENOENT;
                dev_err(&pdev->dev, "No IRQ for carry\n");
                goto err_badres;
        }
+       rtc->carry_irq = ret;
  
-       rtc->alarm_irq = platform_get_irq(pdev, 2);
-       if (unlikely(rtc->alarm_irq < 0)) {
+       ret = platform_get_irq(pdev, 2);
+       if (unlikely(ret < 0)) {
+               ret = -ENOENT;
                dev_err(&pdev->dev, "No IRQ for alarm\n");
                goto err_badres;
        }
+       rtc->alarm_irq = ret;
  
        res = platform_get_resource(pdev, IORESOURCE_IO, 0);
        if (unlikely(res == NULL)) {
+               ret = -ENOENT;
                dev_err(&pdev->dev, "No IO resource\n");
                goto err_badres;
        }