Lines Matching refs:kgsl_pipe
35 struct kgsl_pipe *kgsl_pipe = to_kgsl_pipe(pipe);
38 *value = kgsl_pipe->devinfo.device_id;
41 *value = kgsl_pipe->devinfo.gpu_id;
44 *value = kgsl_pipe->devinfo.gmem_sizebytes;
47 *value = kgsl_pipe->devinfo.chip_id;
63 struct kgsl_pipe *kgsl_pipe = to_kgsl_pipe(pipe);
71 ret = ioctl(kgsl_pipe->fd, IOCTL_KGSL_DEVICE_WAITTIMESTAMP, &req);
76 kgsl_pipe_process_pending(kgsl_pipe, timestamp);
80 drm_private int kgsl_pipe_timestamp(struct kgsl_pipe *kgsl_pipe,
86 int ret = ioctl(kgsl_pipe->fd, IOCTL_KGSL_CMDSTREAM_READTIMESTAMP, &req);
98 struct kgsl_pipe *kgsl_pipe = to_kgsl_pipe(pipe);
100 .drawctxt_id = kgsl_pipe->drawctxt_id,
103 if (kgsl_pipe->drawctxt_id)
104 ioctl(kgsl_pipe->fd, IOCTL_KGSL_DRAWCTXT_DESTROY, &req);
106 if (kgsl_pipe->fd >= 0)
107 close(kgsl_pipe->fd);
109 free(kgsl_pipe);
125 drm_private void kgsl_pipe_add_submit(struct kgsl_pipe *kgsl_pipe,
128 struct fd_pipe *pipe = &kgsl_pipe->base;
136 list_addtail(list, &kgsl_pipe->submit_list);
140 drm_private void kgsl_pipe_pre_submit(struct kgsl_pipe *kgsl_pipe)
142 struct fd_pipe *pipe = &kgsl_pipe->base;
145 if (!kgsl_pipe->p3d)
146 kgsl_pipe->p3d = fd_pipe_new(pipe->dev, FD_PIPE_3D);
148 LIST_FOR_EACH_ENTRY(kgsl_bo, &kgsl_pipe->submit_list, list[pipe->id]) {
151 fd_pipe_wait(kgsl_pipe->p3d, timestamp);
156 drm_private void kgsl_pipe_post_submit(struct kgsl_pipe *kgsl_pipe,
159 struct fd_pipe *pipe = &kgsl_pipe->base;
162 LIST_FOR_EACH_ENTRY_SAFE(kgsl_bo, tmp, &kgsl_pipe->submit_list, list[pipe->id]) {
166 list_addtail(list, &kgsl_pipe->pending_list);
171 if (!kgsl_pipe_timestamp(kgsl_pipe, ×tamp))
172 kgsl_pipe_process_pending(kgsl_pipe, timestamp);
175 drm_private void kgsl_pipe_process_pending(struct kgsl_pipe *kgsl_pipe,
178 struct fd_pipe *pipe = &kgsl_pipe->base;
181 LIST_FOR_EACH_ENTRY_SAFE(kgsl_bo, tmp, &kgsl_pipe->pending_list, list[pipe->id]) {
219 struct kgsl_pipe *kgsl_pipe = NULL;
237 kgsl_pipe = calloc(1, sizeof(*kgsl_pipe));
238 if (!kgsl_pipe) {
243 pipe = &kgsl_pipe->base;
246 kgsl_pipe->fd = fd;
247 kgsl_pipe->drawctxt_id = req.drawctxt_id;
249 list_inithead(&kgsl_pipe->submit_list);
250 list_inithead(&kgsl_pipe->pending_list);
252 GETPROP(fd, VERSION, kgsl_pipe->version);
253 GETPROP(fd, DEVICE_INFO, kgsl_pipe->devinfo);
255 if (kgsl_pipe->devinfo.gpu_id >= 500) {
263 (kgsl_pipe->devinfo.chip_id >> 24) & 0xff,
264 (kgsl_pipe->devinfo.chip_id >> 16) & 0xff,
265 (kgsl_pipe->devinfo.chip_id >> 8) & 0xff,
266 (kgsl_pipe->devinfo.chip_id >> 0) & 0xff);
267 INFO_MSG(" Device-id: %d", kgsl_pipe->devinfo.device_id);
268 INFO_MSG(" GPU-id: %d", kgsl_pipe->devinfo.gpu_id);
269 INFO_MSG(" MMU enabled: %d", kgsl_pipe->devinfo.mmu_enabled);
270 INFO_MSG(" GMEM Base addr: 0x%08x", kgsl_pipe->devinfo.gmem_gpubaseaddr);
271 INFO_MSG(" GMEM size: 0x%08x", kgsl_pipe->devinfo.gmem_sizebytes);
273 kgsl_pipe->version.drv_major, kgsl_pipe->version.drv_minor);
275 kgsl_pipe->version.dev_major, kgsl_pipe->version.dev_minor);