Lines Matching +full:drv +full:- +full:id
1 // SPDX-License-Identifier: GPL-2.0-only
19 __u8 id; member
21 { .name = "SGI Impact", .id = 0x10 },
22 { .name = "Phobos G160", .id = 0x35 },
23 { .name = "Phobos G130", .id = 0x36 },
24 { .name = "Phobos G100", .id = 0x37 },
25 { .name = "Set Engineering GFE", .id = 0x38 },
27 { .name = "SGI Newport", .id = 0x7e },
28 { .name = "SGI GR2/GR3", .id = 0x7f },
42 * gio_match_device - Tell if an of_device structure has a matching
56 for (ids = match; ids->id != 0xff; ids++) in gio_match_device()
57 if (ids->id == dev->id.id) in gio_match_device()
69 tmp = get_device(&dev->dev); in gio_dev_get()
80 put_device(&dev->dev); in gio_dev_put()
85 * gio_release_dev - free an gio device structure when all users of it are finished.
102 giodev->dev.bus = &gio_bus_type; in gio_device_register()
103 giodev->dev.parent = &gio_bus; in gio_device_register()
104 return device_register(&giodev->dev); in gio_device_register()
110 device_unregister(&giodev->dev); in gio_device_unregister()
114 static int gio_bus_match(struct device *dev, const struct device_driver *drv) in gio_bus_match() argument
117 struct gio_driver *gio_drv = to_gio_driver(drv); in gio_bus_match()
119 return gio_match_device(gio_drv->id_table, gio_dev) != NULL; in gio_bus_match()
124 int error = -ENODEV; in gio_device_probe()
125 struct gio_driver *drv; in gio_device_probe() local
129 drv = to_gio_driver(dev->driver); in gio_device_probe()
132 if (!drv->probe) in gio_device_probe()
137 match = gio_match_device(drv->id_table, gio_dev); in gio_device_probe()
139 error = drv->probe(gio_dev, match); in gio_device_probe()
149 struct gio_driver *drv = to_gio_driver(dev->driver); in gio_device_remove() local
151 if (drv->remove) in gio_device_remove()
152 drv->remove(gio_dev); in gio_device_remove()
158 struct gio_driver *drv = to_gio_driver(dev->driver); in gio_device_shutdown() local
160 if (dev->driver && drv->shutdown) in gio_device_shutdown()
161 drv->shutdown(gio_dev); in gio_device_shutdown()
169 return sysfs_emit(buf, "gio:%x\n", gio_dev->id.id); in modalias_show()
179 return sysfs_emit(buf, "%s\n", giodev->name); in name_show()
189 return sysfs_emit(buf, "%x\n", giodev->id.id); in id_show()
191 static DEVICE_ATTR_RO(id);
205 add_uevent_var(env, "MODALIAS=gio:%x", gio_dev->id.id); in gio_device_uevent()
209 int gio_register_driver(struct gio_driver *drv) in gio_register_driver() argument
212 if (!drv->driver.name) in gio_register_driver()
213 drv->driver.name = drv->name; in gio_register_driver()
214 if (!drv->driver.owner) in gio_register_driver()
215 drv->driver.owner = drv->owner; in gio_register_driver()
216 drv->driver.bus = &gio_bus_type; in gio_register_driver()
219 return driver_register(&drv->driver); in gio_register_driver()
223 void gio_unregister_driver(struct gio_driver *drv) in gio_unregister_driver() argument
225 driver_unregister(&drv->driver); in gio_unregister_driver()
231 u32 tmp = sgimc->giopar; in gio_set_master()
233 switch (dev->slotno) { in gio_set_master()
244 sgimc->giopar = tmp; in gio_set_master()
250 u32 tmp = sgimc->giopar; in ip22_gio_set_64bit()
263 sgimc->giopar = tmp; in ip22_gio_set_64bit()
331 __u8 id; in ip22_check_gio() local
351 id = GIO_ID(tmp); in ip22_check_gio()
357 if (id == gio_name_table[i].id) { in ip22_check_gio()
362 printk(KERN_INFO "GIO: slot %d : %s (id %x)\n", in ip22_check_gio()
363 slotno, name, id); in ip22_check_gio()
367 gio_dev->name = name; in ip22_check_gio()
368 gio_dev->slotno = slotno; in ip22_check_gio()
369 gio_dev->id.id = id; in ip22_check_gio()
370 gio_dev->resource.start = addr; in ip22_check_gio()
371 gio_dev->resource.end = addr + 0x3fffff; in ip22_check_gio()
372 gio_dev->resource.flags = IORESOURCE_MEM; in ip22_check_gio()
373 gio_dev->irq = irq; in ip22_check_gio()
374 dev_set_name(&gio_dev->dev, "%d", slotno); in ip22_check_gio()
419 if (get_dbe(pbdma, (unsigned int *)&hpc3c1->pbdma[1])) in ip22_gio_init()