Home | History | Annotate | Download | only in kms

Lines Matching refs:device

55 static void kms_device_probe_screens(struct kms_device *device)
64 res = drmModeGetResources(device->fd);
68 device->screens = calloc(res->count_connectors, sizeof(screen));
69 if (!device->screens)
77 screen = kms_screen_create(device, res->connectors[i]);
96 device->screens[i] = screen;
97 device->num_screens++;
103 static void kms_device_probe_crtcs(struct kms_device *device)
109 res = drmModeGetResources(device->fd);
113 device->crtcs = calloc(res->count_crtcs, sizeof(crtc));
114 if (!device->crtcs)
118 crtc = kms_crtc_create(device, res->crtcs[i]);
122 device->crtcs[i] = crtc;
123 device->num_crtcs++;
129 static void kms_device_probe_planes(struct kms_device *device)
135 res = drmModeGetPlaneResources(device->fd);
139 device->planes = calloc(res->count_planes, sizeof(plane));
140 if (!device->planes)
144 plane = kms_plane_create(device, res->planes[i]);
148 device->planes[i] = plane;
149 device->num_planes++;
155 static void kms_device_probe(struct kms_device *device)
157 kms_device_probe_screens(device);
158 kms_device_probe_crtcs(device);
159 kms_device_probe_planes(device);
164 struct kms_device *device;
166 device = calloc(1, sizeof(*device));
167 if (!device)
170 device->fd = fd;
172 kms_device_probe(device);
174 return device;
177 void kms_device_close(struct kms_device *device)
181 for (i = 0; i < device->num_planes; i++)
182 kms_plane_free(device->planes[i]);
184 free(device->planes);
186 for (i = 0; i < device->num_crtcs; i++)
187 kms_crtc_free(device->crtcs[i]);
189 free(device->crtcs);
191 for (i = 0; i < device->num_screens; i++)
192 kms_screen_free(device->screens[i]);
194 free(device->screens);
196 if (device->fd >= 0)
197 close(device->fd);
199 free(device);
202 struct kms_plane *kms_device_find_plane_by_type(struct kms_device *device,
208 for (i = 0; i < device->num_planes; i++) {
209 if (device->planes[i]->type == type) {
211 return device->planes[i];