Lines Matching +full:hot +full:- +full:plug
1 // SPDX-License-Identifier: GPL-2.0+
3 * Compaq Hot Plug Controller Driver
6 * Copyright (C) 2001 Greg Kroah-Hartman ([email protected])
92 * greg k-h
128 * returns 0 for non-Compaq ROM, 1 for Compaq ROM
149 dbg("%s - returned %d\n", __func__, result); in check_for_compaq_ROM()
161 return -ENODEV; in access_EV()
184 * Read the hot plug Resource Table from NVRAM
194 return -ENODEV; in load_HRT()
219 * Save the hot plug Resource Table in NVRAM
254 rc = add_byte(&pFill, 1 + ctrl->push_flag, &usedbytes, &available); in store_HRT()
269 rc = add_byte(&pFill, ctrl->bus, &usedbytes, &available); in store_HRT()
274 rc = add_byte(&pFill, PCI_SLOT(ctrl->pci_dev->devfn), &usedbytes, &available); in store_HRT()
279 rc = add_byte(&pFill, PCI_FUNC(ctrl->pci_dev->devfn), &usedbytes, &available); in store_HRT()
290 resNode = ctrl->mem_head; in store_HRT()
298 rc = add_dword(&pFill, resNode->base, &usedbytes, &available); in store_HRT()
303 rc = add_dword(&pFill, resNode->length, &usedbytes, &available); in store_HRT()
307 resNode = resNode->next; in store_HRT()
311 p_ev_ctrl->mem_avail = loop; in store_HRT()
315 resNode = ctrl->p_mem_head; in store_HRT()
323 rc = add_dword(&pFill, resNode->base, &usedbytes, &available); in store_HRT()
328 rc = add_dword(&pFill, resNode->length, &usedbytes, &available); in store_HRT()
332 resNode = resNode->next; in store_HRT()
336 p_ev_ctrl->p_mem_avail = loop; in store_HRT()
340 resNode = ctrl->io_head; in store_HRT()
348 rc = add_dword(&pFill, resNode->base, &usedbytes, &available); in store_HRT()
353 rc = add_dword(&pFill, resNode->length, &usedbytes, &available); in store_HRT()
357 resNode = resNode->next; in store_HRT()
361 p_ev_ctrl->io_avail = loop; in store_HRT()
365 resNode = ctrl->bus_head; in store_HRT()
373 rc = add_dword(&pFill, resNode->base, &usedbytes, &available); in store_HRT()
378 rc = add_dword(&pFill, resNode->length, &usedbytes, &available); in store_HRT()
382 resNode = resNode->next; in store_HRT()
386 p_ev_ctrl->bus_avail = loop; in store_HRT()
388 ctrl = ctrl->next; in store_HRT()
391 p_EV_header->num_of_ctrl = numCtrl; in store_HRT()
415 compaq_int15_entry_point = (rom_start + ROM_INT15_PHY_ADDR - ROM_PHY_ADDR); in compaq_nvram_init()
450 if ((p_EV_header->Version == 2) || in compaq_nvram_load()
451 ((p_EV_header->Version == 1) && !ctrl->push_flag)) { in compaq_nvram_load()
452 p_byte = &(p_EV_header->next); in compaq_nvram_load()
454 p_ev_ctrl = (struct ev_hrt_ctrl *) &(p_EV_header->next); in compaq_nvram_load()
461 bus = p_ev_ctrl->bus; in compaq_nvram_load()
462 device = p_ev_ctrl->device; in compaq_nvram_load()
463 function = p_ev_ctrl->function; in compaq_nvram_load()
465 while ((bus != ctrl->bus) || in compaq_nvram_load()
466 (device != PCI_SLOT(ctrl->pci_dev->devfn)) || in compaq_nvram_load()
467 (function != PCI_FUNC(ctrl->pci_dev->devfn))) { in compaq_nvram_load()
468 nummem = p_ev_ctrl->mem_avail; in compaq_nvram_load()
469 numpmem = p_ev_ctrl->p_mem_avail; in compaq_nvram_load()
470 numio = p_ev_ctrl->io_avail; in compaq_nvram_load()
471 numbus = p_ev_ctrl->bus_avail; in compaq_nvram_load()
491 bus = p_ev_ctrl->bus; in compaq_nvram_load()
492 device = p_ev_ctrl->device; in compaq_nvram_load()
493 function = p_ev_ctrl->function; in compaq_nvram_load()
496 nummem = p_ev_ctrl->mem_avail; in compaq_nvram_load()
497 numpmem = p_ev_ctrl->p_mem_avail; in compaq_nvram_load()
498 numio = p_ev_ctrl->io_avail; in compaq_nvram_load()
499 numbus = p_ev_ctrl->bus_avail; in compaq_nvram_load()
506 while (nummem--) { in compaq_nvram_load()
512 mem_node->base = *(u32 *)p_byte; in compaq_nvram_load()
513 dbg("mem base = %8.8x\n", mem_node->base); in compaq_nvram_load()
521 mem_node->length = *(u32 *)p_byte; in compaq_nvram_load()
522 dbg("mem length = %8.8x\n", mem_node->length); in compaq_nvram_load()
530 mem_node->next = ctrl->mem_head; in compaq_nvram_load()
531 ctrl->mem_head = mem_node; in compaq_nvram_load()
534 while (numpmem--) { in compaq_nvram_load()
540 p_mem_node->base = *(u32 *)p_byte; in compaq_nvram_load()
541 dbg("pre-mem base = %8.8x\n", p_mem_node->base); in compaq_nvram_load()
549 p_mem_node->length = *(u32 *)p_byte; in compaq_nvram_load()
550 dbg("pre-mem length = %8.8x\n", p_mem_node->length); in compaq_nvram_load()
558 p_mem_node->next = ctrl->p_mem_head; in compaq_nvram_load()
559 ctrl->p_mem_head = p_mem_node; in compaq_nvram_load()
562 while (numio--) { in compaq_nvram_load()
568 io_node->base = *(u32 *)p_byte; in compaq_nvram_load()
569 dbg("io base = %8.8x\n", io_node->base); in compaq_nvram_load()
577 io_node->length = *(u32 *)p_byte; in compaq_nvram_load()
578 dbg("io length = %8.8x\n", io_node->length); in compaq_nvram_load()
586 io_node->next = ctrl->io_head; in compaq_nvram_load()
587 ctrl->io_head = io_node; in compaq_nvram_load()
590 while (numbus--) { in compaq_nvram_load()
596 bus_node->base = *(u32 *)p_byte; in compaq_nvram_load()
604 bus_node->length = *(u32 *)p_byte; in compaq_nvram_load()
612 bus_node->next = ctrl->bus_head; in compaq_nvram_load()
613 ctrl->bus_head = bus_node; in compaq_nvram_load()
617 * hot plug add in compaq_nvram_load()
620 rc &= cpqhp_resource_sort_and_combine(&(ctrl->mem_head)); in compaq_nvram_load()
621 rc &= cpqhp_resource_sort_and_combine(&(ctrl->p_mem_head)); in compaq_nvram_load()
622 rc &= cpqhp_resource_sort_and_combine(&(ctrl->io_head)); in compaq_nvram_load()
623 rc &= cpqhp_resource_sort_and_combine(&(ctrl->bus_head)); in compaq_nvram_load()
628 if ((evbuffer[0] != 0) && (!ctrl->push_flag)) in compaq_nvram_load()
641 return -ENODEV; in compaq_nvram_store()