From 4a6e6a5eb3f8309273b389ca74538f65af203f6c Mon Sep 17 00:00:00 2001 From: Murali Karicheri Date: Wed, 4 Apr 2012 10:38:37 -0400 Subject: [PATCH 1/4] 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 --- arch/arm/mach-davinci/include/mach/psc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-davinci/include/mach/psc.h b/arch/arm/mach-davinci/include/mach/psc.h index 8bc3fc256171..405318e35bf6 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__ 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: [PATCH 2/4] 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 --- arch/arm/mach-davinci/davinci.h | 4 ++-- arch/arm/mach-davinci/devices-da8xx.c | 2 +- arch/arm/mach-davinci/dm355.c | 2 +- arch/arm/mach-davinci/dm365.c | 2 +- arch/arm/mach-davinci/include/mach/da8xx.h | 3 ++- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-davinci/davinci.h b/arch/arm/mach-davinci/davinci.h index 3e519dad5bb9..8db0fc6809dd 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 42dbf3dc11ab..d1624a315c9a 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 fd3d09aa6cde..678cd99b7336 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 1a2e953082b3..a50d49de1883 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 ee3461d7ec1b..a2f1f274f189 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); 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: [PATCH 3/4] 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 --- arch/arm/mach-davinci/board-da850-evm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index a70de24d1cbc..09f61073c8d9 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, }; From 98e3b3393ff25f79399dd7cdcf6450788788acae Mon Sep 17 00:00:00 2001 From: Akinobu Mita Date: Wed, 11 Apr 2012 20:36:53 +0900 Subject: [PATCH 4/4] 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 --- arch/arm/mach-davinci/dma.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c index fd33919c95d4..95ce019c9b98 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;