From 4a6e6a5eb3f8309273b389ca74538f65af203f6c Mon Sep 17 00:00:00 2001 From: Murali Karicheri Date: Wed, 4 Apr 2012 10:38:37 -0400 Subject: ARM: davinci: fix incorrect pdctl next bit position The PDCTL NEXT bit is incorrectly set to bit 1 instead of bit 0. This patch fixes this issue Signed-off-by: Murali Karicheri Signed-off-by: Sekhar Nori diff --git a/arch/arm/mach-davinci/include/mach/psc.h b/arch/arm/mach-davinci/include/mach/psc.h index 8bc3fc2..405318e 100644 --- a/arch/arm/mach-davinci/include/mach/psc.h +++ b/arch/arm/mach-davinci/include/mach/psc.h @@ -246,7 +246,7 @@ #define MDSTAT_STATE_MASK 0x3f #define PDSTAT_STATE_MASK 0x1f #define MDCTL_FORCE BIT(31) -#define PDCTL_NEXT BIT(1) +#define PDCTL_NEXT BIT(0) #define PDCTL_EPCGOOD BIT(8) #ifndef __ASSEMBLER__ -- cgit v0.10.2 From d65566e50b35165c5d89cd6ea5049662ae6da43b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Fri, 30 Mar 2012 22:13:53 +0200 Subject: ARM: davinci: mark spi_board_info arguments as const MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit spi_board_info is not modified in any of the spi registeration functions and passed along as-is to the generic SPI layer. Mark spi_board_info arguments as const to signal this. Signed-off-by: Uwe Kleine-König [nsekhar@ti.com: extended for dm365 and dm355] Signed-off-by: Sekhar Nori diff --git a/arch/arm/mach-davinci/davinci.h b/arch/arm/mach-davinci/davinci.h index 3e519da..8db0fc6 100644 --- a/arch/arm/mach-davinci/davinci.h +++ b/arch/arm/mach-davinci/davinci.h @@ -72,7 +72,7 @@ void davinci_map_sysmod(void); /* DM355 function declarations */ void __init dm355_init(void); void dm355_init_spi0(unsigned chipselect_mask, - struct spi_board_info *info, unsigned len); + const struct spi_board_info *info, unsigned len); void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata); void dm355_set_vpfe_config(struct vpfe_config *cfg); @@ -83,7 +83,7 @@ void __init dm365_init_vc(struct snd_platform_data *pdata); void __init dm365_init_ks(struct davinci_ks_platform_data *pdata); void __init dm365_init_rtc(void); void dm365_init_spi0(unsigned chipselect_mask, - struct spi_board_info *info, unsigned len); + const struct spi_board_info *info, unsigned len); void dm365_set_vpfe_config(struct vpfe_config *cfg); /* DM644x function declarations */ diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index 42dbf3d..d1624a3 100644 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c @@ -831,7 +831,7 @@ static struct platform_device da8xx_spi_device[] = { }, }; -int __init da8xx_register_spi(int instance, struct spi_board_info *info, +int __init da8xx_register_spi(int instance, const struct spi_board_info *info, unsigned len) { int ret; diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c index fd3d09a..678cd99 100644 --- a/arch/arm/mach-davinci/dm355.c +++ b/arch/arm/mach-davinci/dm355.c @@ -424,7 +424,7 @@ static struct platform_device dm355_spi0_device = { }; void __init dm355_init_spi0(unsigned chipselect_mask, - struct spi_board_info *info, unsigned len) + const struct spi_board_info *info, unsigned len) { /* for now, assume we need MISO */ davinci_cfg_reg(DM355_SPI0_SDI); diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c index 1a2e953..a50d49de 100644 --- a/arch/arm/mach-davinci/dm365.c +++ b/arch/arm/mach-davinci/dm365.c @@ -676,7 +676,7 @@ static struct platform_device dm365_spi0_device = { }; void __init dm365_init_spi0(unsigned chipselect_mask, - struct spi_board_info *info, unsigned len) + const struct spi_board_info *info, unsigned len) { davinci_cfg_reg(DM365_SPI0_SCLK); davinci_cfg_reg(DM365_SPI0_SDI); diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h index ee3461d..a2f1f27 100644 --- a/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/arch/arm/mach-davinci/include/mach/da8xx.h @@ -76,7 +76,8 @@ void __init da850_init(void); int da830_register_edma(struct edma_rsv_info *rsv); int da850_register_edma(struct edma_rsv_info *rsv[2]); int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata); -int da8xx_register_spi(int instance, struct spi_board_info *info, unsigned len); +int da8xx_register_spi(int instance, + const struct spi_board_info *info, unsigned len); int da8xx_register_watchdog(void); int da8xx_register_usb20(unsigned mA, unsigned potpgt); int da8xx_register_usb11(struct da8xx_ohci_root_hub *pdata); -- cgit v0.10.2 From aea812e1ac80a491d39396e2a2d15bb725933c84 Mon Sep 17 00:00:00 2001 From: Stephen Warren Date: Wed, 25 Apr 2012 12:10:19 -0600 Subject: ARM: tegra: add pll_x freq table entry for 750MHz Some SKUs limit the maximum CPU frequency to 750MHz; see tegra2_pllx_clk_init(). The pll_x frequency table needs an entry for this frequency, or there will be continual log spam from the cpufreq driver attempting to set this rate, yet there being no table entry for it. Signed-off-by: Stephen Warren diff --git a/arch/arm/mach-tegra/tegra2_clocks.c b/arch/arm/mach-tegra/tegra2_clocks.c index 592a4ee..2cae5cb 100644 --- a/arch/arm/mach-tegra/tegra2_clocks.c +++ b/arch/arm/mach-tegra/tegra2_clocks.c @@ -1764,6 +1764,12 @@ static struct clk_pll_freq_table tegra_pll_x_freq_table[] = { { 19200000, 760000000, 950, 24, 1, 8}, { 26000000, 760000000, 760, 26, 1, 12}, + /* 750 MHz */ + { 12000000, 750000000, 750, 12, 1, 12}, + { 13000000, 750000000, 750, 13, 1, 12}, + { 19200000, 750000000, 625, 16, 1, 8}, + { 26000000, 750000000, 750, 26, 1, 12}, + /* 608 MHz */ { 12000000, 608000000, 608, 12, 1, 12}, { 13000000, 608000000, 608, 13, 1, 12}, -- cgit v0.10.2 From 59858b718efe12a7dbba72a158ea2edfc516b216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Fri, 30 Mar 2012 22:29:20 +0200 Subject: ARM: davinci: da850-evm: fix section mismatch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes: WARNING: arch/arm/mach-davinci/built-in.o(.text+0x2d84): Section mismatch in reference from the function da850_evm_ui_expander_setup() to the (unknown reference) .init.data:(unknown) The function da850_evm_ui_expander_setup() references the (unknown reference) __initdata (unknown). This is often because da850_evm_ui_expander_setup lacks a __initdata annotation or the annotation of (unknown) is wrong. Note this is a real issue because if the tca6416 driver only binds when the init sections are already discarded da850_evm_ui_expander_setup is called when da850_evm_devices might already be overwritten. Signed-off-by: Uwe Kleine-König Signed-off-by: Sekhar Nori diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index a70de24..09f6107 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c @@ -284,7 +284,7 @@ static struct platform_device da850_evm_nandflash_device = { .resource = da850_evm_nandflash_resource, }; -static struct platform_device *da850_evm_devices[] __initdata = { +static struct platform_device *da850_evm_devices[] = { &da850_evm_nandflash_device, &da850_evm_norflash_device, }; -- cgit v0.10.2 From 3d5e8af45a3d52ff9fd30035ffbc4887e04f4d73 Mon Sep 17 00:00:00 2001 From: Stephen Warren Date: Fri, 13 Apr 2012 15:30:07 -0600 Subject: ARM: disable SUSPEND/ARCH_SUSPEND_POSSIBLE for ARCH_TEGRA Tegra doesn't yet support system sleep. Explicitly disable support for this feature in Kconfig. Signed-off-by: Stephen Warren diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index cf006d4..3a76888 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -2272,7 +2272,7 @@ menu "Power management options" source "kernel/power/Kconfig" config ARCH_SUSPEND_POSSIBLE - depends on !ARCH_S5PC100 + depends on !ARCH_S5PC100 && !ARCH_TEGRA depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE def_bool y -- cgit v0.10.2 From e54bdc187efcc029dd723128fe1fc518f7387d53 Mon Sep 17 00:00:00 2001 From: Artem Bityutskiy Date: Tue, 8 May 2012 16:59:35 +0300 Subject: ARM: OMAP1: fix compilation issue in board-sx1.c SX1 board requirese i2c, so select it in Kconfig, otherwise I have the following build error: arch/arm/mach-omap1/board-sx1.c: In function 'sx1_i2c_write_byte': arch/arm/mach-omap1/board-sx1.c:58:2: error: implicit declaration of function 'i2c_get_adapter' [-Werror=implicit-function-declaration] arch/arm/mach-omap1/board-sx1.c:58:7: warning: assignment makes pointer from integer without a cast [enabled by default] arch/arm/mach-omap1/board-sx1.c:67:2: error: implicit declaration of function 'i2c_transfer' [-Werror=implicit-function-declaration] arch/arm/mach-omap1/board-sx1.c:68:2: error: implicit declaration of function 'i2c_put_adapter' [-Werror=implicit-function-declaration] arch/arm/mach-omap1/board-sx1.c: In function 'sx1_i2c_read_byte': arch/arm/mach-omap1/board-sx1.c:82:7: warning: assignment makes pointer from integer without a cast [enabled by default] cc1: some warnings being treated as errors make[1]: *** [arch/arm/mach-omap1/board-sx1.o] Error 1 make: *** [arch/arm/mach-omap1] Error 2 make: *** Waiting for unfinished jobs.... Signed-off-by: Artem Bityutskiy Signed-off-by: Tony Lindgren diff --git a/arch/arm/mach-omap1/Kconfig b/arch/arm/mach-omap1/Kconfig index dfab466..cba3f71 100644 --- a/arch/arm/mach-omap1/Kconfig +++ b/arch/arm/mach-omap1/Kconfig @@ -132,6 +132,7 @@ config MACH_OMAP_PALMTT config MACH_SX1 bool "Siemens SX1" + select I2C depends on ARCH_OMAP1 && ARCH_OMAP15XX help Support for the Siemens SX1 phone. To boot the kernel, -- cgit v0.10.2 From 1ee47b0ae83e3cae2f9362113b3935898fdb3ea9 Mon Sep 17 00:00:00 2001 From: Balaji T K Date: Wed, 25 Apr 2012 17:27:46 +0530 Subject: ARM: OMAP4: hsmmc: check for null pointer platform_device pdev can be NULL if CONFIG_MMC_OMAP_HS is not set. Add check for NULL pointer. while at it move the duplicated functions to omap4-common.c Fixes the following boot crash seen with omap4sdp and omap4panda when MMC is disabled. Unable to handle kernel NULL pointer dereference at virtual address 0000008c pgd = c0004000 [0000008c] *pgd=00000000 Internal error: Oops: 5 [#1] SMP ARM Modules linked in: CPU: 0 Not tainted (3.4.0-rc1-05971-ga4dfa82 #4) PC is at omap_4430sdp_init+0x184/0x410 LR is at device_add+0x1a0/0x664 Signed-off-by: Balaji T K Reported-by: Santosh Shilimkar Signed-off-by: Tony Lindgren diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index 130ab00..6dc1848 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@ -489,50 +489,6 @@ static struct platform_device omap_vwlan_device = { }, }; -static int omap4_twl6030_hsmmc_late_init(struct device *dev) -{ - int irq = 0; - struct platform_device *pdev = container_of(dev, - struct platform_device, dev); - struct omap_mmc_platform_data *pdata = dev->platform_data; - - /* Setting MMC1 Card detect Irq */ - if (pdev->id == 0) { - irq = twl6030_mmc_card_detect_config(); - if (irq < 0) { - pr_err("Failed configuring MMC1 card detect\n"); - return irq; - } - pdata->slots[0].card_detect_irq = irq; - pdata->slots[0].card_detect = twl6030_mmc_card_detect; - } - return 0; -} - -static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev) -{ - struct omap_mmc_platform_data *pdata; - - /* dev can be null if CONFIG_MMC_OMAP_HS is not set */ - if (!dev) { - pr_err("Failed %s\n", __func__); - return; - } - pdata = dev->platform_data; - pdata->init = omap4_twl6030_hsmmc_late_init; -} - -static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) -{ - struct omap2_hsmmc_info *c; - - omap_hsmmc_init(controllers); - for (c = controllers; c->mmc; c++) - omap4_twl6030_hsmmc_set_late_init(&c->pdev->dev); - - return 0; -} - static struct regulator_init_data sdp4430_vaux1 = { .constraints = { .min_uV = 1000000, diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 1b782ba..c148472 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@ -236,55 +236,6 @@ struct wl12xx_platform_data omap_panda_wlan_data __initdata = { .board_ref_clock = 2, }; -static int omap4_twl6030_hsmmc_late_init(struct device *dev) -{ - int irq = 0; - struct platform_device *pdev = container_of(dev, - struct platform_device, dev); - struct omap_mmc_platform_data *pdata = dev->platform_data; - - if (!pdata) { - dev_err(dev, "%s: NULL platform data\n", __func__); - return -EINVAL; - } - /* Setting MMC1 Card detect Irq */ - if (pdev->id == 0) { - irq = twl6030_mmc_card_detect_config(); - if (irq < 0) { - dev_err(dev, "%s: Error card detect config(%d)\n", - __func__, irq); - return irq; - } - pdata->slots[0].card_detect = twl6030_mmc_card_detect; - } - return 0; -} - -static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev) -{ - struct omap_mmc_platform_data *pdata; - - /* dev can be null if CONFIG_MMC_OMAP_HS is not set */ - if (!dev) { - pr_err("Failed omap4_twl6030_hsmmc_set_late_init\n"); - return; - } - pdata = dev->platform_data; - - pdata->init = omap4_twl6030_hsmmc_late_init; -} - -static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) -{ - struct omap2_hsmmc_info *c; - - omap_hsmmc_init(controllers); - for (c = controllers; c->mmc; c++) - omap4_twl6030_hsmmc_set_late_init(&c->pdev->dev); - - return 0; -} - static struct twl6040_codec_data twl6040_codec = { /* single-step ramp for headset and handsfree */ .hs_left_step = 0x0f, diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index 57da7f4..c09ca63 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h @@ -27,6 +27,7 @@ #ifndef __ASSEMBLER__ #include +#include #include #include @@ -254,6 +255,8 @@ static inline u32 omap4_mpuss_read_prev_context_state(void) struct omap_sdrc_params; extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, struct omap_sdrc_params *sdrc_cs1); +struct omap2_hsmmc_info; +extern int omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers); #endif /* __ASSEMBLER__ */ #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */ diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c index 70de277..a8161e5 100644 --- a/arch/arm/mach-omap2/omap4-common.c +++ b/arch/arm/mach-omap2/omap4-common.c @@ -25,11 +25,13 @@ #include #include #include +#include #include #include #include "common.h" +#include "hsmmc.h" #include "omap4-sar-layout.h" #include @@ -207,3 +209,59 @@ static int __init omap4_sar_ram_init(void) return 0; } early_initcall(omap4_sar_ram_init); + +#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE) +static int omap4_twl6030_hsmmc_late_init(struct device *dev) +{ + int irq = 0; + struct platform_device *pdev = container_of(dev, + struct platform_device, dev); + struct omap_mmc_platform_data *pdata = dev->platform_data; + + /* Setting MMC1 Card detect Irq */ + if (pdev->id == 0) { + irq = twl6030_mmc_card_detect_config(); + if (irq < 0) { + dev_err(dev, "%s: Error card detect config(%d)\n", + __func__, irq); + return irq; + } + pdata->slots[0].card_detect_irq = irq; + pdata->slots[0].card_detect = twl6030_mmc_card_detect; + } + return 0; +} + +static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev) +{ + struct omap_mmc_platform_data *pdata; + + /* dev can be null if CONFIG_MMC_OMAP_HS is not set */ + if (!dev) { + pr_err("Failed %s\n", __func__); + return; + } + pdata = dev->platform_data; + pdata->init = omap4_twl6030_hsmmc_late_init; +} + +int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) +{ + struct omap2_hsmmc_info *c; + + omap_hsmmc_init(controllers); + for (c = controllers; c->mmc; c++) { + /* pdev can be null if CONFIG_MMC_OMAP_HS is not set */ + if (!c->pdev) + continue; + omap4_twl6030_hsmmc_set_late_init(&c->pdev->dev); + } + + return 0; +} +#else +int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) +{ + return 0; +} +#endif -- cgit v0.10.2 From 98e3b3393ff25f79399dd7cdcf6450788788acae Mon Sep 17 00:00:00 2001 From: Akinobu Mita Date: Wed, 11 Apr 2012 20:36:53 +0900 Subject: arm: davinci: use for_each_set_bit_from Use for_each_set_bit_from to iterate over all the set bit in a memory region. Signed-off-by: Akinobu Mita Acked-by: Sekhar Nori Cc: Sekhar Nori Cc: Christian Riesch Cc: Kevin Hilman Cc: davinci-linux-open-source@linux.davincidsp.com Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Sekhar Nori diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c index fd33919..95ce019 100644 --- a/arch/arm/mach-davinci/dma.c +++ b/arch/arm/mach-davinci/dma.c @@ -557,9 +557,9 @@ static int reserve_contiguous_slots(int ctlr, unsigned int id, if (i == edma_cc[ctlr]->num_slots) stop_slot = i; - for (j = start_slot; j < stop_slot; j++) - if (test_bit(j, tmp_inuse)) - clear_bit(j, edma_cc[ctlr]->edma_inuse); + j = start_slot; + for_each_set_bit_from(j, tmp_inuse, stop_slot) + clear_bit(j, edma_cc[ctlr]->edma_inuse); if (count) return -EBUSY; -- cgit v0.10.2 From 28ee793e7ad4a00e41c6267075501694c94451fb Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Tue, 8 May 2012 16:31:12 -0700 Subject: ARM: OMAP: fix trivial warnings for dspbridge arch/arm/plat-omap/devices.c: In function 'omap_dsp_reserve_sdram_memblock': arch/arm/plat-omap/devices.c:170: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'phys_addr_t' arch/arm/mach-omap2/dsp.c: In function 'omap_dsp_init': arch/arm/mach-omap2/dsp.c:60: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'phys_addr_t' arch/arm/mach-omap2/dsp.c:60: warning: format '%x' expects type 'unsigned int', but argument 4 has type 'phys_addr_t' Signed-off-by: Felipe Contreras Signed-off-by: Tony Lindgren diff --git a/arch/arm/mach-omap2/dsp.c b/arch/arm/mach-omap2/dsp.c index 74f18f2..3376388 100644 --- a/arch/arm/mach-omap2/dsp.c +++ b/arch/arm/mach-omap2/dsp.c @@ -57,8 +57,9 @@ static int __init omap_dsp_init(void) if (pdata->phys_mempool_base) { pdata->phys_mempool_size = CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE; - pr_info("%s: %x bytes @ %x\n", __func__, - pdata->phys_mempool_size, pdata->phys_mempool_base); + pr_info("%s: %llx bytes @ %llx\n", __func__, + (unsigned long long)pdata->phys_mempool_size, + (unsigned long long)pdata->phys_mempool_base); } pdev = platform_device_alloc("omap-dsp", -1); diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c index 60278f4..09b07d2 100644 --- a/arch/arm/plat-omap/devices.c +++ b/arch/arm/plat-omap/devices.c @@ -167,8 +167,8 @@ void __init omap_dsp_reserve_sdram_memblock(void) paddr = arm_memblock_steal(size, SZ_1M); if (!paddr) { - pr_err("%s: failed to reserve %x bytes\n", - __func__, size); + pr_err("%s: failed to reserve %llx bytes\n", + __func__, (unsigned long long)size); return; } -- cgit v0.10.2 From 256a4bd79632413b691fc7bc6c1dadf92494bb01 Mon Sep 17 00:00:00 2001 From: Tony Lindgren Date: Tue, 8 May 2012 16:31:13 -0700 Subject: ARM: OMAP2+: Incorrect Register Offsets in OMAP Mailbox Looks like the register offsets are incorrect in the OMAP mailbox code (arch/arm/mach-omap2/mailbox.c) for the OMAP4_MAILBOX_IRQ* macros. The discrepancy is with p.224 of TI document SPRUGX9 and p3891 of SWPU231K. Acked-by: Vaibhav Bedia Signed-off-by: Henry Chan Signed-off-by: Tony Lindgren diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 415a6f1..19b8b67 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c @@ -26,9 +26,9 @@ #define MAILBOX_IRQSTATUS(u) (0x100 + 8 * (u)) #define MAILBOX_IRQENABLE(u) (0x104 + 8 * (u)) -#define OMAP4_MAILBOX_IRQSTATUS(u) (0x104 + 10 * (u)) -#define OMAP4_MAILBOX_IRQENABLE(u) (0x108 + 10 * (u)) -#define OMAP4_MAILBOX_IRQENABLE_CLR(u) (0x10c + 10 * (u)) +#define OMAP4_MAILBOX_IRQSTATUS(u) (0x104 + 0x10 * (u)) +#define OMAP4_MAILBOX_IRQENABLE(u) (0x108 + 0x10 * (u)) +#define OMAP4_MAILBOX_IRQENABLE_CLR(u) (0x10c + 0x10 * (u)) #define MAILBOX_IRQ_NEWMSG(m) (1 << (2 * (m))) #define MAILBOX_IRQ_NOTFULL(m) (1 << (2 * (m) + 1)) -- cgit v0.10.2 From def1dbbd588b5590436990cb3a480e164fc1e20f Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Tue, 8 May 2012 16:31:13 -0700 Subject: ARM: OMAP4: panda: add statics to remove warnings Add statics to board-omap4-panda.c's internal functions and data structures to remove sparse warnings: arch/arm/mach-omap2/board-omap4panda.c:234:29: warning: symbol 'omap_panda_wlan_data' was not declared. Should it be static? arch/arm/mach-omap2/board-omap4panda.c:441:24: warning: symbol 'omap4_panda_dvi_device' was not declared. Should it be static? arch/arm/mach-omap2/board-omap4panda.c:451:12: warning: symbol 'omap4_panda_dvi_init' was not declared. Should it be static? arch/arm/mach-omap2/board-omap4panda.c:512:13: warning: symbol 'omap4_panda_display_init' was not declared. Should it be static? Signed-off-by: Tomi Valkeinen Signed-off-by: Tony Lindgren diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index c148472..d53b073 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@ -231,7 +231,7 @@ static struct platform_device omap_vwlan_device = { }, }; -struct wl12xx_platform_data omap_panda_wlan_data __initdata = { +static struct wl12xx_platform_data omap_panda_wlan_data __initdata = { /* PANDA ref clock is 38.4 MHz */ .board_ref_clock = 2, }; @@ -389,7 +389,7 @@ static struct panel_dvi_platform_data omap4_dvi_panel = { .i2c_bus_num = 3, }; -struct omap_dss_device omap4_panda_dvi_device = { +static struct omap_dss_device omap4_panda_dvi_device = { .type = OMAP_DISPLAY_TYPE_DPI, .name = "dvi", .driver_name = "dvi", @@ -399,7 +399,7 @@ struct omap_dss_device omap4_panda_dvi_device = { .channel = OMAP_DSS_CHANNEL_LCD2, }; -int __init omap4_panda_dvi_init(void) +static int __init omap4_panda_dvi_init(void) { int r; @@ -460,7 +460,7 @@ static struct omap_dss_board_info omap4_panda_dss_data = { .default_device = &omap4_panda_dvi_device, }; -void __init omap4_panda_display_init(void) +static void __init omap4_panda_display_init(void) { int r; -- cgit v0.10.2 From 33ee0db53994a574b76e0261fc9a3daf71f4b0d7 Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Wed, 9 May 2012 09:45:02 -0700 Subject: ARM: OMAP4: Adding ID for OMAP4460 ES1.1 Signed-off-by: Chris Lalancette Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 0e79b7b..f139817 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c @@ -478,9 +478,12 @@ void __init omap4xxx_check_revision(void) case 0xb94e: switch (rev) { case 0: - default: omap_revision = OMAP4460_REV_ES1_0; break; + case 2: + default: + omap_revision = OMAP4460_REV_ES1_1; + break; } break; case 0xb975: diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index dc6a86b..4bdf14e 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h @@ -445,6 +445,7 @@ IS_OMAP_TYPE(3517, 0x3517) #define OMAP446X_CLASS 0x44600044 #define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) +#define OMAP4460_REV_ES1_1 (OMAP446X_CLASS | (0x11 << 8)) #define OMAP447X_CLASS 0x44700044 #define OMAP4470_REV_ES1_0 (OMAP447X_CLASS | (0x10 << 8)) -- cgit v0.10.2 From d723c17ab6e7f04f49cd715d5de4d4f6edf7b28a Mon Sep 17 00:00:00 2001 From: Grazvydas Ignotas Date: Sun, 6 May 2012 02:56:52 +0300 Subject: ARM: OMAP2+: remove incorrect irq_chip ack field Each irq_chip for the main interrupt controller has offsets set for irq masking registers, which added to respective base results in a pointer to appropriate hardware register. However this is not correct for INTC_CONTROL as there is only one INTC_CONTROL register. This does not cause problems because generic ack code is never called, but remove this assignment to avoid confusion. Signed-off-by: Grazvydas Ignotas Signed-off-by: Tony Lindgren diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 65f0d257..c11e8a8 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c @@ -149,7 +149,6 @@ omap_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num) ct->chip.irq_mask = irq_gc_mask_disable_reg; ct->chip.irq_unmask = irq_gc_unmask_enable_reg; - ct->regs.ack = INTC_CONTROL; ct->regs.enable = INTC_MIR_CLEAR0; ct->regs.disable = INTC_MIR_SET0; irq_setup_generic_chip(gc, IRQ_MSK(num), IRQ_GC_INIT_MASK_CACHE, -- cgit v0.10.2 From 0d09a957cb92725ddde3f70dd1e4d12281e33a25 Mon Sep 17 00:00:00 2001 From: Kevin Hilman Date: Tue, 8 May 2012 15:02:54 -0700 Subject: ARM: OMAP2+: INTC: fix Kconfig option for TI81XX The INTC core is using a Kconfig option for TI816x which doesn't exist. Convert it to use TI81XX. Cc: Hemant Pedanekar Signed-off-by: Kevin Hilman Acked-by: Vaibhav Hiremath Signed-off-by: Tony Lindgren diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index c11e8a8..7f47e3f 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c @@ -230,7 +230,7 @@ static inline void omap_intc_handle_irq(void __iomem *base_addr, struct pt_regs goto out; irqnr = readl_relaxed(base_addr + 0xd8); -#ifdef CONFIG_SOC_OMAPTI816X +#ifdef CONFIG_SOC_OMAPTI81XX if (irqnr) goto out; irqnr = readl_relaxed(base_addr + 0xf8); -- cgit v0.10.2 From b2f44dc29bfab77b10f3a709f14677f51ce3a4cd Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Wed, 9 May 2012 08:10:42 -0700 Subject: ARM: OMAP: igep0020: Specify the VPLL2 regulator unconditionally The supply is connected to the DSS DO-D5 pins and is thus needed for both serial and parallel display interfaces on the igep0030 as well as the igep0020. If the igep0030 module isn't connected to a display, no DSI or DPI display will be specified in board code, and the DSS driver won't enable to VPLL2 regulator anyway. Signed-off-by: Laurent Pinchart Acked-by: Enric Balletbo i Serra Tested-by: Enric Balletbo i Serra Signed-off-by: Tony Lindgren diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 930c0d3..8f67861 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c @@ -540,7 +540,10 @@ static void __init igep_i2c_init(void) { int ret; - omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_USB, 0); + omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_USB, + TWL_COMMON_REGULATOR_VPLL2); + igep_twldata.vpll2->constraints.apply_uV = true; + igep_twldata.vpll2->constraints.name = "VDVI"; if (machine_is_igep0020()) { /* @@ -554,10 +557,7 @@ static void __init igep_i2c_init(void) igep_twldata.keypad = &igep2_keypad_pdata; /* Get common pmic data */ - omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_AUDIO, - TWL_COMMON_REGULATOR_VPLL2); - igep_twldata.vpll2->constraints.apply_uV = true; - igep_twldata.vpll2->constraints.name = "VDVI"; + omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_AUDIO, 0); } omap3_pmic_init("twl4030", &igep_twldata); -- cgit v0.10.2 From 74c437532b8b5db53509963ec38e8424c56ff6f4 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Fri, 20 Apr 2012 17:37:58 +0000 Subject: ARM: spear6xx: remove board selection options There are no board specific configurations that need user intervention, so just make MACH_SPEAR600 the silent default for ARCH_SPEAR6XX to prevent users from turning it off, which would result in a build error. Signed-off-by: Arnd Bergmann Reported-by: Paul Gortmaker Acked-by: Viresh Kumar diff --git a/arch/arm/mach-spear6xx/Kconfig b/arch/arm/mach-spear6xx/Kconfig index fbe298b..339f397 100644 --- a/arch/arm/mach-spear6xx/Kconfig +++ b/arch/arm/mach-spear6xx/Kconfig @@ -2,21 +2,9 @@ # SPEAr6XX Machine configuration file # -if ARCH_SPEAR6XX - -menu "SPEAr6xx Implementations" -config BOARD_SPEAR600_DT - bool "SPEAr600 generic board configured via device-tree" - select MACH_SPEAR600 +config MACH_SPEAR600 + def_bool y + depends on ARCH_SPEAR6XX select USE_OF help Supports ST SPEAr600 boards configured via the device-tree - -endmenu - -config MACH_SPEAR600 - bool "SPEAr600" - help - Supports ST SPEAr600 Machine - -endif #ARCH_SPEAR6XX -- cgit v0.10.2