diff options
Diffstat (limited to 'arch/powerpc/kvm/mpic.c')
-rw-r--r-- | arch/powerpc/kvm/mpic.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/powerpc/kvm/mpic.c b/arch/powerpc/kvm/mpic.c index efbd9962a209..b68d0dc9479a 100644 --- a/arch/powerpc/kvm/mpic.c +++ b/arch/powerpc/kvm/mpic.c | |||
@@ -126,6 +126,8 @@ static int openpic_cpu_write_internal(void *opaque, gpa_t addr, | |||
126 | u32 val, int idx); | 126 | u32 val, int idx); |
127 | static int openpic_cpu_read_internal(void *opaque, gpa_t addr, | 127 | static int openpic_cpu_read_internal(void *opaque, gpa_t addr, |
128 | u32 *ptr, int idx); | 128 | u32 *ptr, int idx); |
129 | static inline void write_IRQreg_idr(struct openpic *opp, int n_IRQ, | ||
130 | uint32_t val); | ||
129 | 131 | ||
130 | enum irq_type { | 132 | enum irq_type { |
131 | IRQ_TYPE_NORMAL = 0, | 133 | IRQ_TYPE_NORMAL = 0, |
@@ -528,7 +530,6 @@ static void openpic_reset(struct openpic *opp) | |||
528 | /* Initialise IRQ sources */ | 530 | /* Initialise IRQ sources */ |
529 | for (i = 0; i < opp->max_irq; i++) { | 531 | for (i = 0; i < opp->max_irq; i++) { |
530 | opp->src[i].ivpr = opp->ivpr_reset; | 532 | opp->src[i].ivpr = opp->ivpr_reset; |
531 | opp->src[i].idr = opp->idr_reset; | ||
532 | 533 | ||
533 | switch (opp->src[i].type) { | 534 | switch (opp->src[i].type) { |
534 | case IRQ_TYPE_NORMAL: | 535 | case IRQ_TYPE_NORMAL: |
@@ -543,6 +544,8 @@ static void openpic_reset(struct openpic *opp) | |||
543 | case IRQ_TYPE_FSLSPECIAL: | 544 | case IRQ_TYPE_FSLSPECIAL: |
544 | break; | 545 | break; |
545 | } | 546 | } |
547 | |||
548 | write_IRQreg_idr(opp, i, opp->idr_reset); | ||
546 | } | 549 | } |
547 | /* Initialise IRQ destinations */ | 550 | /* Initialise IRQ destinations */ |
548 | for (i = 0; i < MAX_CPU; i++) { | 551 | for (i = 0; i < MAX_CPU; i++) { |