/linux-6.12.1/drivers/gpu/drm/i915/gt/uc/ |
D | intel_gsc_uc.c | 18 struct intel_gsc_uc *gsc = container_of(work, typeof(*gsc), work); in gsc_work() local 19 struct intel_gt *gt = gsc_uc_to_gt(gsc); in gsc_work() 27 actions = gsc->gsc_work_actions; in gsc_work() 28 gsc->gsc_work_actions = 0; in gsc_work() 32 ret = intel_gsc_uc_fw_upload(gsc); in gsc_work() 59 if (!intel_gsc_uc_fw_init_done(gsc)) { in gsc_work() 64 ret = intel_gsc_proxy_request_handler(gsc); in gsc_work() 72 intel_uc_fw_change_status(&gsc->fw, INTEL_UC_FIRMWARE_LOAD_FAIL); in gsc_work() 84 if (intel_gsc_uc_fw_proxy_init_done(gsc, false)) { in gsc_work() 86 intel_uc_fw_change_status(&gsc->fw, INTEL_UC_FIRMWARE_RUNNING); in gsc_work() [all …]
|
D | intel_gsc_proxy.c | 84 static int proxy_send_to_csme(struct intel_gsc_uc *gsc) in proxy_send_to_csme() argument 86 struct intel_gt *gt = gsc_uc_to_gt(gsc); in proxy_send_to_csme() 87 struct i915_gsc_proxy_component *comp = gsc->proxy.component; in proxy_send_to_csme() 89 void *in = gsc->proxy.to_csme; in proxy_send_to_csme() 90 void *out = gsc->proxy.to_gsc; in proxy_send_to_csme() 123 static int proxy_send_to_gsc(struct intel_gsc_uc *gsc) in proxy_send_to_gsc() argument 125 struct intel_gt *gt = gsc_uc_to_gt(gsc); in proxy_send_to_gsc() 126 u32 *marker = gsc->proxy.to_csme; /* first dw of the reply header */ in proxy_send_to_gsc() 127 u64 addr_in = i915_ggtt_offset(gsc->proxy.vma); in proxy_send_to_gsc() 129 u32 size = ((struct gsc_proxy_msg *)gsc->proxy.to_gsc)->header.message_size; in proxy_send_to_gsc() [all …]
|
D | intel_gsc_fw.c | 40 bool intel_gsc_uc_fw_proxy_init_done(struct intel_gsc_uc *gsc, bool needs_wakeref) in intel_gsc_uc_fw_proxy_init_done() argument 43 gsc_uc_get_fw_status(gsc_uc_to_gt(gsc)->uncore, in intel_gsc_uc_fw_proxy_init_done() 48 int intel_gsc_uc_fw_proxy_get_status(struct intel_gsc_uc *gsc) in intel_gsc_uc_fw_proxy_get_status() argument 52 if (!intel_uc_fw_is_loadable(&gsc->fw)) in intel_gsc_uc_fw_proxy_get_status() 54 if (__intel_uc_fw_status(&gsc->fw) == INTEL_UC_FIRMWARE_LOAD_FAIL) in intel_gsc_uc_fw_proxy_get_status() 56 if (!intel_gsc_uc_fw_proxy_init_done(gsc, true)) in intel_gsc_uc_fw_proxy_get_status() 62 bool intel_gsc_uc_fw_init_done(struct intel_gsc_uc *gsc) in intel_gsc_uc_fw_init_done() argument 64 return gsc_uc_get_fw_status(gsc_uc_to_gt(gsc)->uncore, false) & in intel_gsc_uc_fw_init_done() 75 struct intel_gsc_uc *gsc = container_of(gsc_fw, struct intel_gsc_uc, fw); in intel_gsc_fw_get_binary_info() local 76 struct intel_gt *gt = gsc_uc_to_gt(gsc); in intel_gsc_fw_get_binary_info() [all …]
|
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); 67 void intel_gsc_uc_load_status(struct intel_gsc_uc *gsc, struct drm_printer *p); 69 static inline bool intel_gsc_uc_is_supported(struct intel_gsc_uc *gsc) in intel_gsc_uc_is_supported() argument 71 return intel_uc_fw_is_supported(&gsc->fw); in intel_gsc_uc_is_supported() [all …]
|
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);
|
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);
|
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()
|
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-6.12.1/drivers/gpu/drm/xe/ |
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() 65 bool xe_gsc_proxy_init_done(struct xe_gsc *gsc) in xe_gsc_proxy_init_done() argument 67 struct xe_gt *gt = gsc_to_gt(gsc); in xe_gsc_proxy_init_done() 74 static void __gsc_proxy_irq_rmw(struct xe_gsc *gsc, u32 clr, u32 set) in __gsc_proxy_irq_rmw() argument 76 struct xe_gt *gt = gsc_to_gt(gsc); in __gsc_proxy_irq_rmw() 84 static void gsc_proxy_irq_clear(struct xe_gsc *gsc) in gsc_proxy_irq_clear() argument 87 __gsc_proxy_irq_rmw(gsc, 0, HECI_H_CSR_IS); in gsc_proxy_irq_clear() 90 static void gsc_proxy_irq_toggle(struct xe_gsc *gsc, bool enabled) in gsc_proxy_irq_toggle() argument 95 __gsc_proxy_irq_rmw(gsc, clr, set); in gsc_proxy_irq_toggle() [all …]
|
D | xe_gsc.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() 44 static int memcpy_fw(struct xe_gsc *gsc) in memcpy_fw() argument 46 struct xe_gt *gt = gsc_to_gt(gsc); in memcpy_fw() 48 u32 fw_size = gsc->fw.size; in memcpy_fw() 59 xe_map_memcpy_from(xe, storage, &gsc->fw.bo->vmap, 0, fw_size); in memcpy_fw() 60 xe_map_memcpy_to(xe, &gsc->private->vmap, 0, storage, fw_size); in memcpy_fw() 61 xe_map_memset(xe, &gsc->private->vmap, fw_size, 0, gsc->private->size - fw_size); in memcpy_fw() 68 static int emit_gsc_upload(struct xe_gsc *gsc) in emit_gsc_upload() argument 70 struct xe_gt *gt = gsc_to_gt(gsc); in emit_gsc_upload() [all …]
|
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 …]
|
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);
|
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);
|
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-6.12.1/drivers/mfd/ |
D | gateworks-gsc.c | 76 static int gsc_powerdown(struct gsc_dev *gsc, unsigned long secs) in gsc_powerdown() argument 81 dev_info(&gsc->i2c->dev, "GSC powerdown for %ld seconds\n", in gsc_powerdown() 85 ret = regmap_bulk_write(gsc->regmap, GSC_TIME_ADD, regs, 4); in gsc_powerdown() 89 ret = regmap_update_bits(gsc->regmap, GSC_CTRL_1, in gsc_powerdown() 95 ret = regmap_update_bits(gsc->regmap, GSC_CTRL_1, in gsc_powerdown() 108 struct gsc_dev *gsc = dev_get_drvdata(dev); in gsc_show() local 113 rz = sprintf(buf, "%d\n", gsc->fwver); in gsc_show() 115 rz = sprintf(buf, "0x%04x\n", gsc->fwcrc); in gsc_show() 125 struct gsc_dev *gsc = dev_get_drvdata(dev); in gsc_store() local 131 gsc_powerdown(gsc, value); in gsc_store() [all …]
|
/linux-6.12.1/drivers/media/platform/samsung/exynos-gsc/ |
D | gsc-m2m.c | 30 struct gsc_dev *gsc = ctx->gsc_dev; in gsc_m2m_ctx_stop_req() local 33 curr_ctx = v4l2_m2m_get_curr_priv(gsc->m2m.m2m_dev); in gsc_m2m_ctx_stop_req() 34 if (!gsc_m2m_pending(gsc) || (curr_ctx != ctx)) in gsc_m2m_ctx_stop_req() 38 ret = wait_event_timeout(gsc->irq_queue, in gsc_m2m_ctx_stop_req() 147 struct gsc_dev *gsc; in gsc_m2m_device_run() local 155 gsc = ctx->gsc_dev; in gsc_m2m_device_run() 156 spin_lock_irqsave(&gsc->slock, flags); in gsc_m2m_device_run() 158 set_bit(ST_M2M_PEND, &gsc->state); in gsc_m2m_device_run() 161 if (gsc->m2m.ctx != ctx) { in gsc_m2m_device_run() 163 gsc->m2m.ctx, ctx); in gsc_m2m_device_run() [all …]
|
D | gsc-core.c | 339 void gsc_set_prefbuf(struct gsc_dev *gsc, struct gsc_frame *frm) in gsc_set_prefbuf() argument 390 struct gsc_dev *gsc = ctx->gsc_dev; in gsc_try_fmt_mplane() local 391 struct gsc_variant *variant = gsc->variant; in gsc_try_fmt_mplane() 519 struct gsc_dev *gsc = ctx->gsc_dev; in gsc_try_selection() local 520 struct gsc_variant *variant = gsc->variant; in gsc_try_selection() 699 struct gsc_dev *gsc = ctx->gsc_dev; in __gsc_s_ctrl() local 700 struct gsc_variant *variant = gsc->variant; in __gsc_s_ctrl() 861 struct gsc_dev *gsc = priv; in gsc_irq_handler() local 865 gsc_irq = gsc_hw_get_irq_status(gsc); in gsc_irq_handler() 866 gsc_hw_clear_irq(gsc, gsc_irq); in gsc_irq_handler() [all …]
|
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-6.12.1/drivers/gpu/drm/i915/gt/ |
D | intel_gsc.c | 43 gsc_ext_om_alloc(struct intel_gsc *gsc, struct intel_gsc_intf *intf, size_t size) in gsc_ext_om_alloc() argument 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() 137 intel_huc_unregister_gsc_notifier(&gsc_to_gt(gsc)->uc.huc, in gsc_destroy_one() 152 static void gsc_init_one(struct drm_i915_private *i915, struct intel_gsc *gsc, in gsc_init_one() argument 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() 214 if (gsc_ext_om_alloc(gsc, intf, def->lmem_size)) { in gsc_init_one() 249 intel_huc_register_gsc_notifier(&gsc_to_gt(gsc)->uc.huc, in gsc_init_one() [all …]
|
/linux-6.12.1/drivers/gpu/drm/xe/display/ |
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-6.12.1/arch/arm/boot/dts/nxp/imx/ |
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>;
|
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>;
|
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>;
|
/linux-6.12.1/arch/arm64/boot/dts/freescale/ |
D | imx8mm-venice-gw700x.dtsi | 29 interrupt-parent = <&gsc>; 36 interrupt-parent = <&gsc>; 43 interrupt-parent = <&gsc>; 50 interrupt-parent = <&gsc>; 57 interrupt-parent = <&gsc>; 149 gsc: gsc@20 { label 150 compatible = "gw,gsc"; 161 compatible = "gw,gsc-adc"; 257 compatible = "gw,gsc-fan"; 267 interrupt-parent = <&gsc>;
|
/linux-6.12.1/drivers/hwmon/ |
D | gsc-hwmon.c | 26 struct gsc_dev *gsc; member 311 struct gsc_dev *gsc = dev_get_drvdata(pdev->dev.parent); in gsc_hwmon_probe() local 328 hwmon->gsc = gsc; in gsc_hwmon_probe() 332 gsc->i2c_hwmon, in gsc_hwmon_probe() 343 dev_err(gsc->dev, "too many temp channels\n"); in gsc_hwmon_probe() 353 dev_err(gsc->dev, "too many fan channels\n"); in gsc_hwmon_probe() 365 dev_err(gsc->dev, "too many input channels\n"); in gsc_hwmon_probe() 374 dev_err(gsc->dev, "invalid mode: %d\n", ch->mode); in gsc_hwmon_probe()
|