| /linux/drivers/gpu/drm/i915/gt/uc/ |
| H A 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() 47 * first and do proxy later. The GSC will ack the HuC auth and in gsc_work() 50 * Note that we can only do the GSC auth if the GuC auth was in gsc_work() 59 if (!intel_gsc_uc_fw_init_done(gsc)) { in gsc_work() 60 gt_err(gt, "Proxy request received with GSC not loaded!\n"); in gsc_work() 64 ret = intel_gsc_proxy_request_handler(gsc); in gsc_work() [all …]
|
| H A D | intel_gsc_uc.h | 20 /* GSC-specific additions */ 23 * The GSC has 3 version numbers: 39 struct i915_vma *local; /* private memory for GSC usage */ 41 struct intel_context *ce; /* for submission to GSC FW via GSC engine */ 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); [all …]
|
| H 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);
|
| H 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);
|
| H A D | intel_huc_fw.c | 65 err = intel_gsc_uc_heci_cmd_submit_packet(>->uc.gsc, in intel_huc_fw_auth_via_gsccs() 70 huc_err(huc, "failed to submit GSC request to auth: %d\n", err); in intel_huc_fw_auth_via_gsccs() 85 huc_err(huc, "invalid GSC reply length %u [expected %zu]\n", in intel_huc_fw_auth_via_gsccs() 92 * The GSC will return PXP_STATUS_OP_NOT_PERMITTED if the HuC is already in intel_huc_fw_auth_via_gsccs() 98 huc_err(huc, "auth failed with GSC error = 0x%x\n", in intel_huc_fw_auth_via_gsccs() 139 huc_err(huc, "Invalid FW type for GSC header parsing!\n"); in intel_huc_fw_get_binary_info() 149 * The GSC-enabled HuC binary starts with a directory header, followed in intel_huc_fw_get_binary_info() 153 * - "HUCP.man": points to the GSC manifest header for the HuC, which in intel_huc_fw_get_binary_info() 158 * via dma and auth via GSC (like MTL). in intel_huc_fw_get_binary_info()
|
| H A D | intel_gsc_uc_heci_cmd_submit.h | 18 * command has hit the GSC-CS hardware, not the preceding handoff to GuC CTB. 67 int intel_gsc_uc_heci_cmd_submit_packet(struct intel_gsc_uc *gsc, 89 intel_gsc_uc_heci_cmd_submit_nonpriv(struct intel_gsc_uc *gsc,
|
| /linux/drivers/mfd/ |
| H A D | gateworks-gsc.c | 3 * The Gateworks System Controller (GSC) is a multi-function 15 #include <linux/mfd/gsc.h> 26 * The GSC suffers from an errata where occasionally during 72 * gsc_powerdown - API to use GSC to power down board for a specific time 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 [all …]
|
| /linux/drivers/media/platform/samsung/exynos-gsc/ |
| H A D | gsc-m2m.c | 25 #include "gsc-core.h" 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() [all …]
|
| H A D | gsc-core.c | 25 #include "gsc-core.h" 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() [all …]
|
| H 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/ |
| H A 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() 53 gt_err(gt, "Failed to allocate gsc memory\n"); in gsc_ext_om_alloc() 59 gt_err(gt, "Failed to pin pages for gsc memory\n"); in gsc_ext_om_alloc() 94 /* gsc resources and definitions (HECI1 and HECI2) */ 108 .name = "mei-gsc", 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 [all …]
|
| H A D | intel_gsc.h | 24 * @intf: gsc interface 26 * @intf.gem_obj: scratch memory GSC operations 39 void intel_gsc_init(struct intel_gsc *gsc, struct drm_i915_private *i915); 40 void intel_gsc_fini(struct intel_gsc *gsc);
|
| /linux/drivers/parisc/ |
| H A D | Kconfig | 2 menu "Bus options (PCI, PCMCIA, EISA, GSC, ISA)" 4 config GSC config 5 bool "VSC/GSC/HSC bus support" 10 The VSC, GSC and HSC busses were used from the earliest 700-series 18 depends on GSC 25 depends on GSC 33 depends on GSC 44 depends on GSC 50 GSC bridge for an X.25 GSC card. 61 depends on PCI && GSC [all …]
|
| H A D | gsc.h | 3 * drivers/parisc/gsc.h 4 * Declarations for functions in gsc.c 28 struct parisc_device *gsc; member
|
| /linux/drivers/gpu/drm/xe/display/ |
| H A D | xe_hdcp_gsc.c | 40 struct xe_gsc *gsc = >->uc.gsc; in intel_hdcp_gsc_check_status() local 42 if (!gsc || !xe_uc_fw_is_available(&gsc->fw)) { in intel_hdcp_gsc_check_status() 44 "GSC Components not ready for HDCP2.x\n"); in intel_hdcp_gsc_check_status() 56 return xe_gsc_proxy_init_done(gsc); in intel_hdcp_gsc_check_status() 59 /*This function helps allocate memory for the command that we will send to gsc cs */ 132 struct xe_gsc *gsc = >->uc.gsc; in xe_gsc_send_sync() local 135 ret = xe_gsc_pkt_submit_kernel(gsc, gsc_context->hdcp_cmd_in, msg_size_in, in xe_gsc_send_sync() 138 drm_err(&xe->drm, "failed to send gsc HDCP msg (%d)\n", ret); in xe_gsc_send_sync() 186 /* Only try again if gsc says so */ in intel_hdcp_gsc_msg_send()
|
| /linux/drivers/gpu/drm/xe/ |
| H 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 int xe_gsc_wait_for_proxy_init_done(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);
|
| H 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_stop_prepare(struct xe_gsc *gsc); 20 void xe_gsc_load_start(struct xe_gsc *gsc); 25 void xe_gsc_print_info(struct xe_gsc *gsc, struct drm_printer *p);
|
| H A D | xe_heci_gsc.c | 62 /* gsc resources and definitions */ 115 drm_err(&xe->drm, "gsc irq error %d\n", heci_gsc->irq); in heci_gsc_irq_setup() 121 drm_err(&xe->drm, "gsc irq init failed %d\n", ret); in heci_gsc_irq_setup() 154 drm_err(&xe->drm, "gsc aux init failed %d\n", ret); in heci_gsc_add_device() 162 drm_err(&xe->drm, "gsc aux add failed %d\n", ret); in heci_gsc_add_device() 218 drm_warn_once(&xe->drm, "GSC irq: not supported"); in xe_heci_gsc_irq_handler() 227 drm_err_ratelimited(&xe->drm, "error handling GSC irq: %d\n", ret); in xe_heci_gsc_irq_handler() 247 drm_err_ratelimited(&xe->drm, "error handling GSC irq: %d\n", ret); in xe_heci_csc_irq_handler()
|
| /linux/Documentation/hwmon/ |
| H A D | gsc-hwmon.rst | 3 Kernel driver gsc-hwmon 6 Supported chips: Gateworks GSC 7 Datasheet: http://trac.gateworks.com/wiki/gsc 14 various ADC's connected to the GSC, and optional FAN controller available 22 on the GSC version and firmware. The values returned by the driver do not need 33 either internally or by the driver depending on the GSC version and firmware. 43 The GSC features 1 PWM output that operates in automatic mode where the
|
| /linux/drivers/gpu/drm/i915/ |
| H A D | i915_hdcp_gsc.c | 27 struct intel_gsc_uc *gsc = gt ? >->uc.gsc : NULL; in intel_hdcp_gsc_check_status() local 29 if (!gsc || !intel_uc_fw_is_running(&gsc->fw)) { in intel_hdcp_gsc_check_status() 31 "GSC components required for HDCP2.2 are not ready\n"); in intel_hdcp_gsc_check_status() 38 /*This function helps allocate memory for the command that we will send to gsc cs */ 58 drm_err(&i915->drm, "Failed to map gsc message page!\n"); in intel_hdcp_gsc_initialize_message() 133 ret = intel_gsc_uc_heci_cmd_submit_packet(>->uc.gsc, addr_in, in intel_gsc_send_sync() 138 drm_err(&i915->drm, "failed to send gsc HDCP msg (%d)\n", ret); in intel_gsc_send_sync() 144 * blocked us from sending message to gsc cs in intel_gsc_send_sync() 169 * gsc cs memory header as stated in specs after which the normal HDCP payload 214 /* Only try again if gsc says so */ in intel_hdcp_gsc_msg_send()
|
| /linux/include/drm/intel/ |
| H A D | i915_gsc_proxy_mei_interface.h | 15 * struct i915_gsc_proxy_component_ops - ops for GSC Proxy services. 17 * @send: sends a proxy message from GSC FW to ME FW 18 * @recv: receives a proxy message for GSC FW from ME FW 44 * MEI drivers for GSC proxy services 45 * @mei_dev: device that provide the GSC proxy service. 46 * @ops: Ops implemented by GSC proxy driver, used by i915 driver.
|
| /linux/sound/parisc/ |
| H A D | Kconfig | 5 bool "GSC sound devices" 6 depends on GSC 9 Support for GSC sound devices on PA-RISC architectures. 18 chip found in most GSC-based PA-RISC workstations. It's frequently
|
| /linux/arch/arm64/boot/dts/freescale/ |
| H A D | imx8mm-venice-gw700x.dtsi | 34 interrupt-parent = <&gsc>; 41 interrupt-parent = <&gsc>; 48 interrupt-parent = <&gsc>; 55 interrupt-parent = <&gsc>; 62 interrupt-parent = <&gsc>; 155 gsc: gsc@20 { label 156 compatible = "gw,gsc"; 167 compatible = "gw,gsc-adc"; 263 compatible = "gw,gsc-fan"; 273 interrupt-parent = <&gsc>;
|
| H A D | imx8mp-venice-gw702x.dtsi | 35 interrupt-parent = <&gsc>; 42 interrupt-parent = <&gsc>; 49 interrupt-parent = <&gsc>; 56 interrupt-parent = <&gsc>; 63 interrupt-parent = <&gsc>; 141 gsc: gsc@20 { label 142 compatible = "gw,gsc"; 153 compatible = "gw,gsc-adc"; 248 compatible = "gw,gsc-fan"; 258 interrupt-parent = <&gsc>;
|
| /linux/arch/arm/boot/dts/nxp/imx/ |
| H A D | imx6qdl-gw5903.dtsi | 46 interrupt-parent = <&gsc>; 53 interrupt-parent = <&gsc>; 60 interrupt-parent = <&gsc>; 67 interrupt-parent = <&gsc>; 74 interrupt-parent = <&gsc>; 191 gsc: gsc@20 { label 192 compatible = "gw,gsc"; 202 compatible = "gw,gsc-adc"; 285 interrupt-parent = <&gsc>;
|