ARM: davinci: remove broken ntosd2_init_i2c
ntosd2_init_i2c walks the ntosd2_i2c_info array, which it expects to be populated with at least one member. gcc correctly warns about the out-of-bounds access here. Since this can not possibly work, it's better to disable i2c support entirely on this board. Without this patch, building davinci_all_defconfig results in: arch/arm/mach-davinci/board-neuros-osd2.c: In function 'davinci_ntosd2_init': arch/arm/mach-davinci/board-neuros-osd2.c:187:20: warning: array subscript is above array bounds [-Warray-bounds] Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Sekhar Nori <nsekhar@ti.com> Cc: Kevin Hilman <khilman@ti.com> Cc: Andrey Porodko <panda@chelcom.ru>
This commit is contained in:
@@ -162,38 +162,6 @@ static void __init davinci_ntosd2_map_io(void)
|
|||||||
dm644x_init();
|
dm644x_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
I2C initialization
|
|
||||||
*/
|
|
||||||
static struct davinci_i2c_platform_data ntosd2_i2c_pdata = {
|
|
||||||
.bus_freq = 20 /* kHz */,
|
|
||||||
.bus_delay = 100 /* usec */,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct i2c_board_info __initdata ntosd2_i2c_info[] = {
|
|
||||||
};
|
|
||||||
|
|
||||||
static int ntosd2_init_i2c(void)
|
|
||||||
{
|
|
||||||
int status;
|
|
||||||
|
|
||||||
davinci_init_i2c(&ntosd2_i2c_pdata);
|
|
||||||
status = gpio_request(NTOSD2_MSP430_IRQ, ntosd2_i2c_info[0].type);
|
|
||||||
if (status == 0) {
|
|
||||||
status = gpio_direction_input(NTOSD2_MSP430_IRQ);
|
|
||||||
if (status == 0) {
|
|
||||||
status = gpio_to_irq(NTOSD2_MSP430_IRQ);
|
|
||||||
if (status > 0) {
|
|
||||||
ntosd2_i2c_info[0].irq = status;
|
|
||||||
i2c_register_board_info(1,
|
|
||||||
ntosd2_i2c_info,
|
|
||||||
ARRAY_SIZE(ntosd2_i2c_info));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct davinci_mmc_config davinci_ntosd2_mmc_config = {
|
static struct davinci_mmc_config davinci_ntosd2_mmc_config = {
|
||||||
.wires = 4,
|
.wires = 4,
|
||||||
.version = MMC_CTLR_VERSION_1
|
.version = MMC_CTLR_VERSION_1
|
||||||
@@ -218,7 +186,6 @@ static __init void davinci_ntosd2_init(void)
|
|||||||
{
|
{
|
||||||
struct clk *aemif_clk;
|
struct clk *aemif_clk;
|
||||||
struct davinci_soc_info *soc_info = &davinci_soc_info;
|
struct davinci_soc_info *soc_info = &davinci_soc_info;
|
||||||
int status;
|
|
||||||
|
|
||||||
aemif_clk = clk_get(NULL, "aemif");
|
aemif_clk = clk_get(NULL, "aemif");
|
||||||
clk_enable(aemif_clk);
|
clk_enable(aemif_clk);
|
||||||
@@ -242,12 +209,6 @@ static __init void davinci_ntosd2_init(void)
|
|||||||
platform_add_devices(davinci_ntosd2_devices,
|
platform_add_devices(davinci_ntosd2_devices,
|
||||||
ARRAY_SIZE(davinci_ntosd2_devices));
|
ARRAY_SIZE(davinci_ntosd2_devices));
|
||||||
|
|
||||||
/* Initialize I2C interface specific for this board */
|
|
||||||
status = ntosd2_init_i2c();
|
|
||||||
if (status < 0)
|
|
||||||
pr_warning("davinci_ntosd2_init: msp430 irq setup failed:"
|
|
||||||
" %d\n", status);
|
|
||||||
|
|
||||||
davinci_serial_init(&uart_config);
|
davinci_serial_init(&uart_config);
|
||||||
dm644x_init_asp(&dm644x_ntosd2_snd_data);
|
dm644x_init_asp(&dm644x_ntosd2_snd_data);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user