Lines Matching defs:pht
255 struct phantom_device *pht;
277 pht = kzalloc(sizeof(*pht), GFP_KERNEL);
278 if (pht == NULL) {
283 pht->caddr = pci_iomap(pdev, 0, 0);
284 if (pht->caddr == NULL) {
288 pht->iaddr = pci_iomap(pdev, 2, 0);
289 if (pht->iaddr == NULL) {
293 pht->oaddr = pci_iomap(pdev, 3, 0);
294 if (pht->oaddr == NULL) {
299 mutex_init(&pht->open_lock);
300 spin_lock_init(&pht->ioctl_lock);
301 init_waitqueue_head(&pht->wait);
302 cdev_init(&pht->cdev, &phantom_file_ops);
303 pht->cdev.owner = THIS_MODULE;
305 iowrite32(0, pht->caddr + PHN_IRQCTL);
306 ioread32(pht->caddr + PHN_IRQCTL); /* PCI posting */
308 IRQF_SHARED | IRQF_DISABLED, "phantom", pht);
314 retval = cdev_add(&pht->cdev, MKDEV(phantom_major, minor), 1);
324 pci_set_drvdata(pdev, pht);
328 free_irq(pdev->irq, pht);
330 pci_iounmap(pdev, pht->oaddr);
332 pci_iounmap(pdev, pht->iaddr);
334 pci_iounmap(pdev, pht->caddr);
336 kfree(pht);
349 struct phantom_device *pht = pci_get_drvdata(pdev);
350 unsigned int minor = MINOR(pht->cdev.dev);
354 cdev_del(&pht->cdev);
356 iowrite32(0, pht->caddr + PHN_IRQCTL);
357 ioread32(pht->caddr + PHN_IRQCTL); /* PCI posting */
358 free_irq(pdev->irq, pht);
360 pci_iounmap(pdev, pht->oaddr);
361 pci_iounmap(pdev, pht->iaddr);
362 pci_iounmap(pdev, pht->caddr);
364 kfree(pht);