Lines Matching refs:edev

45 			 struct eisa_device *edev)  in is_forced_dev()  argument
50 x = (root->bus_nr << 8) | edev->slot; in is_forced_dev()
58 static void __init eisa_name_device(struct eisa_device *edev) in eisa_name_device() argument
63 if (!strcmp(edev->id.sig, eisa_table[i].id.sig)) { in eisa_name_device()
64 strlcpy(edev->pretty_name, in eisa_name_device()
66 sizeof(edev->pretty_name)); in eisa_name_device()
72 sprintf(edev->pretty_name, "EISA device %.7s", edev->id.sig); in eisa_name_device()
111 struct eisa_device *edev = to_eisa_device(dev); in eisa_bus_match() local
119 if (!strcmp(eids->sig, edev->id.sig) && in eisa_bus_match()
120 edev->state & EISA_CONFIG_ENABLED) { in eisa_bus_match()
121 edev->id.driver_data = eids->driver_data; in eisa_bus_match()
133 struct eisa_device *edev = to_eisa_device(dev); in eisa_bus_uevent() local
135 add_uevent_var(env, "MODALIAS=" EISA_DEVICE_MODALIAS_FMT, edev->id.sig); in eisa_bus_uevent()
162 struct eisa_device *edev = to_eisa_device(dev); in eisa_show_sig() local
163 return sprintf(buf, "%s\n", edev->id.sig); in eisa_show_sig()
172 struct eisa_device *edev = to_eisa_device(dev); in eisa_show_state() local
173 return sprintf(buf, "%d\n", edev->state & EISA_CONFIG_ENABLED); in eisa_show_state()
182 struct eisa_device *edev = to_eisa_device(dev); in eisa_show_modalias() local
183 return sprintf(buf, EISA_DEVICE_MODALIAS_FMT "\n", edev->id.sig); in eisa_show_modalias()
189 struct eisa_device *edev, in eisa_init_device() argument
202 memcpy(edev->id.sig, sig, EISA_SIG_LEN); in eisa_init_device()
203 edev->slot = slot; in eisa_init_device()
204 edev->state = inb(SLOT_ADDRESS(root, slot) + EISA_CONFIG_OFFSET) in eisa_init_device()
206 edev->base_addr = SLOT_ADDRESS(root, slot); in eisa_init_device()
207 edev->dma_mask = root->dma_mask; /* Default DMA mask */ in eisa_init_device()
208 eisa_name_device(edev); in eisa_init_device()
209 edev->dev.parent = root->dev; in eisa_init_device()
210 edev->dev.bus = &eisa_bus_type; in eisa_init_device()
211 edev->dev.dma_mask = &edev->dma_mask; in eisa_init_device()
212 edev->dev.coherent_dma_mask = edev->dma_mask; in eisa_init_device()
213 dev_set_name(&edev->dev, "%02X:%02X", root->bus_nr, slot); in eisa_init_device()
217 edev->res[i].name = edev->pretty_name; in eisa_init_device()
219 edev->res[i].name = edev->id.sig; in eisa_init_device()
223 if (is_forced_dev(enable_dev, enable_dev_count, root, edev)) in eisa_init_device()
224 edev->state = EISA_CONFIG_ENABLED | EISA_CONFIG_FORCED; in eisa_init_device()
226 if (is_forced_dev(disable_dev, disable_dev_count, root, edev)) in eisa_init_device()
227 edev->state = EISA_CONFIG_FORCED; in eisa_init_device()
232 static int __init eisa_register_device(struct eisa_device *edev) in eisa_register_device() argument
234 int rc = device_register(&edev->dev); in eisa_register_device()
236 put_device(&edev->dev); in eisa_register_device()
240 rc = device_create_file(&edev->dev, &dev_attr_signature); in eisa_register_device()
243 rc = device_create_file(&edev->dev, &dev_attr_enabled); in eisa_register_device()
246 rc = device_create_file(&edev->dev, &dev_attr_modalias); in eisa_register_device()
253 device_remove_file(&edev->dev, &dev_attr_enabled); in eisa_register_device()
255 device_remove_file(&edev->dev, &dev_attr_signature); in eisa_register_device()
257 device_unregister(&edev->dev); in eisa_register_device()
262 struct eisa_device *edev, in eisa_request_resources() argument
275 edev->res[i].start = edev->res[i].end = 0; 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 + 0xff; in eisa_request_resources()
284 edev->res[i].flags = IORESOURCE_IO; in eisa_request_resources()
286 edev->res[i].name = NULL; in eisa_request_resources()
287 edev->res[i].start = SLOT_ADDRESS(root, slot) in eisa_request_resources()
289 edev->res[i].end = edev->res[i].start + 3; in eisa_request_resources()
290 edev->res[i].flags = IORESOURCE_IO | IORESOURCE_BUSY; in eisa_request_resources()
293 if (request_resource(root->res, &edev->res[i])) in eisa_request_resources()
301 release_resource(&edev->res[i]); in eisa_request_resources()
306 static void __init eisa_release_resources(struct eisa_device *edev) in eisa_release_resources() argument
311 if (edev->res[i].start || edev->res[i].end) in eisa_release_resources()
312 release_resource(&edev->res[i]); in eisa_release_resources()
318 struct eisa_device *edev; in eisa_probe() local
326 edev = kzalloc(sizeof(*edev), GFP_KERNEL); in eisa_probe()
327 if (!edev) in eisa_probe()
330 if (eisa_request_resources(root, edev, 0)) { in eisa_probe()
333 kfree(edev); in eisa_probe()
339 if (eisa_init_device(root, edev, 0)) { in eisa_probe()
340 eisa_release_resources(edev); in eisa_probe()
341 kfree(edev); in eisa_probe()
347 dev_info(&edev->dev, "EISA: Mainboard %s detected\n", edev->id.sig); in eisa_probe()
349 if (eisa_register_device(edev)) { in eisa_probe()
350 dev_err(&edev->dev, "EISA: Failed to register %s\n", in eisa_probe()
351 edev->id.sig); in eisa_probe()
352 eisa_release_resources(edev); in eisa_probe()
353 kfree(edev); in eisa_probe()
359 edev = kzalloc(sizeof(*edev), GFP_KERNEL); in eisa_probe()
360 if (!edev) { in eisa_probe()
366 if (eisa_request_resources(root, edev, i)) { in eisa_probe()
370 kfree(edev); in eisa_probe()
374 if (eisa_init_device(root, edev, i)) { in eisa_probe()
375 eisa_release_resources(edev); in eisa_probe()
376 kfree(edev); in eisa_probe()
380 if (edev->state == (EISA_CONFIG_ENABLED | EISA_CONFIG_FORCED)) in eisa_probe()
382 else if (edev->state == EISA_CONFIG_FORCED) in eisa_probe()
384 else if (edev->state == 0) in eisa_probe()
389 dev_info(&edev->dev, "EISA: slot %d: %s detected%s\n", i, in eisa_probe()
390 edev->id.sig, enabled_str); in eisa_probe()
394 if (eisa_register_device(edev)) { in eisa_probe()
395 dev_err(&edev->dev, "EISA: Failed to register %s\n", in eisa_probe()
396 edev->id.sig); in eisa_probe()
397 eisa_release_resources(edev); in eisa_probe()
398 kfree(edev); in eisa_probe()