aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/dma/mv_xor.c5
-rw-r--r--drivers/dma/mv_xor.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index ec741b4607e2..d48245c0b0b0 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -1082,6 +1082,8 @@ static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan)
1082 list_del(&chan->device_node); 1082 list_del(&chan->device_node);
1083 } 1083 }
1084 1084
1085 free_irq(mv_chan->irq, mv_chan);
1086
1085 return 0; 1087 return 0;
1086} 1088}
1087 1089
@@ -1101,6 +1103,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
1101 } 1103 }
1102 1104
1103 mv_chan->idx = idx; 1105 mv_chan->idx = idx;
1106 mv_chan->irq = irq;
1104 1107
1105 dma_dev = &mv_chan->dmadev; 1108 dma_dev = &mv_chan->dmadev;
1106 1109
@@ -1147,7 +1150,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
1147 /* clear errors before enabling interrupts */ 1150 /* clear errors before enabling interrupts */
1148 mv_xor_device_clear_err_status(mv_chan); 1151 mv_xor_device_clear_err_status(mv_chan);
1149 1152
1150 ret = devm_request_irq(&pdev->dev, irq, 1153 ret = devm_request_irq(&pdev->dev, mv_chan->irq,
1151 mv_xor_interrupt_handler, 1154 mv_xor_interrupt_handler,
1152 0, dev_name(&pdev->dev), mv_chan); 1155 0, dev_name(&pdev->dev), mv_chan);
1153 if (ret) 1156 if (ret)
diff --git a/drivers/dma/mv_xor.h b/drivers/dma/mv_xor.h
index 698b4487b348..17043287b71a 100644
--- a/drivers/dma/mv_xor.h
+++ b/drivers/dma/mv_xor.h
@@ -81,6 +81,7 @@ struct mv_xor_chan {
81 spinlock_t lock; /* protects the descriptor slot pool */ 81 spinlock_t lock; /* protects the descriptor slot pool */
82 void __iomem *mmr_base; 82 void __iomem *mmr_base;
83 unsigned int idx; 83 unsigned int idx;
84 int irq;
84 enum dma_transaction_type current_type; 85 enum dma_transaction_type current_type;
85 struct list_head chain; 86 struct list_head chain;
86 struct list_head completed_slots; 87 struct list_head completed_slots;