提交 96d7ddde 编写于 作者: E Edgar E. Iglesias

etrax: Don't keep the passed irq pointer.

Copy passed irq object at channel connect.
Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
上级 678fdca8
...@@ -165,7 +165,7 @@ enum dma_ch_state ...@@ -165,7 +165,7 @@ enum dma_ch_state
struct fs_dma_channel struct fs_dma_channel
{ {
qemu_irq *irq; qemu_irq irq;
struct etraxfs_dma_client *client; struct etraxfs_dma_client *client;
/* Internal status. */ /* Internal status. */
...@@ -392,7 +392,7 @@ static void channel_update_irq(struct fs_dma_ctrl *ctrl, int c) ...@@ -392,7 +392,7 @@ static void channel_update_irq(struct fs_dma_ctrl *ctrl, int c)
c, c,
ctrl->channels[c].regs[R_MASKED_INTR])); ctrl->channels[c].regs[R_MASKED_INTR]));
qemu_set_irq(ctrl->channels[c].irq[0], qemu_set_irq(ctrl->channels[c].irq,
!!ctrl->channels[c].regs[R_MASKED_INTR]); !!ctrl->channels[c].regs[R_MASKED_INTR]);
} }
...@@ -716,7 +716,7 @@ int etraxfs_dmac_input(struct etraxfs_dma_client *client, ...@@ -716,7 +716,7 @@ int etraxfs_dmac_input(struct etraxfs_dma_client *client,
void etraxfs_dmac_connect(void *opaque, int c, qemu_irq *line, int input) void etraxfs_dmac_connect(void *opaque, int c, qemu_irq *line, int input)
{ {
struct fs_dma_ctrl *ctrl = opaque; struct fs_dma_ctrl *ctrl = opaque;
ctrl->channels[c].irq = line; ctrl->channels[c].irq = *line;
ctrl->channels[c].input = input; ctrl->channels[c].input = input;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册