@@ -745,6 +781,11 @@ static int omap2_mcspi_setup_transfer(struct
spi_device *spi,
mcspi = spi_master_get_devdata(spi->master);
spi_cntrl = mcspi->master;
+ if (!cd && spi->dev.of_node) {
+ cd = omap2_mcspi_get_slave_ctrldata(spi);
> + spi->controller_data = cd;
Here you call omap2_mcspi_get_slave_ctrldata function that allocate
memory for cd structure, but this memory never freed.
Also, why do you read DT data in omap2_mcspi_setup_transfer function?
Under certain conditions the omap2_mcspi_setup_transfer function may be
calling for each transfer and each call it will check (!cd &&
spi->dev.of_node) condition.
Consider to move DT data read code from omap2_mcspi_setup_transfer to
omap2_mcspi_setup function and free spi->controller_data pointer in
omap2_mcspi_cleanup function.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html