diff options
Diffstat (limited to 'drivers/char/tpm/tpm_atmel.c')
-rw-r--r-- | drivers/char/tpm/tpm_atmel.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/drivers/char/tpm/tpm_atmel.c b/drivers/char/tpm/tpm_atmel.c index 96ab9003047c..44b08ba6fc9d 100644 --- a/drivers/char/tpm/tpm_atmel.c +++ b/drivers/char/tpm/tpm_atmel.c | |||
@@ -54,7 +54,7 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 * buf, size_t count) | |||
54 | for (i = 0; i < 6; i++) { | 54 | for (i = 0; i < 6; i++) { |
55 | status = inb(chip->vendor->base + 1); | 55 | status = inb(chip->vendor->base + 1); |
56 | if ((status & ATML_STATUS_DATA_AVAIL) == 0) { | 56 | if ((status & ATML_STATUS_DATA_AVAIL) == 0) { |
57 | dev_err(&chip->pci_dev->dev, | 57 | dev_err(chip->dev, |
58 | "error reading header\n"); | 58 | "error reading header\n"); |
59 | return -EIO; | 59 | return -EIO; |
60 | } | 60 | } |
@@ -66,12 +66,12 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 * buf, size_t count) | |||
66 | size = be32_to_cpu(*native_size); | 66 | size = be32_to_cpu(*native_size); |
67 | 67 | ||
68 | if (count < size) { | 68 | if (count < size) { |
69 | dev_err(&chip->pci_dev->dev, | 69 | dev_err(chip->dev, |
70 | "Recv size(%d) less than available space\n", size); | 70 | "Recv size(%d) less than available space\n", size); |
71 | for (; i < size; i++) { /* clear the waiting data anyway */ | 71 | for (; i < size; i++) { /* clear the waiting data anyway */ |
72 | status = inb(chip->vendor->base + 1); | 72 | status = inb(chip->vendor->base + 1); |
73 | if ((status & ATML_STATUS_DATA_AVAIL) == 0) { | 73 | if ((status & ATML_STATUS_DATA_AVAIL) == 0) { |
74 | dev_err(&chip->pci_dev->dev, | 74 | dev_err(chip->dev, |
75 | "error reading data\n"); | 75 | "error reading data\n"); |
76 | return -EIO; | 76 | return -EIO; |
77 | } | 77 | } |
@@ -83,7 +83,7 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 * buf, size_t count) | |||
83 | for (; i < size; i++) { | 83 | for (; i < size; i++) { |
84 | status = inb(chip->vendor->base + 1); | 84 | status = inb(chip->vendor->base + 1); |
85 | if ((status & ATML_STATUS_DATA_AVAIL) == 0) { | 85 | if ((status & ATML_STATUS_DATA_AVAIL) == 0) { |
86 | dev_err(&chip->pci_dev->dev, | 86 | dev_err(chip->dev, |
87 | "error reading data\n"); | 87 | "error reading data\n"); |
88 | return -EIO; | 88 | return -EIO; |
89 | } | 89 | } |
@@ -93,7 +93,7 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 * buf, size_t count) | |||
93 | /* make sure data available is gone */ | 93 | /* make sure data available is gone */ |
94 | status = inb(chip->vendor->base + 1); | 94 | status = inb(chip->vendor->base + 1); |
95 | if (status & ATML_STATUS_DATA_AVAIL) { | 95 | if (status & ATML_STATUS_DATA_AVAIL) { |
96 | dev_err(&chip->pci_dev->dev, "data available is stuck\n"); | 96 | dev_err(chip->dev, "data available is stuck\n"); |
97 | return -EIO; | 97 | return -EIO; |
98 | } | 98 | } |
99 | 99 | ||
@@ -104,9 +104,9 @@ static int tpm_atml_send(struct tpm_chip *chip, u8 * buf, size_t count) | |||
104 | { | 104 | { |
105 | int i; | 105 | int i; |
106 | 106 | ||
107 | dev_dbg(&chip->pci_dev->dev, "tpm_atml_send: "); | 107 | dev_dbg(chip->dev, "tpm_atml_send:\n"); |
108 | for (i = 0; i < count; i++) { | 108 | for (i = 0; i < count; i++) { |
109 | dev_dbg(&chip->pci_dev->dev, "0x%x(%d) ", buf[i], buf[i]); | 109 | dev_dbg(chip->dev, "%d 0x%x(%d)\n", i, buf[i], buf[i]); |
110 | outb(buf[i], chip->vendor->base); | 110 | outb(buf[i], chip->vendor->base); |
111 | } | 111 | } |
112 | 112 | ||
@@ -193,7 +193,7 @@ static int __devinit tpm_atml_init(struct pci_dev *pci_dev, | |||
193 | goto out_err; | 193 | goto out_err; |
194 | } | 194 | } |
195 | 195 | ||
196 | if ((rc = tpm_register_hardware(pci_dev, &tpm_atmel)) < 0) | 196 | if ((rc = tpm_register_hardware(&pci_dev->dev, &tpm_atmel)) < 0) |
197 | goto out_err; | 197 | goto out_err; |
198 | 198 | ||
199 | dev_info(&pci_dev->dev, | 199 | dev_info(&pci_dev->dev, |
@@ -206,6 +206,14 @@ out_err: | |||
206 | return rc; | 206 | return rc; |
207 | } | 207 | } |
208 | 208 | ||
209 | static void __devexit tpm_atml_remove(struct pci_dev *pci_dev) | ||
210 | { | ||
211 | struct tpm_chip *chip = pci_get_drvdata(pci_dev); | ||
212 | |||
213 | if ( chip ) | ||
214 | tpm_remove_hardware(chip->dev); | ||
215 | } | ||
216 | |||
209 | static struct pci_device_id tpm_pci_tbl[] __devinitdata = { | 217 | static struct pci_device_id tpm_pci_tbl[] __devinitdata = { |
210 | {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_0)}, | 218 | {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_0)}, |
211 | {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12)}, | 219 | {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12)}, |
@@ -226,7 +234,7 @@ static struct pci_driver atmel_pci_driver = { | |||
226 | .name = "tpm_atmel", | 234 | .name = "tpm_atmel", |
227 | .id_table = tpm_pci_tbl, | 235 | .id_table = tpm_pci_tbl, |
228 | .probe = tpm_atml_init, | 236 | .probe = tpm_atml_init, |
229 | .remove = __devexit_p(tpm_remove), | 237 | .remove = __devexit_p(tpm_atml_remove), |
230 | .suspend = tpm_pm_suspend, | 238 | .suspend = tpm_pm_suspend, |
231 | .resume = tpm_pm_resume, | 239 | .resume = tpm_pm_resume, |
232 | }; | 240 | }; |