Lines Matching refs:cfg

32 	struct pci_config_window *cfg;
40 cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
41 if (!cfg)
48 cfg->parent = dev;
49 cfg->ops = ops;
50 cfg->busr.start = busr->start;
51 cfg->busr.end = busr->end;
52 cfg->busr.flags = IORESOURCE_BUS;
53 cfg->bus_shift = bus_shift;
54 bus_range = resource_size(&cfg->busr);
58 cfg->busr.end = busr->start + bus_range - 1;
60 cfgres, &cfg->busr, busr);
64 cfg->res.start = cfgres->start;
65 cfg->res.end = cfgres->end;
66 cfg->res.flags = IORESOURCE_MEM | IORESOURCE_BUSY;
67 cfg->res.name = "PCI ECAM";
69 conflict = request_resource_conflict(&iomem_resource, &cfg->res);
73 &cfg->res, conflict->name, conflict);
78 cfg->winp = kcalloc(bus_range, sizeof(*cfg->winp), GFP_KERNEL);
79 if (!cfg->winp)
82 cfg->win = pci_remap_cfgspace(cfgres->start, bus_range * bsz);
83 if (!cfg->win)
88 err = ops->init(cfg);
92 dev_info(dev, "ECAM at %pR for %pR\n", &cfg->res, &cfg->busr);
93 return cfg;
100 pci_ecam_free(cfg);
105 void pci_ecam_free(struct pci_config_window *cfg)
110 if (cfg->winp) {
111 for (i = 0; i < resource_size(&cfg->busr); i++)
112 if (cfg->winp[i])
113 iounmap(cfg->winp[i]);
114 kfree(cfg->winp);
117 if (cfg->win)
118 iounmap(cfg->win);
120 if (cfg->res.parent)
121 release_resource(&cfg->res);
122 kfree(cfg);
128 struct pci_config_window *cfg = bus->sysdata;
129 unsigned int bsz = 1 << cfg->bus_shift;
136 if (busn < cfg->busr.start || busn > cfg->busr.end)
139 busn -= cfg->busr.start;
140 start = cfg->res.start + busn * bsz;
142 cfg->winp[busn] = pci_remap_cfgspace(start, bsz);
143 if (!cfg->winp[busn])
151 struct pci_config_window *cfg = bus->sysdata;
154 if (!per_bus_mapping || busn < cfg->busr.start || busn > cfg->busr.end)
157 busn -= cfg->busr.start;
158 if (cfg->winp[busn]) {
159 iounmap(cfg->winp[busn]);
160 cfg->winp[busn] = NULL;
170 struct pci_config_window *cfg = bus->sysdata;
171 unsigned int bus_shift = cfg->ops->bus_shift;
172 unsigned int devfn_shift = cfg->ops->bus_shift - 8;
177 if (busn < cfg->busr.start || busn > cfg->busr.end)
180 busn -= cfg->busr.start;
182 base = cfg->winp[busn];
185 base = cfg->win;
187 if (cfg->ops->bus_shift) {