diff mbox

[3/3] mtd: nand: omap2: Remove omap_nand_platform_data

Message ID 20170221094616.qtnt7qwm6lbxu65k@lenoch (mailing list archive)
State New, archived
Headers show

Commit Message

Ladislav Michl Feb. 21, 2017, 9:46 a.m. UTC
As driver is now configured using DT, omap_nand_platform_data structure
is no longer needed.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
---
 drivers/mtd/nand/omap2.c                     | 40 +++++++---------------------
 include/linux/platform_data/mtd-nand-omap2.h | 17 ------------
 2 files changed, 10 insertions(+), 47 deletions(-)

Comments

Roger Quadros Feb. 21, 2017, 1:10 p.m. UTC | #1
Hi,

On 21/02/17 11:46, Ladislav Michl wrote:
> As driver is now configured using DT, omap_nand_platform_data structure
> is no longer needed.
> 
> Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
> ---
>  drivers/mtd/nand/omap2.c                     | 40 +++++++---------------------
>  include/linux/platform_data/mtd-nand-omap2.h | 17 ------------
>  2 files changed, 10 insertions(+), 47 deletions(-)
> 
> diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
> index 2a52101120d4..7161f96e3c7d 100644
> --- a/drivers/mtd/nand/omap2.c
> +++ b/drivers/mtd/nand/omap2.c
> @@ -1588,8 +1588,7 @@ static bool is_elm_present(struct omap_nand_info *info,
>  	return true;
>  }
>  
> -static bool omap2_nand_ecc_check(struct omap_nand_info *info,
> -				 struct omap_nand_platform_data	*pdata)
> +static bool omap2_nand_ecc_check(struct omap_nand_info *info)
>  {
>  	bool ecc_needs_bch, ecc_needs_omap_bch, ecc_needs_elm;
>  
> @@ -1804,7 +1803,6 @@ static const struct mtd_ooblayout_ops omap_sw_ooblayout_ops = {
>  static int omap_nand_probe(struct platform_device *pdev)
>  {
>  	struct omap_nand_info		*info;
> -	struct omap_nand_platform_data	*pdata = NULL;
>  	struct mtd_info			*mtd;
>  	struct nand_chip		*nand_chip;
>  	int				err;
> @@ -1814,6 +1812,9 @@ static int omap_nand_probe(struct platform_device *pdev)
>  	int				min_oobbytes = BADBLOCK_MARKER_LENGTH;
>  	int				oobbytes_per_step;
>  
> +	if (!dev->of_node)
> +		return -EINVAL;
> +
>  	info = devm_kzalloc(&pdev->dev, sizeof(struct omap_nand_info),
>  				GFP_KERNEL);
>  	if (!info)
> @@ -1821,29 +1822,9 @@ static int omap_nand_probe(struct platform_device *pdev)
>  
>  	info->pdev = pdev;
>  
> -	if (dev->of_node) {
> -		if (omap_get_dt_info(dev, info))
> -			return -EINVAL;
> -	} else {
> -		pdata = dev_get_platdata(&pdev->dev);
> -		if (!pdata) {
> -			dev_err(&pdev->dev, "platform data missing\n");
> -			return -EINVAL;
> -		}
> -
> -		info->gpmc_cs = pdata->cs;
> -		info->reg = pdata->reg;
> -		info->ecc_opt = pdata->ecc_opt;
> -		if (pdata->dev_ready)
> -			dev_info(&pdev->dev, "pdata->dev_ready is deprecated\n");
> -
> -		info->xfer_type = pdata->xfer_type;
> -		info->devsize = pdata->devsize;
> -		info->elm_of_node = pdata->elm_of_node;
> -		info->flash_bbt = pdata->flash_bbt;
> -	}
> +	if (omap_get_dt_info(dev, info))
> +		return -EINVAL;
>  
> -	platform_set_drvdata(pdev, info);
>  	info->ops = gpmc_omap_get_nand_ops(&info->reg, info->gpmc_cs);
>  	if (!info->ops) {
>  		dev_err(&pdev->dev, "Failed to get GPMC->NAND interface\n");
> @@ -1993,7 +1974,7 @@ static int omap_nand_probe(struct platform_device *pdev)
>  		goto return_error;
>  	}
>  
> -	if (!omap2_nand_ecc_check(info, pdata)) {
> +	if (!omap2_nand_ecc_check(info)) {
>  		err = -EINVAL;
>  		goto return_error;
>  	}
> @@ -2158,10 +2139,9 @@ static int omap_nand_probe(struct platform_device *pdev)
>  	if (err)
>  		goto return_error;
>  
> -	if (dev->of_node)
> -		mtd_device_register(mtd, NULL, 0);
> -	else
> -		mtd_device_register(mtd, pdata->parts, pdata->nr_parts);
> +	err = mtd_device_register(mtd, NULL, 0);
> +	if (err)
> +		goto return_error;
>  
>  	platform_set_drvdata(pdev, mtd);
>  
> diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/platform_data/mtd-nand-omap2.h
> index 25e267f1970c..619df2431e75 100644
> --- a/include/linux/platform_data/mtd-nand-omap2.h
> +++ b/include/linux/platform_data/mtd-nand-omap2.h
> @@ -64,21 +64,4 @@ struct gpmc_nand_regs {
>  	void __iomem	*gpmc_bch_result5[GPMC_BCH_NUM_REMAINDER];
>  	void __iomem	*gpmc_bch_result6[GPMC_BCH_NUM_REMAINDER];
>  };
> -
> -struct omap_nand_platform_data {
> -	int			cs;
> -	struct mtd_partition	*parts;
> -	int			nr_parts;
> -	bool			flash_bbt;
> -	enum nand_io		xfer_type;
> -	int			devsize;
> -	enum omap_ecc           ecc_opt;
> -
> -	struct device_node	*elm_of_node;
> -
> -	/* deprecated */
> -	struct gpmc_nand_regs	reg;
> -	struct device_node	*of_node;
> -	bool			dev_ready;
> -};

Please don't delete this data structure yet as this patch has to go via
MTD tree and will result in build failure in linux-next if first patch
doesn't go in together with this patch.
Instead you can add a comment to mark it deprecated.

>  #endif
>
diff mbox

Patch

diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
index 2a52101120d4..7161f96e3c7d 100644
--- a/drivers/mtd/nand/omap2.c
+++ b/drivers/mtd/nand/omap2.c
@@ -1588,8 +1588,7 @@  static bool is_elm_present(struct omap_nand_info *info,
 	return true;
 }
 
-static bool omap2_nand_ecc_check(struct omap_nand_info *info,
-				 struct omap_nand_platform_data	*pdata)
+static bool omap2_nand_ecc_check(struct omap_nand_info *info)
 {
 	bool ecc_needs_bch, ecc_needs_omap_bch, ecc_needs_elm;
 
@@ -1804,7 +1803,6 @@  static const struct mtd_ooblayout_ops omap_sw_ooblayout_ops = {
 static int omap_nand_probe(struct platform_device *pdev)
 {
 	struct omap_nand_info		*info;
-	struct omap_nand_platform_data	*pdata = NULL;
 	struct mtd_info			*mtd;
 	struct nand_chip		*nand_chip;
 	int				err;
@@ -1814,6 +1812,9 @@  static int omap_nand_probe(struct platform_device *pdev)
 	int				min_oobbytes = BADBLOCK_MARKER_LENGTH;
 	int				oobbytes_per_step;
 
+	if (!dev->of_node)
+		return -EINVAL;
+
 	info = devm_kzalloc(&pdev->dev, sizeof(struct omap_nand_info),
 				GFP_KERNEL);
 	if (!info)
@@ -1821,29 +1822,9 @@  static int omap_nand_probe(struct platform_device *pdev)
 
 	info->pdev = pdev;
 
-	if (dev->of_node) {
-		if (omap_get_dt_info(dev, info))
-			return -EINVAL;
-	} else {
-		pdata = dev_get_platdata(&pdev->dev);
-		if (!pdata) {
-			dev_err(&pdev->dev, "platform data missing\n");
-			return -EINVAL;
-		}
-
-		info->gpmc_cs = pdata->cs;
-		info->reg = pdata->reg;
-		info->ecc_opt = pdata->ecc_opt;
-		if (pdata->dev_ready)
-			dev_info(&pdev->dev, "pdata->dev_ready is deprecated\n");
-
-		info->xfer_type = pdata->xfer_type;
-		info->devsize = pdata->devsize;
-		info->elm_of_node = pdata->elm_of_node;
-		info->flash_bbt = pdata->flash_bbt;
-	}
+	if (omap_get_dt_info(dev, info))
+		return -EINVAL;
 
-	platform_set_drvdata(pdev, info);
 	info->ops = gpmc_omap_get_nand_ops(&info->reg, info->gpmc_cs);
 	if (!info->ops) {
 		dev_err(&pdev->dev, "Failed to get GPMC->NAND interface\n");
@@ -1993,7 +1974,7 @@  static int omap_nand_probe(struct platform_device *pdev)
 		goto return_error;
 	}
 
-	if (!omap2_nand_ecc_check(info, pdata)) {
+	if (!omap2_nand_ecc_check(info)) {
 		err = -EINVAL;
 		goto return_error;
 	}
@@ -2158,10 +2139,9 @@  static int omap_nand_probe(struct platform_device *pdev)
 	if (err)
 		goto return_error;
 
-	if (dev->of_node)
-		mtd_device_register(mtd, NULL, 0);
-	else
-		mtd_device_register(mtd, pdata->parts, pdata->nr_parts);
+	err = mtd_device_register(mtd, NULL, 0);
+	if (err)
+		goto return_error;
 
 	platform_set_drvdata(pdev, mtd);
 
diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/platform_data/mtd-nand-omap2.h
index 25e267f1970c..619df2431e75 100644
--- a/include/linux/platform_data/mtd-nand-omap2.h
+++ b/include/linux/platform_data/mtd-nand-omap2.h
@@ -64,21 +64,4 @@  struct gpmc_nand_regs {
 	void __iomem	*gpmc_bch_result5[GPMC_BCH_NUM_REMAINDER];
 	void __iomem	*gpmc_bch_result6[GPMC_BCH_NUM_REMAINDER];
 };
-
-struct omap_nand_platform_data {
-	int			cs;
-	struct mtd_partition	*parts;
-	int			nr_parts;
-	bool			flash_bbt;
-	enum nand_io		xfer_type;
-	int			devsize;
-	enum omap_ecc           ecc_opt;
-
-	struct device_node	*elm_of_node;
-
-	/* deprecated */
-	struct gpmc_nand_regs	reg;
-	struct device_node	*of_node;
-	bool			dev_ready;
-};
 #endif