[PATCH 3/3] iommu/arm-smmu-v3: support suspend/resume
Jason Gunthorpe
jgg at ziepe.ca
Mon Mar 25 06:48:48 PDT 2024
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?
Jason
More information about the linux-arm-kernel
mailing list