Lines Matching refs:xe

33 bool intel_hdcp_gsc_cs_required(struct xe_device *xe)
35 return DISPLAY_VER(xe) >= 14;
38 bool intel_hdcp_gsc_check_status(struct xe_device *xe)
40 struct xe_tile *tile = xe_device_get_root_tile(xe);
47 xe_pm_runtime_get(xe);
49 drm_dbg_kms(&xe->drm,
60 xe_pm_runtime_put(xe);
65 static int intel_hdcp_gsc_initialize_message(struct xe_device *xe,
73 bo = xe_bo_create_pin_map(xe, xe_device_get_root_tile(xe), NULL, PAGE_SIZE * 2,
79 drm_err(&xe->drm, "Failed to allocate bo for HDCP streaming command!\n");
86 xe_map_memset(xe, &bo->vmap, 0, 0, bo->size);
95 static int intel_hdcp_gsc_hdcp2_init(struct xe_device *xe)
109 ret = intel_hdcp_gsc_initialize_message(xe, hdcp_message);
111 drm_err(&xe->drm, "Could not initialize hdcp_message\n");
116 xe->display.hdcp.hdcp_message = hdcp_message;
136 int intel_hdcp_gsc_init(struct xe_device *xe)
145 mutex_lock(&xe->display.hdcp.hdcp_mutex);
146 xe->display.hdcp.arbiter = data;
147 xe->display.hdcp.arbiter->hdcp_dev = xe->drm.dev;
148 xe->display.hdcp.arbiter->ops = &gsc_hdcp_ops;
149 ret = intel_hdcp_gsc_hdcp2_init(xe);
153 mutex_unlock(&xe->display.hdcp.hdcp_mutex);
158 void intel_hdcp_gsc_fini(struct xe_device *xe)
161 xe->display.hdcp.hdcp_message;
170 static int xe_gsc_send_sync(struct xe_device *xe,
183 drm_err(&xe->drm, "failed to send gsc HDCP msg (%d)\n", ret);
187 if (xe_gsc_check_and_update_pending(xe, map, 0, map, addr_out_off))
190 ret = xe_gsc_read_out_header(xe, map, addr_out_off,
196 ssize_t intel_hdcp_gsc_msg_send(struct xe_device *xe, u8 *msg_in,
214 hdcp_message = xe->display.hdcp.hdcp_message;
218 xe_pm_runtime_get_noresume(xe);
219 addr_in_wr_off = xe_gsc_emit_header(xe, &hdcp_message->hdcp_bo->vmap,
222 xe_map_memcpy_to(xe, &hdcp_message->hdcp_bo->vmap, addr_in_wr_off,
231 ret = xe_gsc_send_sync(xe, hdcp_message, msg_size_in, msg_size_out,
245 xe_map_memcpy_from(xe, msg_out, &hdcp_message->hdcp_bo->vmap,
250 xe_pm_runtime_put(xe);