]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
irqchip/sg2042-msi: Rename functions and data structures to be SG2042 agnostic
authorInochi Amaoto <inochiama@gmail.com>
Sun, 13 Apr 2025 22:49:13 +0000 (06:49 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 14 Apr 2025 17:35:36 +0000 (19:35 +0200)
As the driver logic can be used in both SG2042 and SG2044 SoCs, rename
functions and data structures, which are not SG2042 specific, to SG204x*.

Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Chen Wang <wangchen20@iscas.ac.cn> # SG2042
Reviewed-by: Chen Wang <unicorn_wang@outlook.com>
Link: https://lore.kernel.org/all/20250413224922.69719-3-inochiama@gmail.com
drivers/irqchip/irq-sg2042-msi.c

index ee682e87eb8be2ebc7df35911c59493e2d8d5136..5f7fae456bd47b233b0381755a927ae5acff20b7 100644 (file)
@@ -21,7 +21,7 @@
 
 #define SG2042_MAX_MSI_VECTOR  32
 
-struct sg2042_msi_chipdata {
+struct sg204x_msi_chipdata {
        void __iomem    *reg_clr;       // clear reg, see TRM, 10.1.33, GP_INTR0_CLR
 
        phys_addr_t     doorbell_addr;  // see TRM, 10.1.32, GP_INTR0_SET
@@ -33,7 +33,7 @@ struct sg2042_msi_chipdata {
        struct mutex    msi_map_lock;   // lock for msi_map
 };
 
-static int sg2042_msi_allocate_hwirq(struct sg2042_msi_chipdata *data, int num_req)
+static int sg204x_msi_allocate_hwirq(struct sg204x_msi_chipdata *data, int num_req)
 {
        int first;
 
@@ -43,7 +43,7 @@ static int sg2042_msi_allocate_hwirq(struct sg2042_msi_chipdata *data, int num_r
        return first >= 0 ? first : -ENOSPC;
 }
 
-static void sg2042_msi_free_hwirq(struct sg2042_msi_chipdata *data, int hwirq, int num_req)
+static void sg204x_msi_free_hwirq(struct sg204x_msi_chipdata *data, int hwirq, int num_req)
 {
        guard(mutex)(&data->msi_map_lock);
        bitmap_release_region(data->msi_map, hwirq, get_count_order(num_req));
@@ -51,7 +51,7 @@ static void sg2042_msi_free_hwirq(struct sg2042_msi_chipdata *data, int hwirq, i
 
 static void sg2042_msi_irq_ack(struct irq_data *d)
 {
-       struct sg2042_msi_chipdata *data  = irq_data_get_irq_chip_data(d);
+       struct sg204x_msi_chipdata *data  = irq_data_get_irq_chip_data(d);
        int bit_off = d->hwirq;
 
        writel(1 << bit_off, data->reg_clr);
@@ -61,7 +61,7 @@ static void sg2042_msi_irq_ack(struct irq_data *d)
 
 static void sg2042_msi_irq_compose_msi_msg(struct irq_data *d, struct msi_msg *msg)
 {
-       struct sg2042_msi_chipdata *data = irq_data_get_irq_chip_data(d);
+       struct sg204x_msi_chipdata *data = irq_data_get_irq_chip_data(d);
 
        msg->address_hi = upper_32_bits(data->doorbell_addr);
        msg->address_lo = lower_32_bits(data->doorbell_addr);
@@ -79,9 +79,9 @@ static const struct irq_chip sg2042_msi_middle_irq_chip = {
        .irq_compose_msi_msg    = sg2042_msi_irq_compose_msi_msg,
 };
 
-static int sg2042_msi_parent_domain_alloc(struct irq_domain *domain, unsigned int virq, int hwirq)
+static int sg204x_msi_parent_domain_alloc(struct irq_domain *domain, unsigned int virq, int hwirq)
 {
-       struct sg2042_msi_chipdata *data = domain->host_data;
+       struct sg204x_msi_chipdata *data = domain->host_data;
        struct irq_fwspec fwspec;
        struct irq_data *d;
        int ret;
@@ -99,18 +99,18 @@ static int sg2042_msi_parent_domain_alloc(struct irq_domain *domain, unsigned in
        return d->chip->irq_set_type(d, IRQ_TYPE_EDGE_RISING);
 }
 
-static int sg2042_msi_middle_domain_alloc(struct irq_domain *domain, unsigned int virq,
+static int sg204x_msi_middle_domain_alloc(struct irq_domain *domain, unsigned int virq,
                                          unsigned int nr_irqs, void *args)
 {
-       struct sg2042_msi_chipdata *data = domain->host_data;
+       struct sg204x_msi_chipdata *data = domain->host_data;
        int hwirq, err, i;
 
-       hwirq = sg2042_msi_allocate_hwirq(data, nr_irqs);
+       hwirq = sg204x_msi_allocate_hwirq(data, nr_irqs);
        if (hwirq < 0)
                return hwirq;
 
        for (i = 0; i < nr_irqs; i++) {
-               err = sg2042_msi_parent_domain_alloc(domain, virq + i, hwirq + i);
+               err = sg204x_msi_parent_domain_alloc(domain, virq + i, hwirq + i);
                if (err)
                        goto err_hwirq;
 
@@ -121,25 +121,25 @@ static int sg2042_msi_middle_domain_alloc(struct irq_domain *domain, unsigned in
        return 0;
 
 err_hwirq:
-       sg2042_msi_free_hwirq(data, hwirq, nr_irqs);
+       sg204x_msi_free_hwirq(data, hwirq, nr_irqs);
        irq_domain_free_irqs_parent(domain, virq, i);
 
        return err;
 }
 
-static void sg2042_msi_middle_domain_free(struct irq_domain *domain, unsigned int virq,
+static void sg204x_msi_middle_domain_free(struct irq_domain *domain, unsigned int virq,
                                          unsigned int nr_irqs)
 {
        struct irq_data *d = irq_domain_get_irq_data(domain, virq);
-       struct sg2042_msi_chipdata *data = irq_data_get_irq_chip_data(d);
+       struct sg204x_msi_chipdata *data = irq_data_get_irq_chip_data(d);
 
        irq_domain_free_irqs_parent(domain, virq, nr_irqs);
-       sg2042_msi_free_hwirq(data, d->hwirq, nr_irqs);
+       sg204x_msi_free_hwirq(data, d->hwirq, nr_irqs);
 }
 
-static const struct irq_domain_ops sg2042_msi_middle_domain_ops = {
-       .alloc  = sg2042_msi_middle_domain_alloc,
-       .free   = sg2042_msi_middle_domain_free,
+static const struct irq_domain_ops sg204x_msi_middle_domain_ops = {
+       .alloc  = sg204x_msi_middle_domain_alloc,
+       .free   = sg204x_msi_middle_domain_free,
        .select = msi_lib_irq_domain_select,
 };
 
@@ -157,14 +157,14 @@ static const struct msi_parent_ops sg2042_msi_parent_ops = {
        .init_dev_msi_info      = msi_lib_init_dev_msi_info,
 };
 
-static int sg2042_msi_init_domains(struct sg2042_msi_chipdata *data,
+static int sg204x_msi_init_domains(struct sg204x_msi_chipdata *data,
                                   struct irq_domain *plic_domain, struct device *dev)
 {
        struct fwnode_handle *fwnode = dev_fwnode(dev);
        struct irq_domain *middle_domain;
 
        middle_domain = irq_domain_create_hierarchy(plic_domain, 0, data->num_irqs, fwnode,
-                                                   &sg2042_msi_middle_domain_ops, data);
+                                                   &sg204x_msi_middle_domain_ops, data);
        if (!middle_domain) {
                pr_err("Failed to create the MSI middle domain\n");
                return -ENOMEM;
@@ -181,13 +181,13 @@ static int sg2042_msi_init_domains(struct sg2042_msi_chipdata *data,
 static int sg2042_msi_probe(struct platform_device *pdev)
 {
        struct fwnode_reference_args args = { };
-       struct sg2042_msi_chipdata *data;
+       struct sg204x_msi_chipdata *data;
        struct device *dev = &pdev->dev;
        struct irq_domain *plic_domain;
        struct resource *res;
        int ret;
 
-       data = devm_kzalloc(dev, sizeof(struct sg2042_msi_chipdata), GFP_KERNEL);
+       data = devm_kzalloc(dev, sizeof(struct sg204x_msi_chipdata), GFP_KERNEL);
        if (!data)
                return -ENOMEM;
 
@@ -231,7 +231,7 @@ static int sg2042_msi_probe(struct platform_device *pdev)
 
        mutex_init(&data->msi_map_lock);
 
-       return sg2042_msi_init_domains(data, plic_domain, dev);
+       return sg204x_msi_init_domains(data, plic_domain, dev);
 }
 
 static const struct of_device_id sg2042_msi_of_match[] = {