Re: [PATCH] ems_pci: fix size of CAN controllers BAR mapping for CPC-PCI v2
From: Wolfgang Grandegger <hidden>
Date: 2009-09-24 08:37:19
Hi Sebastian, Sebastian Haas wrote:
quoted hunk
The driver mapped only 128 bytes of the CAN controller address space when a CPC-PCI v2 was detected (incl. CPC-104P). This patch will fix it by always mapping the whole address space (4096 bytes on all boards) of the corresponding PCI BAR. Signed-off-by: Sebastian Haas <redacted> --- drivers/net/can/sja1000/ems_pci.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)diff --git a/drivers/net/can/sja1000/ems_pci.c b/drivers/net/can/sja1000/ems_pci.c index 7d84b8a..ba98063 100644 --- a/drivers/net/can/sja1000/ems_pci.c +++ b/drivers/net/can/sja1000/ems_pci.c@@ -94,12 +94,14 @@ struct ems_pci_card { #define EMS_PCI_CDR (CDR_CBP | CDR_CLKOUT_MASK) #define EMS_PCI_V1_BASE_BAR 1 -#define EMS_PCI_V1_MEM_SIZE 4096 +#define EMS_PCI_V1_MEM_SIZE 4096 /* size of PITA control area */ #define EMS_PCI_V2_BASE_BAR 2 -#define EMS_PCI_V2_MEM_SIZE 128 +#define EMS_PCI_V2_MEM_SIZE 128 /* size of PLX control area */ #define EMS_PCI_CAN_BASE_OFFSET 0x400 /* offset where the controllers starts */ #define EMS_PCI_CAN_CTRL_SIZE 0x200 /* memory size for each controller */ +#define EMS_PCI_CONTR_MEM_SIZE 4096 /* size of controller area */ + static struct pci_device_id ems_pci_tbl[] = { /* CPC-PCI v1 */ {PCI_VENDOR_ID_SIEMENS, 0x2104, PCI_ANY_ID, PCI_ANY_ID,},@@ -266,7 +268,7 @@ static int __devinit ems_pci_add_card(struct pci_dev *pdev, goto failure_cleanup; } - card->base_addr = pci_iomap(pdev, base_bar, mem_size); + card->base_addr = pci_iomap(pdev, base_bar, EMS_PCI_CONTR_MEM_SIZE); if (card->base_addr == NULL) { err = -ENOMEM; goto failure_cleanup;
I see. To avoid confusion I suggest renaming some variables and defines: s/EMS_PCI_V1_MEM_SIZE/EMS_PCI_V1_CONF_SIZE/ s/EMS_PCI_V2_MEM_SIZE/EMS_PCI_V2_CONF_SIZE/ s/mem_size/conf_size/ s/EMS_PCI_CONTR_MEM_SIZE/EMS_PCI_BASE_SIZE/ Would that not be more appropriate? Wolfgang.