Lines Matching refs:edev

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