]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Oct 2012 01:02:07 +0000 (18:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Oct 2012 01:02:07 +0000 (18:02 -0700)
Pull non-critical ARM soc bug fixes from Olof Johansson:
 "These were submitted as bug fixes before v3.6 but not considered
  important enough to be included in it.  Some of them cross over to
  cleanup territory as well, and aren't strictly bugfixes."

* tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits)
  ARM: nomadik: remove NAND_NO_READRDY use
  ARM: pxa: fix return value check in pxa2xx_drv_pcmcia_probe()
  ARM: SAMSUNG: Add missing variable declaration in s3c64xx_spi1_set_platdata()
  ARM: S3C24XX: removes unnecessary semicolon
  ARM: S3C24xx: delete double assignment
  ARM: EXYNOS: fix address for EXYNOS4 MDMA1
  ARM: EXYNOS: fixed SYSMMU setup definition to mate parameter name
  ARM: ep93xx: Move ts72xx.h out of include/mach
  ARM: ep93xx: use __iomem pointers for MMIO
  ARM: msm: Fix early debug uart mapping on some memory configs
  ARM: msm: io: Change the default static iomappings to be shared
  ARM: msm: io: Remove 7x30 iomap region from 7x00
  ARM: msm: Remove call to missing FPGA init on 8660
  ARM: OMAP4: wakeupgen: remove duplicate AUXCOREBOOT* read/write
  ARM: OMAP4: wakeupgen: Fix the typo in AUXCOREBOOT register save
  dma: tegra: make data used as *of_device_id.data const
  can: mpc5xxx_can: make data used as *of_device_id.data const
  macintosh/mediabay: make data used as *of_device_id.data const
  i2c/mpc: make data used as *of_device_id.data const
  mfd/da9052: make i2c_device_id array const
  ...

1  2 
arch/arm/Kconfig
arch/arm/mach-ux500/Kconfig
arch/arm/mach-ux500/board-mop500.c
arch/arm/mach-ux500/cpu.c
drivers/mmc/host/omap_hsmmc.c
drivers/tty/serial/mpc52xx_uart.c
include/linux/mod_devicetable.h

diff --combined arch/arm/Kconfig
index de325f4615bd0ae6a76b9ba82b828a928cfdcbd6,bb9f20accbb804c2cb047f4dae65e73fc43adfcf..4c428dc999eadad285e326e14900766d9719b3aa
@@@ -273,7 -273,7 +273,7 @@@ config ARCH_INTEGRATO
        select ARM_AMBA
        select ARCH_HAS_CPUFREQ
        select COMMON_CLK
 -      select CLK_VERSATILE
 +      select COMMON_CLK_VERSATILE
        select HAVE_TCM
        select ICST
        select GENERIC_CLOCKEVENTS
  config ARCH_REALVIEW
        bool "ARM Ltd. RealView family"
        select ARM_AMBA
 -      select CLKDEV_LOOKUP
 -      select HAVE_MACH_CLKDEV
 +      select COMMON_CLK
 +      select COMMON_CLK_VERSATILE
        select ICST
        select GENERIC_CLOCKEVENTS
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select PLAT_VERSATILE
 -      select PLAT_VERSATILE_CLOCK
        select PLAT_VERSATILE_CLCD
        select ARM_TIMER_SP804
        select GPIO_PL061 if GPIOLIB
@@@ -412,7 -413,7 +412,7 @@@ config ARCH_PRIMA
        select NO_IOPORT
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
 -      select CLKDEV_LOOKUP
 +      select COMMON_CLK
        select GENERIC_IRQ_CHIP
        select MIGHT_HAVE_CACHE_L2X0
        select PINCTRL
@@@ -2312,7 -2313,7 +2312,7 @@@ menu "Power management options
  source "kernel/power/Kconfig"
  
  config ARCH_SUSPEND_POSSIBLE
-       depends on !ARCH_S5PC100 && !ARCH_TEGRA
+       depends on !ARCH_S5PC100
        depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
                CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK
        def_bool y
index a258996d954b9fc5f260196f48f8e8449a28d277,842c0a2d748137f42f661adbcdfc8abe144a5ab4..c77c86c47369c8aa8aefbbdb671704d5e5a6f0c3
@@@ -11,7 -11,6 +11,7 @@@ config UX500_SOC_COMMO
        select CACHE_L2X0
        select PINCTRL
        select PINCTRL_NOMADIK
 +      select COMMON_CLK
  
  config UX500_SOC_DB8500
        bool
@@@ -29,6 -28,7 +29,7 @@@ config MACH_MOP50
        select I2C
        select I2C_NOMADIK
        select SOC_BUS
