|
@@ -849,7 +849,9 @@ int gpmi_send_command(struct gpmi_nand_data *this)
|
|
|
sg_init_one(sgl, this->cmd_buffer, this->command_length);
|
|
|
dma_map_sg(this->dev, sgl, 1, DMA_TO_DEVICE);
|
|
|
desc = channel->device->device_prep_slave_sg(channel,
|
|
|
- sgl, 1, DMA_MEM_TO_DEV, 1);
|
|
|
+ sgl, 1, DMA_MEM_TO_DEV,
|
|
|
+ DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
|
|
+
|
|
|
if (!desc) {
|
|
|
pr_err("step 2 error\n");
|
|
|
return -1;
|
|
@@ -891,7 +893,8 @@ int gpmi_send_data(struct gpmi_nand_data *this)
|
|
|
/* [2] send DMA request */
|
|
|
prepare_data_dma(this, DMA_TO_DEVICE);
|
|
|
desc = channel->device->device_prep_slave_sg(channel, &this->data_sgl,
|
|
|
- 1, DMA_MEM_TO_DEV, 1);
|
|
|
+ 1, DMA_MEM_TO_DEV,
|
|
|
+ DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
|
|
if (!desc) {
|
|
|
pr_err("step 2 error\n");
|
|
|
return -1;
|
|
@@ -927,7 +930,8 @@ int gpmi_read_data(struct gpmi_nand_data *this)
|
|
|
/* [2] : send DMA request */
|
|
|
prepare_data_dma(this, DMA_FROM_DEVICE);
|
|
|
desc = channel->device->device_prep_slave_sg(channel, &this->data_sgl,
|
|
|
- 1, DMA_DEV_TO_MEM, 1);
|
|
|
+ 1, DMA_DEV_TO_MEM,
|
|
|
+ DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
|
|
if (!desc) {
|
|
|
pr_err("step 2 error\n");
|
|
|
return -1;
|
|
@@ -974,7 +978,8 @@ int gpmi_send_page(struct gpmi_nand_data *this,
|
|
|
|
|
|
desc = channel->device->device_prep_slave_sg(channel,
|
|
|
(struct scatterlist *)pio,
|
|
|
- ARRAY_SIZE(pio), DMA_TRANS_NONE, 0);
|
|
|
+ ARRAY_SIZE(pio), DMA_TRANS_NONE,
|
|
|
+ DMA_CTRL_ACK);
|
|
|
if (!desc) {
|
|
|
pr_err("step 2 error\n");
|
|
|
return -1;
|
|
@@ -1038,7 +1043,8 @@ int gpmi_read_page(struct gpmi_nand_data *this,
|
|
|
pio[5] = auxiliary;
|
|
|
desc = channel->device->device_prep_slave_sg(channel,
|
|
|
(struct scatterlist *)pio,
|
|
|
- ARRAY_SIZE(pio), DMA_TRANS_NONE, 1);
|
|
|
+ ARRAY_SIZE(pio), DMA_TRANS_NONE,
|
|
|
+ DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
|
|
if (!desc) {
|
|
|
pr_err("step 2 error\n");
|
|
|
return -1;
|
|
@@ -1057,7 +1063,8 @@ int gpmi_read_page(struct gpmi_nand_data *this,
|
|
|
pio[1] = 0;
|
|
|
desc = channel->device->device_prep_slave_sg(channel,
|
|
|
(struct scatterlist *)pio, 2,
|
|
|
- DMA_TRANS_NONE, 1);
|
|
|
+ DMA_TRANS_NONE,
|
|
|
+ DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
|
|
if (!desc) {
|
|
|
pr_err("step 3 error\n");
|
|
|
return -1;
|