Lines Matching refs:pfmem

313 		} else if (cur_func->pfmem[i]) {
314 ibmphp_remove_resource(cur_func->pfmem[i]);
315 cur_func->pfmem[i] = NULL;
347 struct resource_node *pfmem[6];
416 /* pfmem */
424 pfmem[count] = kzalloc(sizeof(struct resource_node), GFP_KERNEL);
425 if (!pfmem[count])
428 pfmem[count]->type = PFMEM;
429 pfmem[count]->busno = func->busno;
430 pfmem[count]->devfunc = PCI_DEVFN(func->device,
432 pfmem[count]->len = len[count];
433 pfmem[count]->fromMem = 0;
434 if (ibmphp_check_resource(pfmem[count], 0) == 0) {
435 ibmphp_add_resource(pfmem[count]);
436 func->pfmem[count] = pfmem[count];
440 kfree(pfmem[count]);
444 mem_tmp->busno = pfmem[count]->busno;
445 mem_tmp->devfunc = pfmem[count]->devfunc;
446 mem_tmp->len = pfmem[count]->len;
447 debug("there's no pfmem... going into mem.\n");
450 pfmem[count]->fromMem = 1;
451 pfmem[count]->rangeno = mem_tmp->rangeno;
452 pfmem[count]->start = mem_tmp->start;
453 pfmem[count]->end = mem_tmp->end;
454 ibmphp_add_pfmem_from_mem(pfmem[count]);
455 func->pfmem[count] = pfmem[count];
457 err("cannot allocate requested pfmem for bus %x, device %x, len %x\n",
460 kfree(pfmem[count]);
465 pci_bus_write_config_dword(ibmphp_pci_bus, devfn, address[count], func->pfmem[count]->start);
468 debug("b4 writing, start address is %x\n", func->pfmem[count]->start);
564 struct resource_node *pfmem = NULL;
677 /* pfmem */
696 func->pfmem[count] = bus_pfmem[count];
712 func->pfmem[count] = bus_pfmem[count];
714 err("cannot allocate requested pfmem for bus %x, device %x, len %x\n",
722 pci_bus_write_config_dword(ibmphp_pci_bus, devfn, address[count], func->pfmem[count]->start);
781 debug("amount_needed->pfmem = %x\n", amount_needed->pfmem);
792 func->pfmem[count] = NULL;
845 if (!amount_needed->pfmem) {
846 debug("it doesn't want n.e.pfmem mem?\n");
849 debug("it wants %x pfmemory behind the bridge\n", amount_needed->pfmem);
850 pfmem = kzalloc(sizeof(*pfmem), GFP_KERNEL);
851 if (!pfmem) {
855 pfmem->type = PFMEM;
856 pfmem->busno = func->busno;
857 pfmem->devfunc = PCI_DEVFN(func->device, func->function);
858 pfmem->len = amount_needed->pfmem;
859 pfmem->fromMem = 0;
860 if (ibmphp_check_resource(pfmem, 1) == 0) {
861 ibmphp_add_resource(pfmem);
870 mem_tmp->busno = pfmem->busno;
871 mem_tmp->devfunc = pfmem->devfunc;
872 mem_tmp->len = pfmem->len;
875 pfmem->fromMem = 1;
876 pfmem->rangeno = mem_tmp->rangeno;
877 ibmphp_add_pfmem_from_mem(pfmem);
901 rc = add_new_bus(bus, io, mem, pfmem, func->busno);
903 rc = add_new_bus(bus, io, mem, pfmem, 0xFF);
926 debug("pfmem 64\n");
1019 if (pfmem)
1020 ibmphp_remove_resource(pfmem);
1031 func->pfmem[i] = NULL;
1138 /* pfmem */
1141 amount->pfmem += len[count];
1170 if ((amount->pfmem) && (amount->pfmem < MEMBRIDGE))
1171 amount->pfmem = MEMBRIDGE;
1197 struct resource_node *pfmem;
1261 /* pfmem */
1262 debug("start address of pfmem is %x\n", start_address);
1265 if (ibmphp_find_resource(bus, start_address, &pfmem, PFMEM) < 0) {
1269 if (pfmem) {
1270 debug("pfmem->start = %x\n", pfmem->start);
1272 ibmphp_remove_resource(pfmem);
1311 struct resource_node *pfmem = NULL;
1381 /* pfmem */
1383 if (ibmphp_find_resource(bus, start_address, &pfmem, PFMEM) < 0) {
1387 if (pfmem) {
1388 debug("pfmem->start = %x\n", pfmem->start);
1390 ibmphp_remove_resource(pfmem);
1575 if (cur_func->pfmem[i]) {
1576 debug("pfmem[%d] exists\n", i);
1578 ibmphp_remove_resource(cur_func->pfmem[i]);
1579 cur_func->pfmem[i] = NULL;
1603 static int add_new_bus(struct bus_node *bus, struct resource_node *io, struct resource_node *mem, struct resource_node *pfmem, u8 parent_busno)
1642 if (pfmem) {
1647 pfmem_range->start = pfmem->start;
1648 pfmem_range->end = pfmem->end;