ab = find_acpi_bridge_by_bus(acpi_bridges_head, ctrl->seg, ctrl->bus); 
ab = find_acpi_bridge_by_bus(acpi_bridges_head, ctrl->seg, ctrl->slot_bus); 
int shpchprm_set_hpp(	struct controller *ctrl,	struct pci_func *func,	u8	card_type	){	struct acpi_bridge	*ab;	struct pci_bus lpci_bus, *pci_bus;	int				rc = 0;	unsigned int	devfn;	u8				cls= 0x08;	/* default cache line size	*/	u8				lt = 0x40;	/* default latency timer	*/	u8				ep = 0;	u8				es = 0;	memcpy(&lpci_bus, ctrl->pci_bus, sizeof(lpci_bus));	pci_bus = &lpci_bus;	pci_bus->number = func->bus;	devfn = PCI_DEVFN(func->device, func->function);	ab = find_acpi_bridge_by_bus(acpi_bridges_head, ctrl->seg, ctrl->bus);	if (ab) {		if (ab->_hpp) {			lt  = (u8)ab->_hpp->latency_timer;			cls = (u8)ab->_hpp->cache_line_size;			ep  = (u8)ab->_hpp->enable_perr;			es  = (u8)ab->_hpp->enable_serr;		} else			dbg("_hpp: no _hpp for B/D/F=%#x/%#x/%#x. use default value\n", func->bus, func->device, func->function);	} else		dbg("_hpp: no acpi bridge for B/D/F = %#x/%#x/%#x. use default value\n", func->bus, func->device, func->function);	if (card_type == PCI_HEADER_TYPE_BRIDGE) {		/* set subordinate Latency Timer */		rc |= pci_bus_write_config_byte(pci_bus, devfn, PCI_SEC_LATENCY_TIMER, lt);	}	/* set base Latency Timer */	rc |= pci_bus_write_config_byte(pci_bus, devfn, PCI_LATENCY_TIMER, lt);	dbg("  set latency timer  =0x%02x: %x\n", lt, rc);	rc |= pci_bus_write_config_byte(pci_bus, devfn, PCI_CACHE_LINE_SIZE, cls);	dbg("  set cache_line_size=0x%02x: %x\n", cls, rc);	return rc;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7a8cb869f31de525bc34095f51f8c8a43ffcb6a9/shpchprm_acpi.c/clean/drivers/pci/hotplug/shpchprm_acpi.c