Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de923430 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

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: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarSekhar Nori <nsekhar@ti.com>
Cc: Kevin Hilman <khilman@ti.com>
Cc: Andrey Porodko <panda@chelcom.ru>
parent 15b5eb2d
Loading
Loading
Loading
Loading
+0 −39
Original line number Original line Diff line number Diff line
@@ -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);