|
@@ -88,7 +88,8 @@ struct intel_guc {
|
|
|
struct mutex send_mutex;
|
|
|
|
|
|
/* GuC's FW specific send function */
|
|
|
- int (*send)(struct intel_guc *guc, const u32 *data, u32 len);
|
|
|
+ int (*send)(struct intel_guc *guc, const u32 *data, u32 len,
|
|
|
+ u32 *response_buf, u32 response_buf_size);
|
|
|
|
|
|
/* GuC's FW specific notify function */
|
|
|
void (*notify)(struct intel_guc *guc);
|
|
@@ -97,7 +98,14 @@ struct intel_guc {
|
|
|
static
|
|
|
inline int intel_guc_send(struct intel_guc *guc, const u32 *action, u32 len)
|
|
|
{
|
|
|
- return guc->send(guc, action, len);
|
|
|
+ return guc->send(guc, action, len, NULL, 0);
|
|
|
+}
|
|
|
+
|
|
|
+static inline int
|
|
|
+intel_guc_send_and_receive(struct intel_guc *guc, const u32 *action, u32 len,
|
|
|
+ u32 *response_buf, u32 response_buf_size)
|
|
|
+{
|
|
|
+ return guc->send(guc, action, len, response_buf, response_buf_size);
|
|
|
}
|
|
|
|
|
|
static inline void intel_guc_notify(struct intel_guc *guc)
|
|
@@ -140,8 +148,10 @@ int intel_guc_init_wq(struct intel_guc *guc);
|
|
|
void intel_guc_fini_wq(struct intel_guc *guc);
|
|
|
int intel_guc_init(struct intel_guc *guc);
|
|
|
void intel_guc_fini(struct intel_guc *guc);
|
|
|
-int intel_guc_send_nop(struct intel_guc *guc, const u32 *action, u32 len);
|
|
|
-int intel_guc_send_mmio(struct intel_guc *guc, const u32 *action, u32 len);
|
|
|
+int intel_guc_send_nop(struct intel_guc *guc, const u32 *action, u32 len,
|
|
|
+ u32 *response_buf, u32 response_buf_size);
|
|
|
+int intel_guc_send_mmio(struct intel_guc *guc, const u32 *action, u32 len,
|
|
|
+ u32 *response_buf, u32 response_buf_size);
|
|
|
void intel_guc_to_host_event_handler(struct intel_guc *guc);
|
|
|
int intel_guc_sample_forcewake(struct intel_guc *guc);
|
|
|
int intel_guc_auth_huc(struct intel_guc *guc, u32 rsa_offset);
|