| /linux/drivers/gpu/drm/i915/gt/uc/ |
| A D | intel_gsc_uc.c | 18 struct intel_gsc_uc *gsc = container_of(work, typeof(*gsc), work); in gsc_work() local 140 if (!gsc->wq) { in intel_gsc_uc_init_early() 188 gsc->local = vma; in gsc_allocate_and_map_vma() 235 gsc->ce = ce; in intel_gsc_uc_init() 259 if (gsc->wq) { in intel_gsc_uc_fini() 261 gsc->wq = NULL; in intel_gsc_uc_fini() 266 if (gsc->ce) in intel_gsc_uc_fini() 315 queue_work(gsc->wq, &gsc->work); in intel_gsc_uc_load_start() 335 if (gsc->fw.file_selected.path != gsc->fw.file_wanted.path) in intel_gsc_uc_load_status() 340 gsc->release.major, gsc->release.minor, in intel_gsc_uc_load_status() [all …]
|
| A D | intel_gsc_proxy.c | 284 err = proxy_query(gsc); in intel_gsc_proxy_request_handler() 305 queue_work(gsc->wq, &gsc->work); in intel_gsc_proxy_irq_handler() 313 struct intel_gsc_uc *gsc = >->uc.gsc; in i915_gsc_proxy_component_bind() local 335 struct intel_gsc_uc *gsc = >->uc.gsc; in i915_gsc_proxy_component_unbind() local 367 gsc->proxy.vma = vma; in proxy_channel_alloc() 368 gsc->proxy.to_gsc = vaddr; in proxy_channel_alloc() 376 if (!gsc->proxy.vma) in proxy_channel_free() 379 gsc->proxy.to_gsc = NULL; in proxy_channel_free() 380 gsc->proxy.to_csme = NULL; in proxy_channel_free() 392 proxy_channel_free(gsc); in intel_gsc_proxy_fini() [all …]
|
| A D | intel_gsc_fw.c | 231 gsc->release.major, gsc->release.minor, in intel_gsc_fw_get_binary_info() 232 gsc->release.patch, gsc->release.build); in intel_gsc_fw_get_binary_info() 252 gsc->release.major, gsc->release.minor, in intel_gsc_fw_get_binary_info() 253 gsc->release.patch, gsc->release.build, in intel_gsc_fw_get_binary_info() 332 if (!gsc->local) in gsc_fw_load_prepare() 335 if (gsc->local->size < gsc->fw.size) in gsc_fw_load_prepare() 343 memcpy_toio(gsc->local_vaddr, src, gsc->fw.size); in gsc_fw_load_prepare() 344 memset_io(gsc->local_vaddr + gsc->fw.size, 0, gsc->local->size - gsc->fw.size); in gsc_fw_load_prepare() 493 err = gsc_fw_load(gsc); in intel_gsc_uc_fw_upload() 516 gsc->release.major, gsc->release.minor, in intel_gsc_uc_fw_upload() [all …]
|
| A D | intel_gsc_uc.h | 60 void intel_gsc_uc_init_early(struct intel_gsc_uc *gsc); 61 int intel_gsc_uc_init(struct intel_gsc_uc *gsc); 62 void intel_gsc_uc_fini(struct intel_gsc_uc *gsc); 63 void intel_gsc_uc_suspend(struct intel_gsc_uc *gsc); 64 void intel_gsc_uc_resume(struct intel_gsc_uc *gsc); 65 void intel_gsc_uc_flush_work(struct intel_gsc_uc *gsc); 66 void intel_gsc_uc_load_start(struct intel_gsc_uc *gsc); 71 return intel_uc_fw_is_supported(&gsc->fw); in intel_gsc_uc_is_supported() 76 return intel_uc_fw_is_enabled(&gsc->fw); in intel_gsc_uc_is_wanted() 79 static inline bool intel_gsc_uc_is_used(struct intel_gsc_uc *gsc) in intel_gsc_uc_is_used() argument [all …]
|
| A D | intel_gsc_proxy.h | 13 int intel_gsc_proxy_init(struct intel_gsc_uc *gsc); 14 void intel_gsc_proxy_fini(struct intel_gsc_uc *gsc); 15 int intel_gsc_proxy_request_handler(struct intel_gsc_uc *gsc); 16 void intel_gsc_proxy_irq_handler(struct intel_gsc_uc *gsc, u32 iir);
|
| A D | intel_gsc_fw.h | 16 int intel_gsc_uc_fw_upload(struct intel_gsc_uc *gsc); 17 bool intel_gsc_uc_fw_init_done(struct intel_gsc_uc *gsc); 18 bool intel_gsc_uc_fw_proxy_init_done(struct intel_gsc_uc *gsc, bool needs_wakeref); 19 int intel_gsc_uc_fw_proxy_get_status(struct intel_gsc_uc *gsc);
|
| A D | intel_gsc_uc_heci_cmd_submit.c | 42 int intel_gsc_uc_heci_cmd_submit_packet(struct intel_gsc_uc *gsc, u64 addr_in, in intel_gsc_uc_heci_cmd_submit_packet() argument 46 struct intel_context *ce = gsc->ce; in intel_gsc_uc_heci_cmd_submit_packet() 90 drm_dbg(&gsc_uc_to_gt(gsc)->i915->drm, in intel_gsc_uc_heci_cmd_submit_packet() 99 drm_err(&gsc_uc_to_gt(gsc)->i915->drm, in intel_gsc_uc_heci_cmd_submit_packet() 136 intel_gsc_uc_heci_cmd_submit_nonpriv(struct intel_gsc_uc *gsc, in intel_gsc_uc_heci_cmd_submit_nonpriv() argument 186 drm_err(&gsc_uc_to_gt(gsc)->i915->drm, in intel_gsc_uc_heci_cmd_submit_nonpriv() 203 drm_dbg(&gsc_uc_to_gt(gsc)->i915->drm, in intel_gsc_uc_heci_cmd_submit_nonpriv()
|
| A D | intel_gsc_uc_debugfs.c | 18 struct intel_gsc_uc *gsc = m->private; in gsc_info_show() local 20 if (!intel_gsc_uc_is_supported(gsc)) in gsc_info_show() 23 intel_gsc_uc_load_status(gsc, &p); in gsc_info_show()
|
| /linux/drivers/gpu/drm/xe/ |
| A D | xe_gsc_proxy.c | 60 gsc_to_gt(struct xe_gsc *gsc) in gsc_to_gt() argument 62 return container_of(gsc, struct xe_gt, uc.gsc); in gsc_to_gt() 279 xe_map_memcpy_to(xe, &gsc->proxy.to_gsc, wr_offset, gsc->proxy.from_csme, size); in proxy_query() 299 if (gsc->proxy.component) in xe_gsc_proxy_request_handler() 315 err = proxy_query(gsc); in xe_gsc_proxy_request_handler() 333 spin_lock(&gsc->lock); in xe_gsc_proxy_irq_handler() 335 spin_unlock(&gsc->lock); in xe_gsc_proxy_irq_handler() 337 queue_work(gsc->wq, &gsc->work); in xe_gsc_proxy_irq_handler() 345 struct xe_gsc *gsc = >->uc.gsc; in xe_gsc_proxy_component_bind() local 360 struct xe_gsc *gsc = >->uc.gsc; in xe_gsc_proxy_component_unbind() local [all …]
|
| A D | xe_gsc.c | 41 return container_of(gsc, struct xe_gt, uc.gsc); in gsc_to_gt() 206 xe_assert(xe, xe_uc_fw_is_loadable(&gsc->fw) && gsc->q); in gsc_upload() 390 struct xe_gsc *gsc = >->uc.gsc; in xe_gsc_hwe_irq_handler() local 400 queue_work(gsc->wq, &gsc->work); in xe_gsc_hwe_irq_handler() 448 if (gsc->wq) { in free_resources() 453 if (gsc->q) { in free_resources() 499 gsc->q = q; in xe_gsc_init_post_hwconfig() 500 gsc->wq = wq; in xe_gsc_init_post_hwconfig() 522 if (!xe_uc_fw_is_loadable(&gsc->fw) || !gsc->q) in xe_gsc_load_start() 549 queue_work(gsc->wq, &gsc->work); in xe_gsc_load_start() [all …]
|
| A D | xe_gsc_debugfs.c | 18 gsc_to_gt(struct xe_gsc *gsc) in gsc_to_gt() argument 20 return container_of(gsc, struct xe_gt, uc.gsc); in gsc_to_gt() 24 gsc_to_xe(struct xe_gsc *gsc) in gsc_to_xe() argument 26 return gt_to_xe(gsc_to_gt(gsc)); in gsc_to_xe() 36 struct xe_gsc *gsc = node_to_gsc(m->private); in gsc_info() local 37 struct xe_device *xe = gsc_to_xe(gsc); in gsc_info() 41 xe_gsc_print_info(gsc, &p); in gsc_info() 51 void xe_gsc_debugfs_register(struct xe_gsc *gsc, struct dentry *parent) in xe_gsc_debugfs_register() argument 53 struct drm_minor *minor = gsc_to_xe(gsc)->drm.primary; in xe_gsc_debugfs_register() 58 local = drmm_kmalloc(&gsc_to_xe(gsc)->drm, DEBUGFS_SIZE, GFP_KERNEL); in xe_gsc_debugfs_register() [all …]
|
| A D | xe_gsc_proxy.h | 13 int xe_gsc_proxy_init(struct xe_gsc *gsc); 14 bool xe_gsc_proxy_init_done(struct xe_gsc *gsc); 15 void xe_gsc_proxy_remove(struct xe_gsc *gsc); 16 int xe_gsc_proxy_start(struct xe_gsc *gsc); 18 int xe_gsc_proxy_request_handler(struct xe_gsc *gsc); 19 void xe_gsc_proxy_irq_handler(struct xe_gsc *gsc, u32 iir);
|
| A D | xe_gsc.h | 16 int xe_gsc_init(struct xe_gsc *gsc); 17 int xe_gsc_init_post_hwconfig(struct xe_gsc *gsc); 18 void xe_gsc_wait_for_worker_completion(struct xe_gsc *gsc); 19 void xe_gsc_load_start(struct xe_gsc *gsc); 20 void xe_gsc_remove(struct xe_gsc *gsc); 25 void xe_gsc_print_info(struct xe_gsc *gsc, struct drm_printer *p);
|
| A D | xe_gsc_submit.c | 39 gsc_to_gt(struct xe_gsc *gsc) in gsc_to_gt() argument 41 return container_of(gsc, struct xe_gt, uc.gsc); in gsc_to_gt() 173 int xe_gsc_pkt_submit_kernel(struct xe_gsc *gsc, u64 addr_in, u32 size_in, in xe_gsc_pkt_submit_kernel() argument 176 struct xe_gt *gt = gsc_to_gt(gsc); in xe_gsc_pkt_submit_kernel() 201 job = xe_bb_create_job(gsc->q, bb); in xe_gsc_pkt_submit_kernel()
|
| /linux/drivers/mfd/ |
| A D | gateworks-gsc.c | 131 gsc_powerdown(gsc, value); in gsc_store() 200 struct gsc_dev *gsc; in gsc_probe() local 205 gsc = devm_kzalloc(dev, sizeof(*gsc), GFP_KERNEL); in gsc_probe() 206 if (!gsc) in gsc_probe() 209 gsc->dev = &client->dev; in gsc_probe() 210 gsc->i2c = client; in gsc_probe() 215 if (IS_ERR(gsc->regmap)) in gsc_probe() 220 gsc->fwver = reg; in gsc_probe() 223 gsc->fwcrc = reg; in gsc_probe() 225 gsc->fwcrc |= reg << 8; in gsc_probe() [all …]
|
| /linux/drivers/media/platform/samsung/exynos-gsc/ |
| A D | gsc-m2m.c | 155 gsc = ctx->gsc_dev; in gsc_m2m_device_run() 369 gsc->variant->in_buf_cnt : gsc->variant->out_buf_cnt; in gsc_m2m_reqbufs() 675 task_pid_nr(current), gsc->state, gsc->m2m.refcnt); in gsc_m2m_release() 742 if (!gsc) in gsc_register_m2m_device() 745 pdev = gsc->pdev; in gsc_register_m2m_device() 750 gsc->vdev.lock = &gsc->lock; in gsc_register_m2m_device() 752 gsc->vdev.v4l2_dev = &gsc->v4l2_dev; in gsc_register_m2m_device() 755 snprintf(gsc->vdev.name, sizeof(gsc->vdev.name), "%s.%d:m2m", in gsc_register_m2m_device() 758 video_set_drvdata(&gsc->vdev, gsc); in gsc_register_m2m_device() 760 gsc->m2m.vfd = &gsc->vdev; in gsc_register_m2m_device() [all …]
|
| A D | gsc-core.c | 1106 struct gsc_dev *gsc; in gsc_probe() local 1114 if (!gsc) in gsc_probe() 1124 gsc->id = ret; in gsc_probe() 1131 gsc->variant = drv_data->variant[gsc->id]; in gsc_probe() 1132 gsc->pdev = pdev; in gsc_probe() 1184 gsc_wait_reset(gsc); in gsc_probe() 1254 ctx = gsc->m2m.ctx; in gsc_m2m_resume() 1255 gsc->m2m.ctx = NULL; in gsc_m2m_resume() 1268 pr_debug("gsc%d: state: 0x%lx\n", gsc->id, gsc->state); in gsc_runtime_resume() 1280 gsc_wait_reset(gsc); in gsc_runtime_resume() [all …]
|
| A D | Makefile | 2 exynos-gsc-objs := gsc-core.o gsc-m2m.o gsc-regs.o 4 obj-$(CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC) += exynos-gsc.o
|
| /linux/drivers/gpu/drm/i915/gt/ |
| A D | intel_gsc.c | 45 struct intel_gt *gt = gsc_to_gt(gsc); in gsc_ext_om_alloc() 129 struct intel_gsc *gsc, unsigned int intf_id) in gsc_destroy_one() argument 131 struct intel_gsc_intf *intf = &gsc->intf[intf_id]; in gsc_destroy_one() 159 struct intel_gsc_intf *intf = &gsc->intf[intf_id]; in gsc_init_one() 168 if (gsc_to_gt(gsc)->info.id != 0) { in gsc_init_one() 267 gsc_destroy_one(i915, gsc, intf->id); in gsc_init_one() 284 if (gt->gsc.intf[intf_id].irq < 0) in gsc_irq_handler() 308 gsc_init_one(i915, gsc, i); in intel_gsc_init() 311 void intel_gsc_fini(struct intel_gsc *gsc) in intel_gsc_fini() argument 313 struct intel_gt *gt = gsc_to_gt(gsc); in intel_gsc_fini() [all …]
|
| /linux/Documentation/devicetree/bindings/media/ |
| A D | samsung,exynos5250-gsc.yaml | 4 $id: http://devicetree.org/schemas/media/samsung,exynos5250-gsc.yaml# 26 - samsung,exynos5250-gsc 27 - samsung,exynos5420-gsc 28 - const: samsung,exynos5-gsc 30 - samsung,exynos5433-gsc 31 - const: samsung,exynos5-gsc 72 - samsung,exynos5-gsc 73 - samsung,exynos5250-gsc 74 - samsung,exynos5420-gsc 102 compatible = "samsung,exynos5250-gsc", "samsung,exynos5-gsc";
|
| /linux/Documentation/devicetree/bindings/mfd/ |
| A D | gateworks-gsc.yaml | 4 $id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml# 25 pattern: "gsc@[0-9a-f]{1,2}" 27 const: gw,gsc 54 const: gw,gsc-adc 123 const: gw,gsc-fan 152 gsc@20 { 153 compatible = "gw,gsc"; 163 compatible = "gw,gsc-adc"; 189 compatible = "gw,gsc-fan";
|
| /linux/drivers/gpu/drm/xe/display/ |
| A D | xe_hdcp_gsc.c | 42 struct xe_gsc *gsc = >->uc.gsc; in intel_hdcp_gsc_check_status() local 45 if (!gsc && !xe_uc_fw_is_enabled(&gsc->fw)) { in intel_hdcp_gsc_check_status() 59 if (!xe_gsc_proxy_init_done(gsc)) in intel_hdcp_gsc_check_status() 185 struct xe_gsc *gsc = >->uc.gsc; in xe_gsc_send_sync() local 188 ret = xe_gsc_pkt_submit_kernel(gsc, hdcp_message->hdcp_cmd_in, msg_size_in, in xe_gsc_send_sync()
|
| /linux/arch/arm/boot/dts/nxp/imx/ |
| A D | imx6qdl-gw5907.dtsi | 36 interrupt-parent = <&gsc>; 43 interrupt-parent = <&gsc>; 50 interrupt-parent = <&gsc>; 57 interrupt-parent = <&gsc>; 64 interrupt-parent = <&gsc>; 152 gsc: gsc@20 { label 153 compatible = "gw,gsc"; 162 compatible = "gw,gsc-adc"; 245 interrupt-parent = <&gsc>;
|
| A D | imx6qdl-gw5913.dtsi | 36 interrupt-parent = <&gsc>; 43 interrupt-parent = <&gsc>; 50 interrupt-parent = <&gsc>; 57 interrupt-parent = <&gsc>; 64 interrupt-parent = <&gsc>; 137 gsc: gsc@20 { label 138 compatible = "gw,gsc"; 147 compatible = "gw,gsc-adc"; 243 interrupt-parent = <&gsc>;
|
| A D | imx6qdl-gw5912.dtsi | 37 interrupt-parent = <&gsc>; 44 interrupt-parent = <&gsc>; 51 interrupt-parent = <&gsc>; 58 interrupt-parent = <&gsc>; 65 interrupt-parent = <&gsc>; 156 gsc: gsc@20 { label 157 compatible = "gw,gsc"; 167 compatible = "gw,gsc-adc"; 245 compatible = "gw,gsc-fan"; 255 interrupt-parent = <&gsc>;
|