+       select REGULATOR_FIXED_VOLTAGE
        help
          Include support for the MOP500 development platform.
  
index 1d2e3c6f8b5911a0cc2d6c59602559bca823c75f,dd629b7f0ecfdd1e7484b8d9dfd60e00f057b6f7..c8922bca68a468d5e461d29ae6966234c6ba9b02
@@@ -23,6 -23,7 +23,7 @@@
  #include <linux/spi/spi.h>
  #include <linux/mfd/abx500/ab8500.h>
  #include <linux/regulator/ab8500.h>
+ #include <linux/regulator/fixed.h>
  #include <linux/mfd/tc3589x.h>
  #include <linux/mfd/tps6105x.h>
  #include <linux/mfd/abx500/ab8500-gpio.h>
@@@ -76,6 -77,23 +77,23 @@@ static struct platform_device snowball_
        },
  };
  
+ static struct fixed_voltage_config snowball_gpio_en_3v3_data = {
+        .supply_name            = "EN-3V3",
+        .gpio                   = SNOWBALL_EN_3V3_ETH_GPIO,
+        .microvolts             = 3300000,
+        .enable_high            = 1,
+        .init_data              = &gpio_en_3v3_regulator,
+        .startup_delay          = 5000, /* 1200us */
+ };
+ static struct platform_device snowball_gpio_en_3v3_regulator_dev = {
+        .name   = "reg-fixed-voltage",
+        .id     = 1,
+        .dev    = {
+                .platform_data  = &snowball_gpio_en_3v3_data,
+        },
+ };
  static struct ab8500_gpio_platform_data ab8500_gpio_pdata = {
        .gpio_base              = MOP500_AB8500_PIN_GPIO(1),
        .irq_base               = MOP500_AB8500_VIR_GPIO_IRQ_BASE,
@@@ -524,12 -542,33 +542,12 @@@ static struct stedma40_chan_cfg uart2_d
  };
  #endif
  
 -#define PRCC_K_SOFTRST_SET      0x18
 -#define PRCC_K_SOFTRST_CLEAR    0x1C
 -static void ux500_uart0_reset(void)
 -{
 -      void __iomem *prcc_rst_set, *prcc_rst_clr;
 -
 -      prcc_rst_set = (void __iomem *)IO_ADDRESS(U8500_CLKRST1_BASE +
 -                      PRCC_K_SOFTRST_SET);
 -      prcc_rst_clr = (void __iomem *)IO_ADDRESS(U8500_CLKRST1_BASE +
 -                      PRCC_K_SOFTRST_CLEAR);
 -
 -      /* Activate soft reset PRCC_K_SOFTRST_CLEAR */
 -      writel((readl(prcc_rst_clr) | 0x1), prcc_rst_clr);
 -      udelay(1);
 -
 -      /* Release soft reset PRCC_K_SOFTRST_SET */
 -      writel((readl(prcc_rst_set) | 0x1), prcc_rst_set);
 -      udelay(1);
 -}
 -
  static struct amba_pl011_data uart0_plat = {
  #ifdef CONFIG_STE_DMA40
        .dma_filter = stedma40_filter,
        .dma_rx_param = &uart0_dma_cfg_rx,
        .dma_tx_param = &uart0_dma_cfg_tx,
  #endif
 -      .reset = ux500_uart0_reset,
  };
  
  static struct amba_pl011_data uart1_plat = {
@@@ -565,6 -604,7 +583,7 @@@ static struct platform_device *snowball
        &snowball_led_dev,
        &snowball_key_dev,
        &snowball_sbnet_dev,
+       &snowball_gpio_en_3v3_regulator_dev,
  };
  
  static void __init mop500_init_machine(void)
index 17a78ec516ff8950be37330acceaae172d89731a,29574325c361995f3d1a19806cfd12f30bbf2787..8e755638aa76184923ad644a6d5ba4e4aced2de1
@@@ -8,6 -8,7 +8,6 @@@
  
  #include <linux/platform_device.h>
  #include <linux/io.h>
 -#include <linux/clk.h>
  #include <linux/mfd/db8500-prcmu.h>
  #include <linux/clksrc-dbx500-prcmu.h>
  #include <linux/sys_soc.h>
@@@ -16,7 -17,6 +16,7 @@@
  #include <linux/stat.h>
  #include <linux/of.h>
  #include <linux/of_irq.h>
 +#include <linux/platform_data/clk-ux500.h>
  
  #include <asm/hardware/gic.h>
  #include <asm/mach/map.h>
