Hello Axel, On Tue, Mar 11, 2014 at 06:33:03PM +0800, Axel Lin wrote: > 2014-03-11 17:09 GMT+08:00 Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>: > > On Mon, Mar 10, 2014 at 08:01:45AM +0800, Axel Lin wrote: > >> diff --git a/drivers/spi/spi-efm32.c b/drivers/spi/spi-efm32.c > >> index f53bbea..26e0362 100644 > >> --- a/drivers/spi/spi-efm32.c > >> +++ b/drivers/spi/spi-efm32.c > >> @@ -318,9 +315,14 @@ static int efm32_spi_probe(struct platform_device *pdev) > >> int ret; > >> struct spi_master *master; > >> struct device_node *np = pdev->dev.of_node; > >> - unsigned int num_cs, i; > >> + int num_cs, i; > >> + > >> + if (!np) > >> + return -EINVAL; > >> > >> num_cs = of_gpio_named_count(np, "cs-gpios"); > >> + if (num_cs < 0) > >> + return num_cs; > > This wasn't checked before and doesn't fit into the "cleanup non-DT > > paths"-category. Maybe note that in the commit log? > Ok, will update commit log in v2. > > > Also did you change the type of i on purpose? > It's a "doesn't matter" case to me. > If you really like to keep i as unsigned int, I can leave it as > unsigned int in v2. I'd always use an unsigned type for it, but I don't care much. > >> master = spi_alloc_master(&pdev->dev, > >> sizeof(*ddata) + num_cs * sizeof(unsigned)); > >> @@ -412,23 +414,7 @@ static int efm32_spi_probe(struct platform_device *pdev) > >> goto err; > >> } > >> > >> - ret = efm32_spi_probe_dt(pdev, master, ddata); > >> - if (ret > 0) { > >> - /* not created by device tree */ > >> - const struct efm32_spi_pdata *pdata = > >> - dev_get_platdata(&pdev->dev); > >> - > >> - if (pdata) > >> - ddata->pdata = *pdata; > >> - else > >> - ddata->pdata.location = > >> - efm32_spi_get_configured_location(ddata); > >> - > >> - master->bus_num = pdev->id; > >> - > >> - } else if (ret < 0) { > >> - goto err_disable_clk; > >> - } > >> + efm32_spi_probe_dt(pdev, master, ddata); > > This must still be: > efm32_spi_probe_dt() always return 0, why *must* check the return value here? Then also change efm32_spi_probe_dt to return void, or now that platform device support is gone, inline it into efm32_spi_probe. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html