Lines Matching defs:edev

44 			 struct eisa_device *edev)
49 x = (root->bus_nr << 8) | edev->slot;
57 static void __init eisa_name_device(struct eisa_device *edev)
62 if (!strcmp(edev->id.sig, eisa_table[i].id.sig)) {
63 strscpy(edev->pretty_name,
65 sizeof(edev->pretty_name));
71 sprintf(edev->pretty_name, "EISA device %.7s", edev->id.sig);
110 struct eisa_device *edev = to_eisa_device(dev);
118 if (!strcmp(eids->sig, edev->id.sig) &&
119 edev->state & EISA_CONFIG_ENABLED) {
120 edev->id.driver_data = eids->driver_data;
132 const struct eisa_device *edev = to_eisa_device(dev);
134 add_uevent_var(env, "MODALIAS=" EISA_DEVICE_MODALIAS_FMT, edev->id.sig);
161 struct eisa_device *edev = to_eisa_device(dev);
162 return sprintf(buf, "%s\n", edev->id.sig);
169 struct eisa_device *edev = to_eisa_device(dev);
170 return sprintf(buf, "%d\n", edev->state & EISA_CONFIG_ENABLED);
177 struct eisa_device *edev = to_eisa_device(dev);
178 return sprintf(buf, EISA_DEVICE_MODALIAS_FMT "\n", edev->id.sig);
183 struct eisa_device *edev,
196 memcpy(edev->id.sig, sig, EISA_SIG_LEN);
197 edev->slot = slot;
198 edev->state = inb(SLOT_ADDRESS(root, slot) + EISA_CONFIG_OFFSET)
200 edev->base_addr = SLOT_ADDRESS(root, slot);
201 edev->dma_mask = root->dma_mask; /* Default DMA mask */
202 eisa_name_device(edev);
203 edev->dev.parent = root->dev;
204 edev->dev.bus = &eisa_bus_type;
205 edev->dev.dma_mask = &edev->dma_mask;
206 edev->dev.coherent_dma_mask = edev->dma_mask;
207 dev_set_name(&edev->dev, "%02X:%02X", root->bus_nr, slot);
211 edev->res[i].name = edev->pretty_name;
213 edev->res[i].name = edev->id.sig;
217 if (is_forced_dev(enable_dev, enable_dev_count, root, edev))
218 edev->state = EISA_CONFIG_ENABLED | EISA_CONFIG_FORCED;
220 if (is_forced_dev(disable_dev, disable_dev_count, root, edev))
221 edev->state = EISA_CONFIG_FORCED;
226 static int __init eisa_register_device(struct eisa_device *edev)
228 int rc = device_register(&edev->dev);
230 put_device(&edev->dev);
234 rc = device_create_file(&edev->dev, &dev_attr_signature);
237 rc = device_create_file(&edev->dev, &dev_attr_enabled);
240 rc = device_create_file(&edev->dev, &dev_attr_modalias);
247 device_remove_file(&edev->dev, &dev_attr_enabled);
249 device_remove_file(&edev->dev, &dev_attr_signature);
251 device_unregister(&edev->dev);
256 struct eisa_device *edev,
269 edev->res[i].start = edev->res[i].end = 0;
274 edev->res[i].name = NULL;
275 edev->res[i].start = SLOT_ADDRESS(root, slot)
277 edev->res[i].end = edev->res[i].start + 0xff;
278 edev->res[i].flags = IORESOURCE_IO;
280 edev->res[i].name = NULL;
281 edev->res[i].start = SLOT_ADDRESS(root, slot)
283 edev->res[i].end = edev->res[i].start + 3;
284 edev->res[i].flags = IORESOURCE_IO | IORESOURCE_BUSY;
287 if (request_resource(root->res, &edev->res[i]))
295 release_resource(&edev->res[i]);
300 static void __init eisa_release_resources(struct eisa_device *edev)
305 if (edev->res[i].start || edev->res[i].end)
306 release_resource(&edev->res[i]);
312 struct eisa_device *edev;
320 edev = kzalloc(sizeof(*edev), GFP_KERNEL);
321 if (!edev)
324 if (eisa_request_resources(root, edev, 0)) {
327 kfree(edev);
333 if (eisa_init_device(root, edev, 0)) {
334 eisa_release_resources(edev);
335 kfree(edev);
341 dev_info(&edev->dev, "EISA: Mainboard %s detected\n", edev->id.sig);
343 if (eisa_register_device(edev)) {
344 dev_err(&edev->dev, "EISA: Failed to register %s\n",
345 edev->id.sig);
346 eisa_release_resources(edev);
347 kfree(edev);
353 edev = kzalloc(sizeof(*edev), GFP_KERNEL);
354 if (!edev) {
360 if (eisa_request_resources(root, edev, i)) {
364 kfree(edev);
368 if (eisa_init_device(root, edev, i)) {
369 eisa_release_resources(edev);
370 kfree(edev);
374 if (edev->state == (EISA_CONFIG_ENABLED | EISA_CONFIG_FORCED))
376 else if (edev->state == EISA_CONFIG_FORCED)
378 else if (edev->state == 0)
383 dev_info(&edev->dev, "EISA: slot %d: %s detected%s\n", i,
384 edev->id.sig, enabled_str);
388 if (eisa_register_device(edev)) {
389 dev_err(&edev->dev, "EISA: Failed to register %s\n",
390 edev->id.sig);
391 eisa_release_resources(edev);
392 kfree(edev);