diff options
Diffstat (limited to 'drivers/mtd/nand/raw/qcom_nandc.c')
| -rw-r--r-- | drivers/mtd/nand/raw/qcom_nandc.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c index 46c62a31fa46..920e7375084f 100644 --- a/drivers/mtd/nand/raw/qcom_nandc.c +++ b/drivers/mtd/nand/raw/qcom_nandc.c | |||
| @@ -2833,6 +2833,16 @@ static int qcom_nand_host_init_and_register(struct qcom_nand_controller *nandc, | |||
| 2833 | if (ret) | 2833 | if (ret) |
| 2834 | return ret; | 2834 | return ret; |
| 2835 | 2835 | ||
| 2836 | if (nandc->props->is_bam) { | ||
| 2837 | free_bam_transaction(nandc); | ||
| 2838 | nandc->bam_txn = alloc_bam_transaction(nandc); | ||
| 2839 | if (!nandc->bam_txn) { | ||
| 2840 | dev_err(nandc->dev, | ||
| 2841 | "failed to allocate bam transaction\n"); | ||
| 2842 | return -ENOMEM; | ||
| 2843 | } | ||
| 2844 | } | ||
| 2845 | |||
| 2836 | ret = mtd_device_register(mtd, NULL, 0); | 2846 | ret = mtd_device_register(mtd, NULL, 0); |
| 2837 | if (ret) | 2847 | if (ret) |
| 2838 | nand_cleanup(chip); | 2848 | nand_cleanup(chip); |
| @@ -2847,16 +2857,6 @@ static int qcom_probe_nand_devices(struct qcom_nand_controller *nandc) | |||
| 2847 | struct qcom_nand_host *host; | 2857 | struct qcom_nand_host *host; |
| 2848 | int ret; | 2858 | int ret; |
| 2849 | 2859 | ||
| 2850 | if (nandc->props->is_bam) { | ||
| 2851 | free_bam_transaction(nandc); | ||
| 2852 | nandc->bam_txn = alloc_bam_transaction(nandc); | ||
| 2853 | if (!nandc->bam_txn) { | ||
| 2854 | dev_err(nandc->dev, | ||
| 2855 | "failed to allocate bam transaction\n"); | ||
| 2856 | return -ENOMEM; | ||
| 2857 | } | ||
| 2858 | } | ||
| 2859 | |||
| 2860 | for_each_available_child_of_node(dn, child) { | 2860 | for_each_available_child_of_node(dn, child) { |
| 2861 | host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); | 2861 | host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); |
| 2862 | if (!host) { | 2862 | if (!host) { |