@@@ -25,6 -25,8 +25,6 @@@
  #include <mach/setup.h>
  #include <mach/devices.h>
  
 -#include "clock.h"
 -
  void __iomem *_PRCMU_BASE;
  
  /*
@@@ -49,6 -51,8 +49,8 @@@ void __init ux500_init_irq(void
        void __iomem *dist_base;
        void __iomem *cpu_base;
  
+       gic_arch_extn.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND;
        if (cpu_is_u8500_family()) {
                dist_base = __io_address(U8500_GIC_DIST_BASE);
                cpu_base = __io_address(U8500_GIC_CPU_BASE);
         */
        if (cpu_is_u8500_family())
                db8500_prcmu_early_init();
 -      clk_init();
 +
 +      if (cpu_is_u8500_family())
 +              u8500_clk_init();
 +      else if (cpu_is_u9540())
 +              u9540_clk_init();
 +      else if (cpu_is_u8540())
 +              u8540_clk_init();
  }
  
  void __init ux500_init_late(void)
  {
 -      clk_debugfs_init();
 -      clk_init_smp_twd_cpufreq();
  }
  
  static const char * __init ux500_get_machine(void)
index 686e256764c854e2c1a58c17392c4b52e8ac72e2,e975d3ecccc7f94e06423007b28e8dc31f02ef76..8e2d81f1ee4b4a74efc4afb23b4267dc669fa35b
@@@ -447,7 -447,7 +447,7 @@@ static void omap_hsmmc_stop_clock(struc
        OMAP_HSMMC_WRITE(host->base, SYSCTL,
                OMAP_HSMMC_READ(host->base, SYSCTL) & ~CEN);
        if ((OMAP_HSMMC_READ(host->base, SYSCTL) & CEN) != 0x0)
 -              dev_dbg(mmc_dev(host->mmc), "MMC Clock is not stoped\n");
 +              dev_dbg(mmc_dev(host->mmc), "MMC Clock is not stopped\n");
  }
  
  static void omap_hsmmc_enable_irq(struct omap_hsmmc_host *host,
@@@ -1782,7 -1782,7 +1782,7 @@@ static int __devinit omap_hsmmc_probe(s
        if (match) {
                pdata = of_get_hsmmc_pdata(&pdev->dev);
                if (match->data) {
-                       u16 *offsetp = match->data;
+                       const u16 *offsetp = match->data;
                        pdata->reg_offset = *offsetp;
                }
        }
index f19d04ed858629de3ebc6f64df63c375087cc8bb,b131f2d885d4a56e8d7ec40c59db38723245d1c0..8cf577008ad74799f8957f08a19a94b0d8ca382a
@@@ -598,7 -598,7 +598,7 @@@ static struct psc_ops mpc512x_psc_ops 
  };
  #endif
  
- static struct psc_ops *psc_ops;
+ static const struct psc_ops *psc_ops;
  
  /* ======================================================================== */
  /* UART operations                                                          */
@@@ -775,15 -775,11 +775,15 @@@ mpc52xx_uart_set_termios(struct uart_po
        }
  
        if (new->c_cflag & PARENB) {
 +              if (new->c_cflag & CMSPAR)
 +                      mr1 |= MPC52xx_PSC_MODE_PARFORCE;
 +
 +              /* With CMSPAR, PARODD also means high parity (same as termios) */
                mr1 |= (new->c_cflag & PARODD) ?
                        MPC52xx_PSC_MODE_PARODD : MPC52xx_PSC_MODE_PAREVEN;
 -      } else
 +      } else {
                mr1 |= MPC52xx_PSC_MODE_PARNONE;
 -
 +      }
  
        mr2 = 0;
  
index 70c6a359b2f4d125f82b872766a88c58abdf531e,78874b36112036dc04084ee0d7062bc98950409a..fed3def6281827f27c029638056dfda618c5c631
@@@ -232,7 -232,7 +232,7 @@@ struct of_device_i
        char    type[32];
        char    compatible[128];
  #ifdef __KERNEL__
-       void    *data;
+       const void *data;
  #else
        kernel_ulong_t data;
  #endif
@@@ -600,12 -600,4 +600,12 @@@ struct x86_cpu_id 
  #define X86_MODEL_ANY  0
  #define X86_FEATURE_ANY 0     /* Same as FPU, you can't test for that */
  
 +#define IPACK_ANY_FORMAT 0xff
 +#define IPACK_ANY_ID (~0)
 +struct ipack_device_id {
 +      __u8  format;                   /* Format version or IPACK_ANY_ID */
 +      __u32 vendor;                   /* Vendor ID or IPACK_ANY_ID */
 +      __u32 device;                   /* Device ID or IPACK_ANY_ID */
 +};
 +
  #endif /* LINUX_MOD_DEVICETABLE_H */