OSDN Git Service

can: ems_pci: Initialize CAN controller base addresses
authorGerhard Uttenthaler <uttenthaler@ems-wuensche.com>
Fri, 20 Jan 2023 11:26:13 +0000 (12:26 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 2 Feb 2023 16:33:47 +0000 (17:33 +0100)
Add CAN controller base registers

Signed-off-by: Gerhard Uttenthaler <uttenthaler@ems-wuensche.com>
Link: https://lore.kernel.org/all/20230120112616.6071-6-uttenthaler@ems-wuensche.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/sja1000/ems_pci.c

index 0d6289f..d1e8758 100644 (file)
@@ -342,20 +342,25 @@ static int ems_pci_add_card(struct pci_dev *pdev,
                priv->irq_flags = IRQF_SHARED;
 
                dev->irq = pdev->irq;
-               priv->reg_base = card->base_addr + EMS_PCI_CAN_BASE_OFFSET
-                                       + (i * EMS_PCI_CAN_CTRL_SIZE);
+
                if (card->version == 1) {
                        priv->read_reg  = ems_pci_v1_read_reg;
                        priv->write_reg = ems_pci_v1_write_reg;
                        priv->post_irq  = ems_pci_v1_post_irq;
+                       priv->reg_base = card->base_addr + EMS_PCI_V1_CAN_BASE_OFFSET
+                                       + (i * EMS_PCI_V1_CAN_CTRL_SIZE);
                } else if (card->version == 2) {
                        priv->read_reg  = ems_pci_v2_read_reg;
                        priv->write_reg = ems_pci_v2_write_reg;
                        priv->post_irq  = ems_pci_v2_post_irq;
+                       priv->reg_base = card->base_addr + EMS_PCI_V2_CAN_BASE_OFFSET
+                                       + (i * EMS_PCI_V2_CAN_CTRL_SIZE);
                } else {
                        priv->read_reg  = ems_pci_v3_read_reg;
                        priv->write_reg = ems_pci_v3_write_reg;
                        priv->post_irq  = ems_pci_v3_post_irq;
+                       priv->reg_base = card->base_addr + EMS_PCI_V3_CAN_BASE_OFFSET
+                                       + (i * EMS_PCI_V3_CAN_CTRL_SIZE);
                }
 
                /* Check if channel is present */