|
@@ -56,19 +56,20 @@ static struct irq_chip dw_msi_irq_chip = {
|
|
|
/* MSI int handler */
|
|
|
irqreturn_t dw_handle_msi_irq(struct pcie_port *pp)
|
|
|
{
|
|
|
- unsigned long val;
|
|
|
+ u32 val;
|
|
|
int i, pos, irq;
|
|
|
irqreturn_t ret = IRQ_NONE;
|
|
|
|
|
|
for (i = 0; i < MAX_MSI_CTRLS; i++) {
|
|
|
dw_pcie_rd_own_conf(pp, PCIE_MSI_INTR0_STATUS + i * 12, 4,
|
|
|
- (u32 *)&val);
|
|
|
+ &val);
|
|
|
if (!val)
|
|
|
continue;
|
|
|
|
|
|
ret = IRQ_HANDLED;
|
|
|
pos = 0;
|
|
|
- while ((pos = find_next_bit(&val, 32, pos)) != 32) {
|
|
|
+ while ((pos = find_next_bit((unsigned long *) &val, 32,
|
|
|
+ pos)) != 32) {
|
|
|
irq = irq_find_mapping(pp->irq_domain, i * 32 + pos);
|
|
|
dw_pcie_wr_own_conf(pp, PCIE_MSI_INTR0_STATUS + i * 12,
|
|
|
4, 1 << pos);
|