From 58c02416fe3104d9962cca95da06ac4975d3f57a Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Wed, 24 Jun 2020 22:08:55 -0400 Subject: [PATCH] Fix breakage due to nand_release changes on 4.9 Signed-off-by: Sasha Levin --- ...s-a-nand_chip-object-to-nand_release.patch | 98 +++++++++++++++++-- 1 file changed, 88 insertions(+), 10 deletions(-) diff --git a/queue-4.9/mtd-rawnand-pass-a-nand_chip-object-to-nand_release.patch b/queue-4.9/mtd-rawnand-pass-a-nand_chip-object-to-nand_release.patch index 597e22f7008..54430bd0381 100644 --- a/queue-4.9/mtd-rawnand-pass-a-nand_chip-object-to-nand_release.patch +++ b/queue-4.9/mtd-rawnand-pass-a-nand_chip-object-to-nand_release.patch @@ -1,4 +1,4 @@ -From 77a2a2c7f2371b690dffe12056c947a0270279ce Mon Sep 17 00:00:00 2001 +From c21bbd7a665f240da0ed7708f94846302b649956 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Thu, 6 Sep 2018 14:05:15 +0200 Subject: mtd: rawnand: Pass a nand_chip object to nand_release() @@ -17,8 +17,10 @@ Signed-off-by: Miquel Raynal Signed-off-by: Sasha Levin --- drivers/mtd/nand/ams-delta.c | 2 +- + drivers/mtd/nand/atmel_nand.c | 2 +- drivers/mtd/nand/au1550nd.c | 2 +- drivers/mtd/nand/bcm47xxnflash/main.c | 2 +- + drivers/mtd/nand/bf5xx_nand.c | 2 +- drivers/mtd/nand/brcmnand/brcmnand.c | 2 +- drivers/mtd/nand/cafe_nand.c | 2 +- drivers/mtd/nand/cmx270_nand.c | 2 +- @@ -34,10 +36,10 @@ Signed-off-by: Sasha Levin drivers/mtd/nand/gpio.c | 2 +- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 2 +- drivers/mtd/nand/hisi504_nand.c | 5 ++--- - drivers/mtd/nand/jz4740_nand.c | 2 +- + drivers/mtd/nand/jz4740_nand.c | 4 ++-- drivers/mtd/nand/jz4780_nand.c | 4 ++-- - drivers/mtd/nand/lpc32xx_mlc.c | 3 +-- - drivers/mtd/nand/lpc32xx_slc.c | 3 +-- + drivers/mtd/nand/lpc32xx_mlc.c | 5 ++--- + drivers/mtd/nand/lpc32xx_slc.c | 5 ++--- drivers/mtd/nand/mpc5121_nfc.c | 2 +- drivers/mtd/nand/mtk_nand.c | 4 ++-- drivers/mtd/nand/mxc_nand.c | 2 +- @@ -49,7 +51,8 @@ Signed-off-by: Sasha Levin drivers/mtd/nand/orion_nand.c | 5 ++--- drivers/mtd/nand/pasemi_nand.c | 2 +- drivers/mtd/nand/plat_nand.c | 4 ++-- - drivers/mtd/nand/qcom_nandc.c | 2 +- + drivers/mtd/nand/pxa3xx_nand.c | 2 +- + drivers/mtd/nand/qcom_nandc.c | 4 ++-- drivers/mtd/nand/r852.c | 4 ++-- drivers/mtd/nand/s3c2410.c | 2 +- drivers/mtd/nand/sh_flctl.c | 2 +- @@ -61,7 +64,7 @@ Signed-off-by: Sasha Levin drivers/mtd/nand/vf610_nfc.c | 2 +- drivers/mtd/nand/xway_nand.c | 4 ++-- include/linux/mtd/nand.h | 6 ++---- - 45 files changed, 63 insertions(+), 70 deletions(-) + 48 files changed, 70 insertions(+), 77 deletions(-) diff --git a/drivers/mtd/nand/ams-delta.c b/drivers/mtd/nand/ams-delta.c index 78e12cc8bac2f..02ec2d183607f 100644 @@ -76,6 +79,19 @@ index 78e12cc8bac2f..02ec2d183607f 100644 gpio_free_array(_mandatory_gpio, ARRAY_SIZE(_mandatory_gpio)); gpio_free(AMS_DELTA_GPIO_PIN_NAND_RB); +diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c +index 68b9160108c9f..45495bc1a70e2 100644 +--- a/drivers/mtd/nand/atmel_nand.c ++++ b/drivers/mtd/nand/atmel_nand.c +@@ -2336,7 +2336,7 @@ static int atmel_nand_remove(struct platform_device *pdev) + struct atmel_nand_host *host = platform_get_drvdata(pdev); + struct mtd_info *mtd = nand_to_mtd(&host->nand_chip); + +- nand_release(mtd); ++ nand_release(&host->nand_chip); + + atmel_nand_disable(host); + diff --git a/drivers/mtd/nand/au1550nd.c b/drivers/mtd/nand/au1550nd.c index 9bf6d9915694e..a0e7789131dfc 100644 --- a/drivers/mtd/nand/au1550nd.c @@ -102,6 +118,19 @@ index fb31429b70a9a..d796941608457 100644 return 0; } +diff --git a/drivers/mtd/nand/bf5xx_nand.c b/drivers/mtd/nand/bf5xx_nand.c +index 3962f55bd0349..020bb350a2db2 100644 +--- a/drivers/mtd/nand/bf5xx_nand.c ++++ b/drivers/mtd/nand/bf5xx_nand.c +@@ -688,7 +688,7 @@ static int bf5xx_nand_remove(struct platform_device *pdev) + * and their partitions, then go through freeing the + * resources used + */ +- nand_release(nand_to_mtd(&info->chip)); ++ nand_release(&info->chip); + + peripheral_free_list(bfin_nfc_pin_req); + bf5xx_nand_dma_remove(info); diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c index 1291492a1cef1..fbee81909d38a 100644 --- a/drivers/mtd/nand/brcmnand/brcmnand.c @@ -327,9 +356,18 @@ index 9432546f4cd47..6c96d9d29a310 100644 return 0; } diff --git a/drivers/mtd/nand/jz4740_nand.c b/drivers/mtd/nand/jz4740_nand.c -index 5551c36adbdf1..e664b2a0eeae0 100644 +index 5551c36adbdf1..6f323858d51a1 100644 --- a/drivers/mtd/nand/jz4740_nand.c +++ b/drivers/mtd/nand/jz4740_nand.c +@@ -499,7 +499,7 @@ static int jz_nand_probe(struct platform_device *pdev) + return 0; + + err_nand_release: +- nand_release(mtd); ++ nand_release(chip); + err_unclaim_banks: + while (chipnr--) { + unsigned char bank = nand->banks[chipnr]; @@ -520,7 +520,7 @@ static int jz_nand_remove(struct platform_device *pdev) struct jz_nand *nand = platform_get_drvdata(pdev); size_t i; @@ -362,9 +400,18 @@ index a39bb70175eea..e8aaf2543946c 100644 } } diff --git a/drivers/mtd/nand/lpc32xx_mlc.c b/drivers/mtd/nand/lpc32xx_mlc.c -index bc6e49af063a2..90e7742992404 100644 +index bc6e49af063a2..839f8f4ace9e6 100644 --- a/drivers/mtd/nand/lpc32xx_mlc.c +++ b/drivers/mtd/nand/lpc32xx_mlc.c +@@ -805,7 +805,7 @@ static int lpc32xx_nand_probe(struct platform_device *pdev) + if (!res) + return res; + +- nand_release(mtd); ++ nand_release(nand_chip); + + err_exit4: + free_irq(host->irq, host); @@ -828,9 +828,8 @@ static int lpc32xx_nand_probe(struct platform_device *pdev) static int lpc32xx_nand_remove(struct platform_device *pdev) { @@ -377,9 +424,18 @@ index bc6e49af063a2..90e7742992404 100644 if (use_dma) dma_release_channel(host->dma_chan); diff --git a/drivers/mtd/nand/lpc32xx_slc.c b/drivers/mtd/nand/lpc32xx_slc.c -index 8d3edc34958e7..05cbef16d6b50 100644 +index 8d3edc34958e7..0b5fa254ea60a 100644 --- a/drivers/mtd/nand/lpc32xx_slc.c +++ b/drivers/mtd/nand/lpc32xx_slc.c +@@ -940,7 +940,7 @@ static int lpc32xx_nand_probe(struct platform_device *pdev) + if (!res) + return res; + +- nand_release(mtd); ++ nand_release(chip); + + err_exit3: + dma_release_channel(host->dma_chan); @@ -959,9 +959,8 @@ static int lpc32xx_nand_remove(struct platform_device *pdev) { uint32_t tmp; @@ -580,10 +636,32 @@ index 415a53a0deeb3..245efb0f83e26 100644 if (pdata->ctrl.remove) pdata->ctrl.remove(pdev); +diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c +index 3b8911cd3a199..46f13f7e54da0 100644 +--- a/drivers/mtd/nand/pxa3xx_nand.c ++++ b/drivers/mtd/nand/pxa3xx_nand.c +@@ -1907,7 +1907,7 @@ static int pxa3xx_nand_remove(struct platform_device *pdev) + clk_disable_unprepare(info->clk); + + for (cs = 0; cs < pdata->num_cs; cs++) +- nand_release(nand_to_mtd(&info->host[cs]->chip)); ++ nand_release(&info->host[cs]->chip); + return 0; + } + diff --git a/drivers/mtd/nand/qcom_nandc.c b/drivers/mtd/nand/qcom_nandc.c -index 9f6c9a34b9eb6..4d9a3c90ab13b 100644 +index 9f6c9a34b9eb6..1594770987fdb 100644 --- a/drivers/mtd/nand/qcom_nandc.c +++ b/drivers/mtd/nand/qcom_nandc.c +@@ -2163,7 +2163,7 @@ static int qcom_nandc_probe(struct platform_device *pdev) + + err_cs_init: + list_for_each_entry(host, &nandc->host_list, node) +- nand_release(nand_to_mtd(&host->chip)); ++ nand_release(&host->chip); + err_setup: + clk_disable_unprepare(nandc->aon_clk); + err_aon_clk: @@ -2180,7 +2180,7 @@ static int qcom_nandc_remove(struct platform_device *pdev) struct qcom_nand_host *host; -- 2.47.3