X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=target%2Flinux%2Fath79%2Ffiles%2Fdrivers%2Fmtd%2Fnand%2Fraw%2Fnand_rb4xx.c;fp=target%2Flinux%2Fath79%2Ffiles%2Fdrivers%2Fmtd%2Fnand%2Fraw%2Fnand_rb4xx.c;h=22e2660b38f91ca280debb78c4cfd10f944fdd72;hp=50bd69f6a410d465f1ab0963ca87607e416452e1;hb=f724a583dcf70bc02bca1750bfb4a5195130b141;hpb=07e5e03711d55f94db738446ef9eddc8163b53a6 diff --git a/target/linux/ath79/files/drivers/mtd/nand/raw/nand_rb4xx.c b/target/linux/ath79/files/drivers/mtd/nand/raw/nand_rb4xx.c index 50bd69f6a4..22e2660b38 100644 --- a/target/linux/ath79/files/drivers/mtd/nand/raw/nand_rb4xx.c +++ b/target/linux/ath79/files/drivers/mtd/nand/raw/nand_rb4xx.c @@ -188,10 +188,15 @@ static int rb4xx_nand_probe(struct platform_device *pdev) if (mtd->writesize == 512) mtd_set_ooblayout(mtd, &rb4xx_nand_ecclayout_ops); - nand->chip.ecc.mode = NAND_ECC_SOFT; - nand->chip.ecc.algo = NAND_ECC_HAMMING; - nand->chip.options = NAND_NO_SUBPAGE_WRITE; - nand->chip.priv = nand; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) + nand->chip.ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT; + nand->chip.ecc.algo = NAND_ECC_ALGO_HAMMING; +#else + nand->chip.ecc.mode = NAND_ECC_SOFT; + nand->chip.ecc.algo = NAND_ECC_HAMMING; +#endif + nand->chip.options = NAND_NO_SUBPAGE_WRITE; + nand->chip.priv = nand; nand->chip.legacy.read_byte = rb4xx_nand_read_byte; nand->chip.legacy.write_buf = rb4xx_nand_write_buf; @@ -206,7 +211,12 @@ static int rb4xx_nand_probe(struct platform_device *pdev) ret = mtd_device_register(mtd, NULL, 0); if (ret) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0) + mtd_device_unregister(nand_to_mtd(&nand->chip)); + nand_cleanup(&nand->chip); +#else nand_release(&nand->chip); +#endif return ret; } @@ -217,7 +227,12 @@ static int rb4xx_nand_remove(struct platform_device *pdev) { struct rb4xx_nand *nand = platform_get_drvdata(pdev); - nand_release(&nand->chip); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0) + mtd_device_unregister(nand_to_mtd(&nand->chip)); + nand_cleanup(&nand->chip); +#else + nand_release(&nand->chip); +#endif return 0; }