Re: [PATCH 3/3] iommu/arm-smmu-v3: support suspend/resume

From: Thomas Gleixner
Date: Mon Mar 25 2024 - 14:08:51 EST


On Mon, Mar 25 2024 at 10:48, Jason Gunthorpe wrote:
> On Sun, Mar 24, 2024 at 08:29:00PM +0800, Peng Fan (OSS) wrote:
>> +static void arm_smmu_resume_unique_irqs(struct arm_smmu_device *smmu)
>> +{
>> + struct device *dev = smmu->dev;
>> + struct msi_desc *desc;
>> + struct msi_msg msg;
>> +
>> + if (!dev->msi.domain)
>> + return;
>> +
>> + desc = irq_get_msi_desc(smmu->evtq.q.irq);
>> + if (desc) {
>> + get_cached_msi_msg(smmu->evtq.q.irq, &msg);
>> + arm_smmu_write_msi_msg(desc, &msg);
>> + }
>> +
>> + desc = irq_get_msi_desc(smmu->gerr_irq);
>> + if (desc) {
>> + get_cached_msi_msg(smmu->gerr_irq, &msg);
>> + arm_smmu_write_msi_msg(desc, &msg);
>> + }
>> +
>> + if (smmu->features & ARM_SMMU_FEAT_PRI) {
>> + desc = irq_get_msi_desc(smmu->priq.q.irq);
>> + if (desc) {
>> + get_cached_msi_msg(smmu->priq.q.irq, &msg);
>> + arm_smmu_write_msi_msg(desc, &msg);
>> + }
>> + }
>> +}
>
> I wonder if this should be done instead by converting the driver away
> from platform MSI to the new MSI mechanism?

There is work in progress for that. Should come around in the next
weeks.