dev_err(&dev->dev, "SMB base address uninitialized" 
dev_err(&dev->dev, "SMB base address uninitialized " 
static int i801_setup(struct pci_dev *dev){	int error_return = 0;	unsigned char temp;	/* Note: we keep on searching until we have found 'function 3' */	if(PCI_FUNC(dev->devfn) != 3)		return -ENODEV;	I801_dev = dev;	if ((dev->device == PCI_DEVICE_ID_INTEL_82801DB_3) ||	    (dev->device == PCI_DEVICE_ID_INTEL_82801EB_3) ||	    (dev->device == PCI_DEVICE_ID_INTEL_ESB_4))		isich4 = 1;	else		isich4 = 0;	/* Determine the address of the SMBus areas */	if (force_addr) {		i801_smba = force_addr & 0xfff0;	} else {		pci_read_config_word(I801_dev, SMBBA, &i801_smba);		i801_smba &= 0xfff0;		if(i801_smba == 0) {			dev_err(&dev->dev, "SMB base address uninitialized"				"- upgrade BIOS or use force_addr=0xaddr\n");			return -ENODEV;		}	}	if (!request_region(i801_smba, (isich4 ? 16 : 8), "i801-smbus")) {		dev_err(&dev->dev, "I801_smb region 0x%x already in use!\n",			i801_smba);		error_return = -EBUSY;		goto END;	}	pci_read_config_byte(I801_dev, SMBHSTCFG, &temp);	temp &= ~SMBHSTCFG_I2C_EN;	/* SMBus timing */	pci_write_config_byte(I801_dev, SMBHSTCFG, temp);	/* If force_addr is set, we program the new address here. Just to make	   sure, we disable the device first. */	if (force_addr) {		pci_write_config_byte(I801_dev, SMBHSTCFG, temp & 0xfe);		pci_write_config_word(I801_dev, SMBBA, i801_smba);		pci_write_config_byte(I801_dev, SMBHSTCFG, temp | 0x01);		dev_warn(&dev->dev, "WARNING: I801 SMBus interface set to "			"new address %04x!\n", i801_smba);	} else if ((temp & 1) == 0) {		pci_write_config_byte(I801_dev, SMBHSTCFG, temp | 1);		dev_warn(&dev->dev, "enabling SMBus device\n");	}	if (temp & 0x02)		dev_dbg(&dev->dev, "I801 using Interrupt SMI# for SMBus.\n");	else		dev_dbg(&dev->dev, "I801 using PCI Interrupt for SMBus.\n");	pci_read_config_byte(I801_dev, SMBREV, &temp);	dev_dbg(&dev->dev, "SMBREV = 0x%X\n", temp);	dev_dbg(&dev->dev, "I801_smba = 0x%X\n", i801_smba);END:	return error_return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/368609c5a8bd75b77721e69726ddfd3c6a30f7d4/i2c-i801.c/buggy/drivers/i2c/busses/i2c-i801.c