Lines Matching refs:pht
340 struct phantom_device *pht;
366 pht = kzalloc(sizeof(*pht), GFP_KERNEL);
367 if (pht == NULL) {
372 pht->caddr = pci_iomap(pdev, 0, 0);
373 if (pht->caddr == NULL) {
377 pht->iaddr = pci_iomap(pdev, 2, 0);
378 if (pht->iaddr == NULL) {
382 pht->oaddr = pci_iomap(pdev, 3, 0);
383 if (pht->oaddr == NULL) {
388 mutex_init(&pht->open_lock);
389 spin_lock_init(&pht->regs_lock);
390 init_waitqueue_head(&pht->wait);
391 cdev_init(&pht->cdev, &phantom_file_ops);
392 pht->cdev.owner = THIS_MODULE;
394 iowrite32(0, pht->caddr + PHN_IRQCTL);
395 ioread32(pht->caddr + PHN_IRQCTL); /* PCI posting */
397 IRQF_SHARED, "phantom", pht);
403 retval = cdev_add(&pht->cdev, MKDEV(phantom_major, minor), 1);
414 pci_set_drvdata(pdev, pht);
418 free_irq(pdev->irq, pht);
420 pci_iounmap(pdev, pht->oaddr);
422 pci_iounmap(pdev, pht->iaddr);
424 pci_iounmap(pdev, pht->caddr);
426 kfree(pht);
439 struct phantom_device *pht = pci_get_drvdata(pdev);
440 unsigned int minor = MINOR(pht->cdev.dev);
444 cdev_del(&pht->cdev);
446 iowrite32(0, pht->caddr + PHN_IRQCTL);
447 ioread32(pht->caddr + PHN_IRQCTL); /* PCI posting */
448 free_irq(pdev->irq, pht);
450 pci_iounmap(pdev, pht->oaddr);
451 pci_iounmap(pdev, pht->iaddr);
452 pci_iounmap(pdev, pht->caddr);
454 kfree(pht);