--- a/drivers/irqchip/irq-bcm6345-periph.c
+++ b/drivers/irqchip/irq-bcm6345-periph.c
@@ -186,6 +186,8 @@ static int bcm6345_periph_set_affinity(s
 	}
 	raw_spin_unlock_irqrestore(&priv->lock, flags);
 
+	irq_data_update_effective_affinity(data, cpumask_of(cpu));
+
 	return 0;
 }
 #endif
@@ -197,6 +199,8 @@ static int bcm6345_periph_map(struct irq
 
 	irq_set_chip_and_handler(irq, &priv->chip, handle_level_irq);
 
+	irqd_set_single_target(irq_desc_get_irq_data(irq_to_desc(irq)));
+
 	return 0;
 }