Re: [PATCH 1/1] mtd: msm_nand: Add initial msm nand driver support.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Dec 31, 2010 at 02:24:40PM +0530, Murali Nalajala wrote:
> +	info->msm_nand.dev = &pdev->dev;
> +
> +	init_waitqueue_head(&info->msm_nand.wait_queue);
> +
> +	info->msm_nand.dma_channel = res->start;
> +	pr_debug("dma channel 0x%x\n", info->msm_nand.dma_channel);
> +	info->msm_nand.dma_buffer =
> +		dma_alloc_coherent(NULL, MSM_NAND_DMA_BUFFER_SIZE,
> +				   &info->msm_nand.dma_addr, GFP_KERNEL);

Haven't you got a struct device for this (&pdev->dev) ?

> +	if (info->msm_nand.dma_buffer == NULL) {
> +		err = -ENOMEM;
> +		goto out_free_info;
> +	}
> +
> +	pr_debug("allocated dma buffer at %p, dma_addr %x\n",
> +		info->msm_nand.dma_buffer, info->msm_nand.dma_addr);
> +
> +	info->mtd.name = dev_name(&pdev->dev);
> +	info->mtd.priv = &info->msm_nand;
> +	info->mtd.owner = THIS_MODULE;
> +
> +	if (msm_nand_scan(&info->mtd, 1)) {
> +		err = -ENXIO;
> +		goto out_free_dma_buffer;
> +	}
> +
> +#ifdef CONFIG_MTD_PARTITIONS
> +	err = parse_mtd_partitions(&info->mtd, part_probes, &info->parts, 0);
> +	if (err > 0)
> +		err = add_mtd_partitions(&info->mtd, info->parts, err);
> +	else if (err <= 0 && pdata && pdata->parts)
> +		err = add_mtd_partitions(&info->mtd, pdata->parts,
> +					 pdata->nr_parts);
> +	else
> +#endif
> +		err = add_mtd_device(&info->mtd);
> +
> +	if (err != 0)
> +		goto out_free_dma_buffer;
> +
> +	platform_set_drvdata(pdev, info);
> +
> +	return 0;
> +
> +out_free_dma_buffer:
> +	dma_free_coherent(NULL, MSM_NAND_DMA_BUFFER_SIZE,

Ditto.

> +			  info->msm_nand.dma_buffer, info->msm_nand.dma_addr);
> +out_free_info:
> +	kfree(info);
> +
> +	return err;
> +}
> +
> +static int __devexit msm_nand_remove(struct platform_device *pdev)
> +{
> +	struct msm_nand_info *info = platform_get_drvdata(pdev);
> +
> +	platform_set_drvdata(pdev, NULL);
> +
> +#ifdef CONFIG_MTD_PARTITIONS
> +	if (info->parts)
> +		del_mtd_partitions(&info->mtd);
> +	else
> +#endif
> +		del_mtd_device(&info->mtd);
> +
> +	msm_nand_release(&info->mtd);
> +	dma_free_coherent(NULL, MSM_NAND_DMA_BUFFER_SIZE,

Ditto.
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux