outb(TPM_DAR, TPM_ADDR); outb(0x01, TPM_DATA); outb(DISABLE_REGISTER_PAIR, TPM_ADDR); 
outb(TPM_DAR, TPM_INF_ADDR); outb(0x01, TPM_INF_DATA); outb(DISABLE_REGISTER_PAIR, TPM_INF_ADDR); 
static int __devinit tpm_inf_probe(struct pci_dev *pci_dev,				   const struct pci_device_id *pci_id){	int rc = 0;	u8 iol, ioh;	int vendorid[2];	int version[2];	int productid[2];	if (pci_enable_device(pci_dev))		return -EIO;	dev_info(&pci_dev->dev, "LPC-bus found at 0x%x\n", pci_id->device);	/* query chip for its vendor, its version number a.s.o. */	outb(ENABLE_REGISTER_PAIR, TPM_ADDR);	outb(IDVENL, TPM_ADDR);	vendorid[1] = inb(TPM_DATA);	outb(IDVENH, TPM_ADDR);	vendorid[0] = inb(TPM_DATA);	outb(IDPDL, TPM_ADDR);	productid[1] = inb(TPM_DATA);	outb(IDPDH, TPM_ADDR);	productid[0] = inb(TPM_DATA);	outb(CHIP_ID1, TPM_ADDR);	version[1] = inb(TPM_DATA);	outb(CHIP_ID2, TPM_ADDR);	version[0] = inb(TPM_DATA);	if ((vendorid[0] << 8 | vendorid[1]) == (TCPA_INFINEON_DEV_VEN_VALUE)) {		/* read IO-ports from TPM */		outb(IOLIMH, TPM_ADDR);		ioh = inb(TPM_DATA);		outb(IOLIML, TPM_ADDR);		iol = inb(TPM_DATA);		tpm_inf.base = (ioh << 8) | iol;		if (tpm_inf.base == 0) {			dev_err(&pci_dev->dev, "No IO-ports set!\n");			pci_disable_device(pci_dev);			return -ENODEV;		}		/* activate register */		outb(TPM_DAR, TPM_ADDR);		outb(0x01, TPM_DATA);		outb(DISABLE_REGISTER_PAIR, TPM_ADDR);		/* disable RESET, LP and IRQC */		outb(RESET_LP_IRQC_DISABLE, tpm_inf.base + CMD);		/* Finally, we're done, print some infos */		dev_info(&pci_dev->dev, "TPM found: "			 "io base 0x%x, "			 "chip version %02x%02x, "			 "vendor id %x%x (Infineon), "			 "product id %02x%02x"			 "%s\n",			 tpm_inf.base,			 version[0], version[1],			 vendorid[0], vendorid[1],			 productid[0], productid[1], ((productid[0] == 0)						      && (productid[1] ==							  6)) ?			 " (SLD 9630 TT 1.1)" : "");		rc = tpm_register_hardware(pci_dev, &tpm_inf);		if (rc < 0) {			pci_disable_device(pci_dev);			return -ENODEV;		}		return 0;	} else {		dev_info(&pci_dev->dev, "No Infineon TPM found!\n");		pci_disable_device(pci_dev);		return -ENODEV;	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f9abb020405c94edb0717315f1510086b1574a22/tpm_infineon.c/buggy/drivers/char/tpm/tpm_infineon.c