--- a/drivers/mtd/nand/qpic_common.c +++ b/drivers/mtd/nand/qpic_common.c @@ -82,7 +82,15 @@ void qcom_clear_bam_transaction(struct q if (!nandc->props->supports_bam) return; - memset(&bam_txn->bam_ce_pos, 0, sizeof(u32) * 8); + // memset(&bam_txn->bam_ce_pos, 0, sizeof(u32) * 8); + bam_txn->bam_ce_pos = 0; + bam_txn->bam_ce_start = 0; + bam_txn->cmd_sgl_pos = 0; + bam_txn->cmd_sgl_start = 0; + bam_txn->tx_sgl_pos = 0; + bam_txn->tx_sgl_start = 0; + bam_txn->rx_sgl_pos = 0; + bam_txn->rx_sgl_start = 0; bam_txn->last_data_desc = NULL; sg_init_table(bam_txn->cmd_sgl, nandc->max_cwperpage * --- a/drivers/spi/spi-qpic-snand.c +++ b/drivers/spi/spi-qpic-snand.c @@ -1624,7 +1624,7 @@ static struct platform_driver qcom_spi_d .of_match_table = qcom_snandc_of_match, }, .probe = qcom_spi_probe, - .remove = qcom_spi_remove, + .remove_new = qcom_spi_remove, }; module_platform_driver(qcom_spi_driver);