Commit 25ce693e authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

platform-msi: Let the core code handle sysfs groups



Set the domain info flag and remove the local sysfs code.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Tested-by: default avatarNishanth Menon <nm@ti.com>
Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20211210221814.109408832@linutronix.de
parent ffd84485
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@
struct platform_msi_priv_data {
	struct device			*dev;
	void				*host_data;
	const struct attribute_group    **msi_irq_groups;
	msi_alloc_info_t		arg;
	irq_write_msi_msg_t		write_msg;
	int				devid;
@@ -191,6 +190,7 @@ struct irq_domain *platform_msi_create_irq_domain(struct fwnode_handle *fwnode,
		platform_msi_update_dom_ops(info);
	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
		platform_msi_update_chip_ops(info);
	info->flags |= MSI_FLAG_DEV_SYSFS;

	domain = msi_create_irq_domain(fwnode, info, parent);
	if (domain)
@@ -279,16 +279,8 @@ int platform_msi_domain_alloc_irqs(struct device *dev, unsigned int nvec,
	if (err)
		goto out_free_desc;

	priv_data->msi_irq_groups = msi_populate_sysfs(dev);
	if (IS_ERR(priv_data->msi_irq_groups)) {
		err = PTR_ERR(priv_data->msi_irq_groups);
		goto out_free_irqs;
	}

	return 0;

out_free_irqs:
	msi_domain_free_irqs(dev->msi.domain, dev);
out_free_desc:
	platform_msi_free_descs(dev, 0, nvec);
out_free_priv_data:
@@ -308,7 +300,6 @@ void platform_msi_domain_free_irqs(struct device *dev)
		struct msi_desc *desc;

		desc = first_msi_entry(dev);
		msi_destroy_sysfs(dev, desc->platform.msi_priv_data->msi_irq_groups);
		platform_msi_free_priv_data(desc->platform.msi_priv_data);
	}