|
@@ -192,6 +192,11 @@ dmar_msi_set_affinity(struct irq_data *data, const struct cpumask *mask,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+static void dmar_msi_write_msg(struct irq_data *data, struct msi_msg *msg)
|
|
|
+{
|
|
|
+ dmar_msi_write(data->irq, msg);
|
|
|
+}
|
|
|
+
|
|
|
static struct irq_chip dmar_msi_controller = {
|
|
|
.name = "DMAR-MSI",
|
|
|
.irq_unmask = dmar_msi_unmask,
|
|
@@ -200,6 +205,7 @@ static struct irq_chip dmar_msi_controller = {
|
|
|
.irq_set_affinity = dmar_msi_set_affinity,
|
|
|
.irq_retrigger = irq_chip_retrigger_hierarchy,
|
|
|
.irq_compose_msi_msg = irq_msi_compose_msg,
|
|
|
+ .irq_write_msi_msg = dmar_msi_write_msg,
|
|
|
.flags = IRQCHIP_SKIP_SET_WAKE,
|
|
|
};
|
|
|
|
|
@@ -322,6 +328,11 @@ static int hpet_msi_set_affinity(struct irq_data *data,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+static void hpet_msi_write_msg(struct irq_data *data, struct msi_msg *msg)
|
|
|
+{
|
|
|
+ hpet_msi_write(data->handler_data, msg);
|
|
|
+}
|
|
|
+
|
|
|
static struct irq_chip hpet_msi_controller = {
|
|
|
.name = "HPET-MSI",
|
|
|
.irq_unmask = hpet_msi_unmask,
|
|
@@ -330,6 +341,7 @@ static struct irq_chip hpet_msi_controller = {
|
|
|
.irq_set_affinity = hpet_msi_set_affinity,
|
|
|
.irq_retrigger = irq_chip_retrigger_hierarchy,
|
|
|
.irq_compose_msi_msg = irq_msi_compose_msg,
|
|
|
+ .irq_write_msi_msg = hpet_msi_write_msg,
|
|
|
.flags = IRQCHIP_SKIP_SET_WAKE,
|
|
|
};
|
|
|
|