Lines Matching refs:device
44 struct nvkm_device *device, *match = NULL; in nvkm_device_find() local
46 list_for_each_entry(device, &nv_devices, head) { in nvkm_device_find()
47 if (device->handle == name) { in nvkm_device_find()
48 match = device; in nvkm_device_find()
59 struct nvkm_device *device; in nvkm_device_list() local
62 list_for_each_entry(device, &nv_devices, head) { in nvkm_device_list()
64 name[nr - 1] = device->handle; in nvkm_device_list()
82 struct nvkm_device *device = nv_device(object); in nvkm_devobj_info() local
83 struct nvkm_fb *pfb = nvkm_fb(device); in nvkm_devobj_info()
84 struct nvkm_instmem *imem = nvkm_instmem(device); in nvkm_devobj_info()
96 switch (device->chipset) { in nvkm_devobj_info()
110 if (device->pdev) { in nvkm_devobj_info()
111 if (pci_find_capability(device->pdev, PCI_CAP_ID_AGP)) in nvkm_devobj_info()
114 if (pci_is_pcie(device->pdev)) in nvkm_devobj_info()
124 switch (device->card_type) { in nvkm_devobj_info()
140 args->v0.chipset = device->chipset; in nvkm_devobj_info()
141 args->v0.revision = device->chiprev; in nvkm_devobj_info()
203 struct nvkm_device *device = nv_device(object); in nvkm_devobj_map() local
204 *addr = nv_device_resource_start(device, 0); in nvkm_devobj_map()
205 *size = nv_device_resource_len(device, 0); in nvkm_devobj_map()
290 struct nvkm_device *device; local
301 args->v0.version, args->v0.device,
311 device = nv_device(client->device);
312 if (args->v0.device != ~0) {
313 device = nvkm_device_find(args->v0.device);
314 if (!device)
318 ret = nvkm_parent_create(parent, nv_object(device), oclass, 0,
328 mmio_base = nv_device_resource_start(device, 0);
329 mmio_size = nv_device_resource_len(device, 0);
340 !device->card_type) {
362 device->chipset = (boot0 & 0x1ff00000) >> 20;
363 device->chiprev = (boot0 & 0x000000ff);
364 switch (device->chipset & 0x1f0) {
366 if (0x461 & (1 << (device->chipset & 0xf)))
367 device->card_type = NV_10;
369 device->card_type = NV_11;
370 device->chiprev = 0x00;
373 case 0x020: device->card_type = NV_20; break;
374 case 0x030: device->card_type = NV_30; break;
376 case 0x060: device->card_type = NV_40; break;
380 case 0x0a0: device->card_type = NV_50; break;
382 case 0x0d0: device->card_type = NV_C0; break;
385 case 0x100: device->card_type = NV_E0; break;
387 case 0x120: device->card_type = GM100; break;
394 device->chipset = 0x05;
396 device->chipset = 0x04;
397 device->card_type = NV_04;
400 switch (device->card_type) {
401 case NV_04: ret = nv04_identify(device); break;
403 case NV_11: ret = nv10_identify(device); break;
404 case NV_20: ret = nv20_identify(device); break;
405 case NV_30: ret = nv30_identify(device); break;
406 case NV_40: ret = nv40_identify(device); break;
407 case NV_50: ret = nv50_identify(device); break;
408 case NV_C0: ret = gf100_identify(device); break;
409 case NV_E0: ret = gk104_identify(device); break;
410 case GM100: ret = gm100_identify(device); break;
417 nv_error(device, "unknown chipset, 0x%08x\n", boot0);
421 nv_info(device, "BOOT0 : 0x%08x\n", boot0);
422 nv_info(device, "Chipset: %s (NV%02X)\n",
423 device->cname, device->chipset);
424 nv_info(device, "Family : NV%02X\n", device->card_type);
427 if ( device->card_type <= NV_10 || device->chipset < 0x17 ||
428 (device->chipset >= 0x20 && device->chipset < 0x25))
434 case 0x00000000: device->crystal = 13500; break;
435 case 0x00000040: device->crystal = 14318; break;
436 case 0x00400000: device->crystal = 27000; break;
437 case 0x00400040: device->crystal = 25000; break;
440 nv_debug(device, "crystal freq: %dKHz\n", device->crystal);
443 device->cname = "NULL";
444 device->oclass[NVDEV_SUBDEV_VBIOS] = &nvkm_bios_oclass;
448 !nv_subdev(device)->mmio) {
449 nv_subdev(device)->mmio = ioremap(mmio_base, mmio_size);
450 if (!nv_subdev(device)->mmio) {
451 nv_error(device, "unable to map device registers\n");
458 if (!(oclass = device->oclass[i]) || (disable & (1ULL << i)))
461 if (device->subdev[i]) {
462 nvkm_object_ref(device->subdev[i], &devobj->subdev[i]);
466 ret = nvkm_object_ctor(nv_object(device), NULL, oclass,
473 device->subdev[i] = devobj->subdev[i];
490 atomic_dec(&nv_object(device)->usecount);
517 struct nvkm_object *device = nv_object(obj); local
518 if (device->engine == NULL) {
519 while (device && device->parent)
520 device = device->parent;
522 device = &nv_object(obj)->engine->subdev.object;
523 if (device && device->parent)
524 device = device->parent;
527 if (unlikely(!device))
530 return (void *)device;
560 struct nvkm_device *device = (void *)object; local
565 if ((subdev = device->subdev[i])) {
574 ret = nvkm_acpi_fini(device, suspend);
577 if ((subdev = device->subdev[i])) {
593 struct nvkm_device *device = (void *)object; local
597 ret = nvkm_acpi_init(device);
602 if ((subdev = device->subdev[i])) {
616 if ((subdev = device->subdev[i])) {
623 nvkm_acpi_fini(device, false);
630 struct nvkm_device *device = (void *)object; local
632 nvkm_event_fini(&device->event);
635 list_del(&device->head);
638 if (nv_subdev(device)->mmio)
639 iounmap(nv_subdev(device)->mmio);
641 nvkm_engine_destroy(&device->engine);
645 nv_device_resource_start(struct nvkm_device *device, unsigned int bar) argument
647 if (nv_device_is_pci(device)) {
648 return pci_resource_start(device->pdev, bar);
651 res = platform_get_resource(device->platformdev,
660 nv_device_resource_len(struct nvkm_device *device, unsigned int bar) argument
662 if (nv_device_is_pci(device)) {
663 return pci_resource_len(device->pdev, bar);
666 res = platform_get_resource(device->platformdev,
675 nv_device_get_irq(struct nvkm_device *device, bool stall) argument
677 if (nv_device_is_pci(device)) {
678 return device->pdev->irq;
680 return platform_get_irq_byname(device->platformdev,
700 struct nvkm_device *device; local
704 list_for_each_entry(device, &nv_devices, head) {
705 if (device->handle == name)
711 device = *pobject;
717 device->pdev = dev;
720 device->platformdev = dev;
723 device->handle = name;
724 device->cfgopt = cfg;
725 device->dbgopt = dbg;
726 device->name = sname;
728 nv_subdev(device)->debug = nvkm_dbgopt(device->dbgopt, "DEVICE");
729 nv_engine(device)->sclass = nvkm_device_sclass;
730 list_add(&device->head, &nv_devices);
732 ret = nvkm_event_init(&nvkm_device_event_func, 1, 1, &device->event);