Lines Matching refs:card
89 _set_debug(struct sfax_hw *card) in _set_debug() argument
91 card->isac.dch.debug = debug; in _set_debug()
92 card->isar.ch[0].bch.debug = debug; in _set_debug()
93 card->isar.ch[1].bch.debug = debug; in _set_debug()
100 struct sfax_hw *card; in set_debug() local
105 list_for_each_entry(card, &Cards, list) in set_debug()
106 _set_debug(card); in set_debug()
354 release_card(struct sfax_hw *card) { in release_card() argument
357 spin_lock_irqsave(&card->lock, flags); in release_card()
358 disable_hwirq(card); in release_card()
359 spin_unlock_irqrestore(&card->lock, flags); in release_card()
360 card->isac.release(&card->isac); in release_card()
361 free_irq(card->irq, card); in release_card()
362 card->isar.release(&card->isar); in release_card()
363 mISDN_unregister_device(&card->isac.dch.dev); in release_card()
364 release_region(card->cfg, 256); in release_card()
365 pci_disable_device(card->pdev); in release_card()
366 pci_set_drvdata(card->pdev, NULL); in release_card()
368 list_del(&card->list); in release_card()
370 kfree(card); in release_card()
375 setup_instance(struct sfax_hw *card) in setup_instance() argument
381 snprintf(card->name, MISDN_MAX_IDLEN - 1, "Speedfax.%d", sfax_cnt + 1); in setup_instance()
383 list_add_tail(&card->list, &Cards); in setup_instance()
385 _set_debug(card); in setup_instance()
386 spin_lock_init(&card->lock); in setup_instance()
387 card->isac.hwlock = &card->lock; in setup_instance()
388 card->isar.hwlock = &card->lock; in setup_instance()
389 card->isar.ctrl = (void *)&sfax_ctrl; in setup_instance()
390 card->isac.name = card->name; in setup_instance()
391 card->isar.name = card->name; in setup_instance()
392 card->isar.owner = THIS_MODULE; in setup_instance()
394 err = request_firmware(&firmware, "isdn/ISAR.BIN", &card->pdev->dev); in setup_instance()
397 card->name, err); in setup_instance()
402 card->name, firmware->size); in setup_instance()
404 mISDNisac_init(&card->isac, card); in setup_instance()
406 card->isac.dch.dev.D.ctrl = sfax_dctrl; in setup_instance()
407 card->isac.dch.dev.Bprotocols = in setup_instance()
408 mISDNisar_init(&card->isar, card); in setup_instance()
410 set_channelmap(i + 1, card->isac.dch.dev.channelmap); in setup_instance()
411 list_add(&card->isar.ch[i].bch.ch.list, in setup_instance()
412 &card->isac.dch.dev.bchannels); in setup_instance()
415 err = setup_speedfax(card); in setup_instance()
418 err = card->isar.init(&card->isar); in setup_instance()
421 err = mISDN_register_device(&card->isac.dch.dev, in setup_instance()
422 &card->pdev->dev, card->name); in setup_instance()
425 err = init_card(card); in setup_instance()
428 err = card->isar.firmware(&card->isar, firmware->data, firmware->size); in setup_instance()
435 disable_hwirq(card); in setup_instance()
436 free_irq(card->irq, card); in setup_instance()
438 mISDN_unregister_device(&card->isac.dch.dev); in setup_instance()
440 release_region(card->cfg, 256); in setup_instance()
442 card->isac.release(&card->isac); in setup_instance()
443 card->isar.release(&card->isar); in setup_instance()
446 pci_disable_device(card->pdev); in setup_instance()
448 list_del(&card->list); in setup_instance()
450 kfree(card); in setup_instance()
458 struct sfax_hw *card = kzalloc(sizeof(struct sfax_hw), GFP_KERNEL); in sfaxpci_probe() local
460 if (!card) { in sfaxpci_probe()
464 card->pdev = pdev; in sfaxpci_probe()
467 kfree(card); in sfaxpci_probe()
474 card->cfg = pci_resource_start(pdev, 0); in sfaxpci_probe()
475 card->irq = pdev->irq; in sfaxpci_probe()
476 pci_set_drvdata(pdev, card); in sfaxpci_probe()
477 err = setup_instance(card); in sfaxpci_probe()
486 struct sfax_hw *card = pci_get_drvdata(pdev); in sfax_remove_pci() local
488 if (card) in sfax_remove_pci()
489 release_card(card); in sfax_remove_pci()