Skip to content

Commit 6cb6ce4

Browse files
hoshinolinamarcan
authored andcommitted
soc: apple: rtkit: Check for failure to send mgmt messages & log
Signed-off-by: Asahi Lina <lina@asahilina.net>
1 parent 457391b commit 6cb6ce4

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

drivers/soc/apple/rtkit.c

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,12 +102,20 @@ bool apple_rtkit_is_crashed(struct apple_rtkit *rtk)
102102
}
103103
EXPORT_SYMBOL_GPL(apple_rtkit_is_crashed);
104104

105-
static void apple_rtkit_management_send(struct apple_rtkit *rtk, u8 type,
105+
static int apple_rtkit_management_send(struct apple_rtkit *rtk, u8 type,
106106
u64 msg)
107107
{
108+
int ret;
109+
108110
msg &= ~APPLE_RTKIT_MGMT_TYPE;
109111
msg |= FIELD_PREP(APPLE_RTKIT_MGMT_TYPE, type);
110-
apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_MGMT, msg, NULL, false);
112+
ret = apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_MGMT, msg, NULL, false);
113+
114+
if (ret) {
115+
dev_err(rtk->dev, "RTKit: Failed to send management message: %d\n", ret);
116+
}
117+
118+
return ret;
111119
}
112120

113121
static void apple_rtkit_management_rx_hello(struct apple_rtkit *rtk, u64 msg)
@@ -807,8 +815,10 @@ static int apple_rtkit_set_ap_power_state(struct apple_rtkit *rtk,
807815
reinit_completion(&rtk->ap_pwr_ack_completion);
808816

809817
msg = FIELD_PREP(APPLE_RTKIT_MGMT_PWR_STATE, state);
810-
apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_AP_PWR_STATE,
811-
msg);
818+
ret = apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_AP_PWR_STATE,
819+
msg);
820+
if (ret)
821+
return ret;
812822

813823
ret = apple_rtkit_wait_for_completion(&rtk->ap_pwr_ack_completion);
814824
if (ret)
@@ -828,8 +838,10 @@ static int apple_rtkit_set_iop_power_state(struct apple_rtkit *rtk,
828838
reinit_completion(&rtk->iop_pwr_ack_completion);
829839

830840
msg = FIELD_PREP(APPLE_RTKIT_MGMT_PWR_STATE, state);
831-
apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE,
832-
msg);
841+
ret = apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE,
842+
msg);
843+
if (ret)
844+
return ret;
833845

834846
ret = apple_rtkit_wait_for_completion(&rtk->iop_pwr_ack_completion);
835847
if (ret)
@@ -930,6 +942,7 @@ EXPORT_SYMBOL_GPL(apple_rtkit_quiesce);
930942
int apple_rtkit_wake(struct apple_rtkit *rtk)
931943
{
932944
u64 msg;
945+
int ret;
933946

934947
if (apple_rtkit_is_running(rtk))
935948
return -EINVAL;
@@ -941,8 +954,10 @@ int apple_rtkit_wake(struct apple_rtkit *rtk)
941954
* will wait for the completion anyway.
942955
*/
943956
msg = FIELD_PREP(APPLE_RTKIT_MGMT_PWR_STATE, APPLE_RTKIT_PWR_STATE_ON);
944-
apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE,
945-
msg);
957+
ret = apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE,
958+
msg);
959+
if (ret)
960+
return ret;
946961

947962
return apple_rtkit_boot(rtk);
948963
}

0 commit comments

Comments
 (0)