Home
last modified time | relevance | path

Searched full:gsc (Results 1 – 25 of 142) sorted by relevance

123456

/Linux-v6.6/drivers/gpu/drm/i915/gt/uc/
Dintel_gsc_uc.c18 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 …]
Dintel_gsc_proxy.c20 * GSC proxy:
21 * The GSC uC needs to communicate with the CSME to perform certain operations.
22 * Since the GSC can't perform this communication directly on platforms where it
23 * is integrated in GT, i915 needs to transfer the messages from GSC to CSME
24 * and back. i915 must manually start the proxy flow after the GSC is loaded to
25 * signal to GSC that we're ready to handle its messages and allow it to query
26 * its init data from CSME; GSC will then trigger an HECI2 interrupt if it needs
29 * 1 - i915 submits a request to GSC asking for the message to CSME
30 * 2 - GSC replies with the proxy header + payload for CSME
31 * 3 - i915 sends the reply from GSC as-is to CSME via the mei proxy component
[all …]
Dintel_gsc_fw.c40 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 …]
Dintel_gsc_uc.h20 /* 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 …]
Dintel_huc.c32 * - DG2: load and authentication are both performed via GSC.
36 * workloads via GSC.
62 * MEI-GSC load is an async process. The probing of the exposed aux device
67 * MEI-PXP + HuC load usually takes ~300ms, but if the GSC needs to be resumed
109 /* MEI-GSC init is done, now we wait for MEI-PXP to bind */ in gsc_init_done()
123 huc_notice(huc, "timed out waiting for MEI GSC\n"); in huc_delayed_load_timer_callback()
142 * On resume we don't have to wait for MEI-GSC to be re-probed, but we in huc_delayed_load_start()
159 * GSC device to come up to load the HuC. We arm the fence here in huc_delayed_load_start()
176 struct intel_gsc_intf *intf = &huc_to_gt(huc)->gsc.intf[0]; in gsc_notifier()
206 huc_err(huc, "failed to register GSC notifier %pe\n", ERR_PTR(ret)); in intel_huc_register_gsc_notifier()
[all …]
Dintel_gsc_proxy.h13 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);
Dintel_gsc_fw.h16 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);
Dintel_gsc_uc_heci_cmd_submit.c42 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_err(&gsc_uc_to_gt(gsc)->i915->drm, in intel_gsc_uc_heci_cmd_submit_packet()
91 "Request submission for GSC heci cmd failed (%d)\n", in intel_gsc_uc_heci_cmd_submit_packet()
127 intel_gsc_uc_heci_cmd_submit_nonpriv(struct intel_gsc_uc *gsc, in intel_gsc_uc_heci_cmd_submit_nonpriv() argument
177 drm_err(&gsc_uc_to_gt(gsc)->i915->drm, in intel_gsc_uc_heci_cmd_submit_nonpriv()
178 "Failed emit-flush for gsc-heci-non-priv-pkterr=%d\n", err); in intel_gsc_uc_heci_cmd_submit_nonpriv()
/Linux-v6.6/drivers/mfd/
Dgateworks-gsc.c3 * 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-v6.6/drivers/media/platform/samsung/exynos-gsc/
Dgsc-m2m.c25 #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 …]
Dgsc-core.c25 #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 …]
DMakefile2 exynos-gsc-objs := gsc-core.o gsc-m2m.o gsc-regs.o
4 obj-$(CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC) += exynos-gsc.o
/Linux-v6.6/drivers/gpu/drm/i915/gt/
Dintel_gsc.c42 gsc_ext_om_alloc(struct intel_gsc *gsc, struct intel_gsc_intf *intf, size_t size) in gsc_ext_om_alloc() argument
44 struct intel_gt *gt = gsc_to_gt(gsc); in gsc_ext_om_alloc()
52 drm_err(&gt->i915->drm, "Failed to allocate gsc memory\n"); in gsc_ext_om_alloc()
58 drm_err(&gt->i915->drm, "Failed to pin pages for gsc memory\n"); in gsc_ext_om_alloc()
93 /* gsc resources and definitions (HECI1 and HECI2) */
120 .name = "mei-gsc",
141 struct intel_gsc *gsc, unsigned int intf_id) in gsc_destroy_one() argument
143 struct intel_gsc_intf *intf = &gsc->intf[intf_id]; in gsc_destroy_one()
149 intel_huc_unregister_gsc_notifier(&gsc_to_gt(gsc)->uc.huc, in gsc_destroy_one()
164 static void gsc_init_one(struct drm_i915_private *i915, struct intel_gsc *gsc, in gsc_init_one() argument
[all …]
Dintel_gsc.h24 * @gem_obj: scratch memory GSC operations
25 * @intf : gsc interface
36 void intel_gsc_init(struct intel_gsc *gsc, struct drm_i915_private *i915);
37 void intel_gsc_fini(struct intel_gsc *gsc);
/Linux-v6.6/Documentation/devicetree/bindings/media/
Dsamsung,exynos5250-gsc.yaml4 $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-v6.6/drivers/parisc/
DKconfig2 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 …]
/Linux-v6.6/Documentation/devicetree/bindings/mfd/
Dgateworks-gsc.yaml4 $id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml#
10 The Gateworks System Controller (GSC) is a device present across various
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-v6.6/Documentation/hwmon/
Dgsc-hwmon.rst3 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-v6.6/include/drm/
Di915_gsc_proxy_mei_interface.h15 * 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-v6.6/drivers/gpu/drm/i915/pxp/
Dintel_pxp_gsccs.c91 /* copy caller provided gsc message handle if this is polling for a prior msg completion */ in gsccs_send_message()
112 ret = intel_gsc_uc_heci_cmd_submit_nonpriv(&gt->uc.gsc, in gsccs_send_message()
116 drm_err(&i915->drm, "failed to send gsc PXP msg (%d)\n", ret); in gsccs_send_message()
122 drm_err(&i915->drm, "gsc PXP reply with invalid validity marker\n"); in gsccs_send_message()
127 drm_dbg(&i915->drm, "gsc PXP reply status has error = 0x%08x\n", in gsccs_send_message()
133 drm_dbg(&i915->drm, "gsc PXP reply is busy\n"); in gsccs_send_message()
135 * When the GSC firmware replies with pending bit, it means that the requested in gsccs_send_message()
173 * Keep sending request if GSC firmware was busy. Based on fw specs + in gsccs_send_message_retry_complete()
180 /* Only try again if gsc says so */ in gsccs_send_message_retry_complete()
193 * GSC-fw loading, HuC-fw loading, HuC-fw authentication and in intel_pxp_gsccs_is_ready_for_sessions()
[all …]
Dintel_pxp_types.h25 * the VDBOX, the KCR engine (and GSC CS depending on the platform)
36 * @gsccs_res: resources for request submission for platforms that have a GSC engine.
40 struct intel_context *ce; /* context for gsc command submission */
42 struct i915_vma *pkt_vma; /* GSC FW cmd packet vma */
43 void *pkt_vaddr; /* GSC FW cmd packet virt pointer */
89 /** @stream_cmd: LMEM obj used to send stream PXP commands to the GSC */
/Linux-v6.6/drivers/hwmon/
Dgsc-hwmon.c9 #include <linux/mfd/gsc.h>
26 struct gsc_dev *gsc; member
268 fan = of_find_compatible_node(dev->parent->of_node, NULL, "gw,gsc-fan"); in gsc_hwmon_get_devtree_pdata()
316 struct gsc_dev *gsc = dev_get_drvdata(pdev->dev.parent); in gsc_hwmon_probe() local
333 hwmon->gsc = gsc; in gsc_hwmon_probe()
337 gsc->i2c_hwmon, in gsc_hwmon_probe()
348 dev_err(gsc->dev, "too many temp channels\n"); in gsc_hwmon_probe()
358 dev_err(gsc->dev, "too many fan channels\n"); in gsc_hwmon_probe()
370 dev_err(gsc->dev, "too many input channels\n"); in gsc_hwmon_probe()
379 dev_err(gsc->dev, "invalid mode: %d\n", ch->mode); in gsc_hwmon_probe()
[all …]
/Linux-v6.6/drivers/misc/mei/gsc_proxy/
DKconfig5 tristate "Intel GSC Proxy services of ME Interface"
9 MEI Support for GSC Proxy Services on Intel platforms.
11 MEI GSC proxy enables messaging between GSC service on
/Linux-v6.6/sound/parisc/
DKconfig5 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-v6.6/arch/arm64/boot/dts/freescale/
Dimx8mm-venice-gw700x.dtsi28 interrupt-parent = <&gsc>;
35 interrupt-parent = <&gsc>;
42 interrupt-parent = <&gsc>;
49 interrupt-parent = <&gsc>;
56 interrupt-parent = <&gsc>;
129 gsc: gsc@20 { label
130 compatible = "gw,gsc";
141 compatible = "gw,gsc-adc";
237 compatible = "gw,gsc-fan";
247 interrupt-parent = <&gsc>;

123456