Lines Matching refs:pfmem
314 } else if (cur_func->pfmem[i]) {
315 ibmphp_remove_resource(cur_func->pfmem[i]);
316 cur_func->pfmem[i] = NULL;
348 struct resource_node *pfmem[6];
417 /* pfmem */
425 pfmem[count] = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
426 if (!pfmem[count])
429 pfmem[count]->type = PFMEM;
430 pfmem[count]->busno = func->busno;
431 pfmem[count]->devfunc = PCI_DEVFN(func->device,
433 pfmem[count]->len = len[count];
434 pfmem[count]->fromMem = 0;
435 if (ibmphp_check_resource(pfmem[count], 0) == 0) {
436 ibmphp_add_resource(pfmem[count]);
437 func->pfmem[count] = pfmem[count];
441 kfree(pfmem[count]);
445 mem_tmp->busno = pfmem[count]->busno;
446 mem_tmp->devfunc = pfmem[count]->devfunc;
447 mem_tmp->len = pfmem[count]->len;
448 debug("there's no pfmem... going into mem.\n");
451 pfmem[count]->fromMem = 1;
452 pfmem[count]->rangeno = mem_tmp->rangeno;
453 pfmem[count]->start = mem_tmp->start;
454 pfmem[count]->end = mem_tmp->end;
455 ibmphp_add_pfmem_from_mem(pfmem[count]);
456 func->pfmem[count] = pfmem[count];
458 err("cannot allocate requested pfmem for bus %x, device %x, len %x\n",
461 kfree(pfmem[count]);
466 pci_bus_write_config_dword(ibmphp_pci_bus, devfn, address[count], func->pfmem[count]->start);
469 debug("b4 writing, start address is %x\n", func->pfmem[count]->start);
565 struct resource_node *pfmem = NULL;
678 /* pfmem */
697 func->pfmem[count] = bus_pfmem[count];
713 func->pfmem[count] = bus_pfmem[count];
715 err("cannot allocate requested pfmem for bus %x, device %x, len %x\n",
723 pci_bus_write_config_dword(ibmphp_pci_bus, devfn, address[count], func->pfmem[count]->start);
782 debug("amount_needed->pfmem = %x\n", amount_needed->pfmem);
793 func->pfmem[count] = NULL;
846 if (!amount_needed->pfmem) {
847 debug("it doesn't want n.e.pfmem mem?\n");
850 debug("it wants %x pfmemory behind the bridge\n", amount_needed->pfmem);
851 pfmem = kzalloc(sizeof(*pfmem), GFP_KERNEL);
852 if (!pfmem) {
856 pfmem->type = PFMEM;
857 pfmem->busno = func->busno;
858 pfmem->devfunc = PCI_DEVFN(func->device, func->function);
859 pfmem->len = amount_needed->pfmem;
860 pfmem->fromMem = 0;
861 if (ibmphp_check_resource(pfmem, 1) == 0) {
862 ibmphp_add_resource(pfmem);
871 mem_tmp->busno = pfmem->busno;
872 mem_tmp->devfunc = pfmem->devfunc;
873 mem_tmp->len = pfmem->len;
876 pfmem->fromMem = 1;
877 pfmem->rangeno = mem_tmp->rangeno;
878 ibmphp_add_pfmem_from_mem(pfmem);
902 rc = add_new_bus(bus, io, mem, pfmem, func->busno);
904 rc = add_new_bus(bus, io, mem, pfmem, 0xFF);
927 debug("pfmem 64\n");
1020 if (pfmem)
1021 ibmphp_remove_resource(pfmem);
1032 func->pfmem[i] = NULL;
1139 /* pfmem */
1142 amount->pfmem += len[count];
1171 if ((amount->pfmem) && (amount->pfmem < MEMBRIDGE))
1172 amount->pfmem = MEMBRIDGE;
1198 struct resource_node *pfmem;
1262 /* pfmem */
1263 debug("start address of pfmem is %x\n", start_address);
1266 if (ibmphp_find_resource(bus, start_address, &pfmem, PFMEM) < 0) {
1270 if (pfmem) {
1271 debug("pfmem->start = %x\n", pfmem->start);
1273 ibmphp_remove_resource(pfmem);
1312 struct resource_node *pfmem = NULL;
1382 /* pfmem */
1384 if (ibmphp_find_resource(bus, start_address, &pfmem, PFMEM) < 0) {
1388 if (pfmem) {
1389 debug("pfmem->start = %x\n", pfmem->start);
1391 ibmphp_remove_resource(pfmem);
1577 if (cur_func->pfmem[i]) {
1578 debug("pfmem[%d] exists\n", i);
1580 ibmphp_remove_resource(cur_func->pfmem[i]);
1581 cur_func->pfmem[i] = NULL;
1605 static int add_new_bus(struct bus_node *bus, struct resource_node *io, struct resource_node *mem, struct resource_node *pfmem, u8 parent_busno)
1644 if (pfmem) {
1649 pfmem_range->start = pfmem->start;
1650 pfmem_range->end = pfmem->end;