diff options
Diffstat (limited to 'arch/powerpc/sysdev/fsl_msi.c')
-rw-r--r-- | arch/powerpc/sysdev/fsl_msi.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c index 51ffafae561e..6e53d97abd3f 100644 --- a/arch/powerpc/sysdev/fsl_msi.c +++ b/arch/powerpc/sysdev/fsl_msi.c | |||
@@ -236,7 +236,6 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc) | |||
236 | u32 intr_index; | 236 | u32 intr_index; |
237 | u32 have_shift = 0; | 237 | u32 have_shift = 0; |
238 | struct fsl_msi_cascade_data *cascade_data; | 238 | struct fsl_msi_cascade_data *cascade_data; |
239 | unsigned int ret; | ||
240 | 239 | ||
241 | cascade_data = irq_get_handler_data(irq); | 240 | cascade_data = irq_get_handler_data(irq); |
242 | msi_data = cascade_data->msi_data; | 241 | msi_data = cascade_data->msi_data; |
@@ -268,7 +267,9 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc) | |||
268 | case FSL_PIC_IP_IPIC: | 267 | case FSL_PIC_IP_IPIC: |
269 | msir_value = fsl_msi_read(msi_data->msi_regs, msir_index * 0x4); | 268 | msir_value = fsl_msi_read(msi_data->msi_regs, msir_index * 0x4); |
270 | break; | 269 | break; |
271 | case FSL_PIC_IP_VMPIC: | 270 | #ifdef CONFIG_EPAPR_PARAVIRT |
271 | case FSL_PIC_IP_VMPIC: { | ||
272 | unsigned int ret; | ||
272 | ret = fh_vmpic_get_msir(virq_to_hw(irq), &msir_value); | 273 | ret = fh_vmpic_get_msir(virq_to_hw(irq), &msir_value); |
273 | if (ret) { | 274 | if (ret) { |
274 | pr_err("fsl-msi: fh_vmpic_get_msir() failed for " | 275 | pr_err("fsl-msi: fh_vmpic_get_msir() failed for " |
@@ -277,6 +278,8 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc) | |||
277 | } | 278 | } |
278 | break; | 279 | break; |
279 | } | 280 | } |
281 | #endif | ||
282 | } | ||
280 | 283 | ||
281 | while (msir_value) { | 284 | while (msir_value) { |
282 | intr_index = ffs(msir_value) - 1; | 285 | intr_index = ffs(msir_value) - 1; |
@@ -330,9 +333,8 @@ static int fsl_of_msi_remove(struct platform_device *ofdev) | |||
330 | return 0; | 333 | return 0; |
331 | } | 334 | } |
332 | 335 | ||
333 | static int __devinit fsl_msi_setup_hwirq(struct fsl_msi *msi, | 336 | static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev, |
334 | struct platform_device *dev, | 337 | int offset, int irq_index) |
335 | int offset, int irq_index) | ||
336 | { | 338 | { |
337 | struct fsl_msi_cascade_data *cascade_data = NULL; | 339 | struct fsl_msi_cascade_data *cascade_data = NULL; |
338 | int virt_msir; | 340 | int virt_msir; |
@@ -360,7 +362,7 @@ static int __devinit fsl_msi_setup_hwirq(struct fsl_msi *msi, | |||
360 | } | 362 | } |
361 | 363 | ||
362 | static const struct of_device_id fsl_of_msi_ids[]; | 364 | static const struct of_device_id fsl_of_msi_ids[]; |
363 | static int __devinit fsl_of_msi_probe(struct platform_device *dev) | 365 | static int fsl_of_msi_probe(struct platform_device *dev) |
364 | { | 366 | { |
365 | const struct of_device_id *match; | 367 | const struct of_device_id *match; |
366 | struct fsl_msi *msi; | 368 | struct fsl_msi *msi; |
@@ -508,10 +510,12 @@ static const struct of_device_id fsl_of_msi_ids[] = { | |||
508 | .compatible = "fsl,ipic-msi", | 510 | .compatible = "fsl,ipic-msi", |
509 | .data = &ipic_msi_feature, | 511 | .data = &ipic_msi_feature, |
510 | }, | 512 | }, |
513 | #ifdef CONFIG_EPAPR_PARAVIRT | ||
511 | { | 514 | { |
512 | .compatible = "fsl,vmpic-msi", | 515 | .compatible = "fsl,vmpic-msi", |
513 | .data = &vmpic_msi_feature, | 516 | .data = &vmpic_msi_feature, |
514 | }, | 517 | }, |
518 | #endif | ||
515 | {} | 519 | {} |
516 | }; | 520 | }; |
517 | 521 | ||