• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/s390/cio/

Lines Matching refs:gdev

35 	struct ccwgroup_device *gdev;
38 gdev = container_of(dev, struct ccwgroup_device, dev);
41 if (gdev->creator_id == gdrv->driver_id)
57 __ccwgroup_remove_symlinks(struct ccwgroup_device *gdev)
62 for (i = 0; i < gdev->count; i++) {
64 sysfs_remove_link(&gdev->dev.kobj, str);
65 sysfs_remove_link(&gdev->cdev[i]->dev.kobj, "group_device");
76 struct ccwgroup_device *gdev = to_ccwgroupdev(dev);
78 mutex_lock(&gdev->reg_mutex);
79 __ccwgroup_remove_symlinks(gdev);
81 mutex_unlock(&gdev->reg_mutex);
87 struct ccwgroup_device *gdev;
90 gdev = to_ccwgroupdev(dev);
92 if (gdev->state != CCWGROUP_OFFLINE)
109 struct ccwgroup_device *gdev;
112 gdev = to_ccwgroupdev(dev);
114 for (i = 0; i < gdev->count; i++) {
115 gdev->cdev[i]->dev.driver_data = NULL;
116 put_device(&gdev->cdev[i]->dev);
118 kfree(gdev);
122 __ccwgroup_create_symlinks(struct ccwgroup_device *gdev)
127 for (i = 0; i < gdev->count; i++) {
128 rc = sysfs_create_link(&gdev->cdev[i]->dev.kobj, &gdev->dev.kobj,
132 sysfs_remove_link(&gdev->cdev[i]->dev.kobj,
137 for (i = 0; i < gdev->count; i++) {
139 rc = sysfs_create_link(&gdev->dev.kobj, &gdev->cdev[i]->dev.kobj,
144 sysfs_remove_link(&gdev->dev.kobj, str);
146 for (i = 0; i < gdev->count; i++)
147 sysfs_remove_link(&gdev->cdev[i]->dev.kobj,
166 struct ccwgroup_device *gdev;
173 gdev = kzalloc(sizeof(*gdev) + argc*sizeof(gdev->cdev[0]), GFP_KERNEL);
174 if (!gdev)
177 atomic_set(&gdev->onoff, 0);
178 mutex_init(&gdev->reg_mutex);
179 mutex_lock(&gdev->reg_mutex);
181 gdev->cdev[i] = get_ccwdev_by_busid(cdrv, argv[i]);
185 if (!gdev->cdev[i]
186 || gdev->cdev[i]->id.driver_info !=
187 gdev->cdev[0]->id.driver_info) {
192 if (gdev->cdev[i]->dev.driver_data) {
196 gdev->cdev[i]->dev.driver_data = gdev;
199 gdev->creator_id = creator_id;
200 gdev->count = argc;
201 gdev->dev.bus = &ccwgroup_bus_type;
202 gdev->dev.parent = root;
203 gdev->dev.release = ccwgroup_release;
205 snprintf (gdev->dev.bus_id, BUS_ID_SIZE, "%s",
206 gdev->cdev[0]->dev.bus_id);
208 rc = device_register(&gdev->dev);
211 get_device(&gdev->dev);
212 rc = device_create_file(&gdev->dev, &dev_attr_ungroup);
215 device_unregister(&gdev->dev);
219 rc = __ccwgroup_create_symlinks(gdev);
221 mutex_unlock(&gdev->reg_mutex);
222 put_device(&gdev->dev);
225 device_remove_file(&gdev->dev, &dev_attr_ungroup);
226 device_unregister(&gdev->dev);
229 if (gdev->cdev[i]) {
230 if (gdev->cdev[i]->dev.driver_data == gdev)
231 gdev->cdev[i]->dev.driver_data = NULL;
232 put_device(&gdev->cdev[i]->dev);
234 mutex_unlock(&gdev->reg_mutex);
235 put_device(&gdev->dev);
257 ccwgroup_set_online(struct ccwgroup_device *gdev)
262 if (atomic_cmpxchg(&gdev->onoff, 0, 1) != 0)
264 if (gdev->state == CCWGROUP_ONLINE) {
268 if (!gdev->dev.driver) {
272 gdrv = to_ccwgroupdrv (gdev->dev.driver);
273 if ((ret = gdrv->set_online ? gdrv->set_online(gdev) : 0))
276 gdev->state = CCWGROUP_ONLINE;
278 atomic_set(&gdev->onoff, 0);
283 ccwgroup_set_offline(struct ccwgroup_device *gdev)
288 if (atomic_cmpxchg(&gdev->onoff, 0, 1) != 0)
290 if (gdev->state == CCWGROUP_OFFLINE) {
294 if (!gdev->dev.driver) {
298 gdrv = to_ccwgroupdrv (gdev->dev.driver);
299 if ((ret = gdrv->set_offline ? gdrv->set_offline(gdev) : 0))
302 gdev->state = CCWGROUP_OFFLINE;
304 atomic_set(&gdev->onoff, 0);
311 struct ccwgroup_device *gdev;
316 gdev = to_ccwgroupdev(dev);
320 gdrv = to_ccwgroupdrv (gdev->dev.driver);
327 ccwgroup_set_online(gdev);
329 ccwgroup_set_offline(gdev);
351 struct ccwgroup_device *gdev;
356 gdev = to_ccwgroupdev(dev);
362 pr_debug("%s: device %s\n", __func__, gdev->dev.bus_id);
363 ret = gdrv->probe ? gdrv->probe(gdev) : -ENODEV;
373 struct ccwgroup_device *gdev;
376 gdev = to_ccwgroupdev(dev);
379 pr_debug("%s: device %s\n", __func__, gdev->dev.bus_id);
384 gdrv->remove(gdev);
421 struct ccwgroup_device *gdev = to_ccwgroupdev(dev);
423 mutex_lock(&gdev->reg_mutex);
424 __ccwgroup_remove_symlinks(gdev);
426 mutex_unlock(&gdev->reg_mutex);
442 struct ccwgroup_device *gdev;
445 gdev = (struct ccwgroup_device *)cdev->dev.driver_data;
446 if (get_device(&gdev->dev)) {
447 mutex_lock(&gdev->reg_mutex);
448 if (device_is_registered(&gdev->dev))
449 return gdev;
450 mutex_unlock(&gdev->reg_mutex);
451 put_device(&gdev->dev);
461 struct ccwgroup_device *gdev;
466 gdev = __ccwgroup_get_gdev_by_cdev(cdev);
467 if (gdev) {
468 __ccwgroup_remove_symlinks(gdev);
469 device_unregister(&gdev->dev);
470 mutex_unlock(&gdev->reg_mutex);
471 put_device(&gdev->dev);