pci_epc_mem_init() internally used page size equal to *PAGE_SIZE* to manage the address space so instead just pass the page size as a argument to pci_epc_mem_init(). Also make pci_epc_mem_init() as a C function instead of a macro function in preparation for adding support for pci-epc-mem core to handle multiple windows.
Showing the changes to include/linux (1 of 4 files). Show all
Unified · Split
| @@ -137,9 +137,6 @@ struct pci_epc_features { · 136 unmodified lines | |||
| 137 | #define devm_pci_epc_create(dev, ops) \ | 137 | #define devm_pci_epc_create(dev, ops) \ |
| 138 | __devm_pci_epc_create((dev), (ops), THIS_MODULE) | 138 | __devm_pci_epc_create((dev), (ops), THIS_MODULE) |
| 139 | 139 | ||
| 140 | #define pci_epc_mem_init(epc, phys_addr, size) \ | ||
| 141 | __pci_epc_mem_init((epc), (phys_addr), (size), PAGE_SIZE) | ||
| 142 | |||
| 143 | static inline void epc_set_drvdata(struct pci_epc *epc, void *data) | 140 | static inline void epc_set_drvdata(struct pci_epc *epc, void *data) |
| 144 | { | 141 | { |
| 145 | dev_set_drvdata(&epc->dev, data); | 142 | dev_set_drvdata(&epc->dev, data); |
| @@ -195,6 +192,8 @@ unsigned int pci_epc_get_first_free_bar(const struct pci_epc_features · 49 unmodified lines | |||
| 195 | struct pci_epc *pci_epc_get(const char *epc_name); | 192 | struct pci_epc *pci_epc_get(const char *epc_name); |
| 196 | void pci_epc_put(struct pci_epc *epc); | 193 | void pci_epc_put(struct pci_epc *epc); |
| 197 | 194 | ||
| 195 | int pci_epc_mem_init(struct pci_epc *epc, phys_addr_t base, | ||
| 196 | size_t size, size_t page_size); | ||
| 198 | int __pci_epc_mem_init(struct pci_epc *epc, phys_addr_t phys_addr, size_t size, | 197 | int __pci_epc_mem_init(struct pci_epc *epc, phys_addr_t phys_addr, size_t size, |
| 199 | size_t page_size); | 198 | size_t page_size); |
| 200 | void pci_epc_mem_exit(struct pci_epc *epc); | 199 | void pci_epc_mem_exit(struct pci_epc *epc); |