Lines Matching refs:cdev

60 static int ur_probe(struct ccw_device *cdev);
61 static void ur_remove(struct ccw_device *cdev);
62 static int ur_set_online(struct ccw_device *cdev);
63 static int ur_set_offline(struct ccw_device *cdev);
64 static int ur_pm_suspend(struct ccw_device *cdev);
101 static struct urdev *urdev_alloc(struct ccw_device *cdev) in urdev_alloc() argument
108 urd->reclen = cdev->id.driver_info; in urdev_alloc()
109 ccw_device_get_id(cdev, &urd->dev_id); in urdev_alloc()
114 urd->cdev = cdev; in urdev_alloc()
115 get_device(&cdev->dev); in urdev_alloc()
122 if (urd->cdev) in urdev_free()
123 put_device(&urd->cdev->dev); in urdev_free()
132 static struct urdev *urdev_get_from_cdev(struct ccw_device *cdev) in urdev_get_from_cdev() argument
137 spin_lock_irqsave(get_ccwdev_lock(cdev), flags); in urdev_get_from_cdev()
138 urd = dev_get_drvdata(&cdev->dev); in urdev_get_from_cdev()
141 spin_unlock_irqrestore(get_ccwdev_lock(cdev), flags); in urdev_get_from_cdev()
148 struct ccw_device *cdev; in urdev_get_from_devno() local
152 cdev = get_ccwdev_by_busid(&ur_driver, bus_id); in urdev_get_from_devno()
153 if (!cdev) in urdev_get_from_devno()
155 urd = urdev_get_from_cdev(cdev); in urdev_get_from_devno()
156 put_device(&cdev->dev); in urdev_get_from_devno()
175 static int ur_pm_suspend(struct ccw_device *cdev) in ur_pm_suspend() argument
177 struct urdev *urd = dev_get_drvdata(&cdev->dev); in ur_pm_suspend()
179 TRACE("ur_pm_suspend: cdev=%p\n", cdev); in ur_pm_suspend()
182 "suspend.\n", dev_name(&cdev->dev), ur_banner); in ur_pm_suspend()
273 struct ccw_device *cdev = urd->cdev; in do_ur_io() local
284 spin_lock_irq(get_ccwdev_lock(cdev)); in do_ur_io()
285 rc = ccw_device_start(cdev, cpa, 1, 0, 0); in do_ur_io()
286 spin_unlock_irq(get_ccwdev_lock(cdev)); in do_ur_io()
304 static void ur_int_handler(struct ccw_device *cdev, unsigned long intparm, in ur_int_handler() argument
317 urd = dev_get_drvdata(&cdev->dev); in ur_int_handler()
828 static int ur_probe(struct ccw_device *cdev) in ur_probe() argument
833 TRACE("ur_probe: cdev=%p\n", cdev); in ur_probe()
836 urd = urdev_alloc(cdev); in ur_probe()
842 rc = ur_create_attributes(&cdev->dev); in ur_probe()
847 cdev->handler = ur_int_handler; in ur_probe()
859 spin_lock_irq(get_ccwdev_lock(cdev)); in ur_probe()
860 dev_set_drvdata(&cdev->dev, urd); in ur_probe()
861 spin_unlock_irq(get_ccwdev_lock(cdev)); in ur_probe()
867 ur_remove_attributes(&cdev->dev); in ur_probe()
875 static int ur_set_online(struct ccw_device *cdev) in ur_set_online() argument
881 TRACE("ur_set_online: cdev=%p\n", cdev); in ur_set_online()
884 urd = urdev_get_from_cdev(cdev); in ur_set_online()
913 if (urd->cdev->id.cu_type == READER_PUNCH_DEVTYPE) { in ur_set_online()
915 sprintf(node_id, "vmrdr-%s", dev_name(&cdev->dev)); in ur_set_online()
917 sprintf(node_id, "vmpun-%s", dev_name(&cdev->dev)); in ur_set_online()
918 } else if (urd->cdev->id.cu_type == PRINTER_DEVTYPE) { in ur_set_online()
919 sprintf(node_id, "vmprt-%s", dev_name(&cdev->dev)); in ur_set_online()
925 urd->device = device_create(vmur_class, &cdev->dev, in ur_set_online()
946 static int ur_set_offline_force(struct ccw_device *cdev, int force) in ur_set_offline_force() argument
951 TRACE("ur_set_offline: cdev=%p\n", cdev); in ur_set_offline_force()
952 urd = urdev_get_from_cdev(cdev); in ur_set_offline_force()
977 static int ur_set_offline(struct ccw_device *cdev) in ur_set_offline() argument
982 rc = ur_set_offline_force(cdev, 0); in ur_set_offline()
987 static void ur_remove(struct ccw_device *cdev) in ur_remove() argument
995 if (cdev->online) in ur_remove()
996 ur_set_offline_force(cdev, 1); in ur_remove()
997 ur_remove_attributes(&cdev->dev); in ur_remove()
999 spin_lock_irqsave(get_ccwdev_lock(cdev), flags); in ur_remove()
1000 urdev_put(dev_get_drvdata(&cdev->dev)); in ur_remove()
1001 dev_set_drvdata(&cdev->dev, NULL); in ur_remove()
1002 spin_unlock_irqrestore(get_ccwdev_lock(cdev), flags); in ur_remove()