Lines Matching refs:chip

70 	struct cb710_chip *chip = data;  in cb710_irq_handler()  local
71 struct cb710_slot *slot = &chip->slot[0]; in cb710_irq_handler()
75 spin_lock(&chip->irq_lock); /* incl. smp_rmb() */ in cb710_irq_handler()
77 for (nr = chip->slots; nr; ++slot, --nr) { in cb710_irq_handler()
83 spin_unlock(&chip->irq_lock); in cb710_irq_handler()
92 struct cb710_chip *chip = cb710_slot_to_chip(slot); in cb710_release_slot() local
95 atomic_dec(&chip->slot_refs_count); in cb710_release_slot()
99 static int cb710_register_slot(struct cb710_chip *chip, in cb710_register_slot() argument
102 int nr = chip->slots; in cb710_register_slot()
103 struct cb710_slot *slot = &chip->slot[nr]; in cb710_register_slot()
106 dev_dbg(cb710_chip_dev(chip), in cb710_register_slot()
108 name, chip->platform_id, nr, slot_mask, io_offset); in cb710_register_slot()
112 ++chip->slots; in cb710_register_slot()
115 slot->iobase = chip->iobase + io_offset; in cb710_register_slot()
117 slot->pdev.id = chip->platform_id; in cb710_register_slot()
118 slot->pdev.dev.parent = &chip->pdev->dev; in cb710_register_slot()
124 atomic_inc(&chip->slot_refs_count); in cb710_register_slot()
133 --chip->slots; in cb710_register_slot()
137 chip->slot_mask |= slot_mask; in cb710_register_slot()
142 static void cb710_unregister_slot(struct cb710_chip *chip, in cb710_unregister_slot() argument
145 int nr = chip->slots - 1; in cb710_unregister_slot()
147 if (!(chip->slot_mask & slot_mask)) in cb710_unregister_slot()
150 platform_device_unregister(&chip->slot[nr].pdev); in cb710_unregister_slot()
154 BUG_ON(chip->slot[nr].irq_handler != NULL); in cb710_unregister_slot()
157 --chip->slots; in cb710_unregister_slot()
158 chip->slot_mask &= ~slot_mask; in cb710_unregister_slot()
164 struct cb710_chip *chip = cb710_slot_to_chip(slot); in cb710_set_irq_handler() local
167 spin_lock_irqsave(&chip->irq_lock, flags); in cb710_set_irq_handler()
169 spin_unlock_irqrestore(&chip->irq_lock, flags); in cb710_set_irq_handler()
177 struct cb710_chip *chip = pci_get_drvdata(pdev); in cb710_suspend() local
179 devm_free_irq(&pdev->dev, pdev->irq, chip); in cb710_suspend()
189 struct cb710_chip *chip = pci_get_drvdata(pdev); in cb710_resume() local
199 cb710_irq_handler, IRQF_SHARED, KBUILD_MODNAME, chip); in cb710_resume()
207 struct cb710_chip *chip; in cb710_probe() local
235 chip = devm_kzalloc(&pdev->dev, in cb710_probe()
236 sizeof(*chip) + n * sizeof(*chip->slot), GFP_KERNEL); in cb710_probe()
237 if (!chip) in cb710_probe()
248 spin_lock_init(&chip->irq_lock); in cb710_probe()
249 chip->pdev = pdev; in cb710_probe()
250 chip->iobase = pcim_iomap_table(pdev)[0]; in cb710_probe()
252 pci_set_drvdata(pdev, chip); in cb710_probe()
255 cb710_irq_handler, IRQF_SHARED, KBUILD_MODNAME, chip); in cb710_probe()
264 err = ida_get_new(&cb710_ida, &chip->platform_id); in cb710_probe()
273 chip->platform_id, chip->iobase, pdev->irq); in cb710_probe()
276 err = cb710_register_slot(chip, in cb710_probe()
283 err = cb710_register_slot(chip, in cb710_probe()
290 err = cb710_register_slot(chip, in cb710_probe()
298 cb710_unregister_slot(chip, CB710_SLOT_MS); in cb710_probe()
300 cb710_unregister_slot(chip, CB710_SLOT_MMC); in cb710_probe()
303 BUG_ON(atomic_read(&chip->slot_refs_count) != 0); in cb710_probe()
310 struct cb710_chip *chip = pci_get_drvdata(pdev); in cb710_remove_one() local
313 cb710_unregister_slot(chip, CB710_SLOT_SM); in cb710_remove_one()
314 cb710_unregister_slot(chip, CB710_SLOT_MS); in cb710_remove_one()
315 cb710_unregister_slot(chip, CB710_SLOT_MMC); in cb710_remove_one()
317 BUG_ON(atomic_read(&chip->slot_refs_count) != 0); in cb710_remove_one()
321 ida_remove(&cb710_ida, chip->platform_id); in cb710_remove_one()