Lines Matching refs:card
27 u64 whci_capdata_quirks(struct whci_card *card, u64 capdata) in whci_capdata_quirks() argument
30 struct pci_dev *pci_dev = card->pci; in whci_capdata_quirks()
92 static int whci_add_cap(struct whci_card *card, int n) in whci_add_cap() argument
98 umc = umc_device_create(&card->pci->dev, n); in whci_add_cap()
102 capdata = le_readq(card->uwbbase + UWBCAPDATA(n)); in whci_add_cap()
106 capdata = whci_capdata_quirks(card, capdata); in whci_add_cap()
112 umc->resource.start = pci_resource_start(card->pci, bar) in whci_add_cap()
117 umc->resource.flags = card->pci->resource[bar].flags; in whci_add_cap()
118 umc->resource.parent = &card->pci->resource[bar]; in whci_add_cap()
119 umc->irq = card->pci->irq; in whci_add_cap()
124 card->devs[n] = umc; in whci_add_cap()
132 static void whci_del_cap(struct whci_card *card, int n) in whci_del_cap() argument
134 struct umc_dev *umc = card->devs[n]; in whci_del_cap()
155 struct whci_card *card; in whci_probe() local
176 card = kzalloc(sizeof(struct whci_card) in whci_probe()
179 if (card == NULL) in whci_probe()
181 card->pci = pci; in whci_probe()
182 card->n_caps = n_caps; in whci_probe()
186 UWBCAPDATA_SIZE(card->n_caps), in whci_probe()
190 card->uwbbase = pci_iomap(pci, 0, UWBCAPDATA_SIZE(card->n_caps)); in whci_probe()
191 if (!card->uwbbase) in whci_probe()
195 for (n = 0; n <= card->n_caps; n++) { in whci_probe()
196 err = whci_add_cap(card, n); in whci_probe()
206 pci_set_drvdata(pci, card); in whci_probe()
210 pci_iounmap(pci, card->uwbbase); in whci_probe()
212 release_mem_region(pci_resource_start(pci, 0), UWBCAPDATA_SIZE(card->n_caps)); in whci_probe()
214 kfree(card); in whci_probe()
226 struct whci_card *card = pci_get_drvdata(pci); in whci_remove() local
232 for (n = card->n_caps; n >= 0 ; n--) in whci_remove()
233 whci_del_cap(card, n); in whci_remove()
234 pci_iounmap(pci, card->uwbbase); in whci_remove()
235 release_mem_region(pci_resource_start(pci, 0), UWBCAPDATA_SIZE(card->n_caps)); in whci_remove()
236 kfree(card); in whci_remove()