Hello kernel users and experts, With linux-5.15.68, I was analyzing function dw_plat_pcie_probe in file drivers/pci/controller/dwc/pcie-designware-plat.c. This function creates struct dw_pcie and it has struct dw_pcie_ep embedded in it as member 'ep'. When it's endpoint, it calls dw_pcie_ep_init(&pci->ep). ( https://elixir.bootlin.com/linux/v5.15.68/source/drivers/pci/controller/dwc/ pcie-designware-plat.c#L166 ) return dw_pcie_ep_init(&pci->ep); Now in the dw_pcie_ep_init function, (drivers/pci/controller/dwc/pcie-designware-ep.c) It creates dw_pcie_epc and calls pci_epc_mem_init function like this. ( https://elixir.bootlin.com/linux/v5.15.68/source/drivers/pci/controller/dwc/ pcie-designware-ep.c#L770 ) ret = pci_epc_mem_init(epc, ep->phys_base, ep->addr_size, ep->page_size); But I can't find where ep->page_size was assigned earlier. (ep is the pointer to the struct dw_pcie_ep). Can anyone tell me where it was assigned? And I'm not clear in this struct pci_epc_mem_window, the unit of size.(in include/linux/pci-epc.h) struct pci_epc_mem_window { phys_addr_t phys_base; size_t size; size_t page_size; }; Is the size in byte unit? Or is it number of pages? Thank you. Chan Kim _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies