Skip to content

Commit 9464d8a

Browse files
hoshinolinajannau
authored andcommitted
soc: apple: rtkit: Check for failure to send mgmt messages & log
Signed-off-by: Asahi Lina <lina@asahilina.net>
1 parent 98f7e32 commit 9464d8a

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
@@ -97,12 +97,20 @@ bool apple_rtkit_is_crashed(struct apple_rtkit *rtk)
9797
}
9898
EXPORT_SYMBOL_GPL(apple_rtkit_is_crashed);
9999

100-
static void apple_rtkit_management_send(struct apple_rtkit *rtk, u8 type,
100+
static int apple_rtkit_management_send(struct apple_rtkit *rtk, u8 type,
101101
u64 msg)
102102
{
103+
int ret;
104+
103105
msg &= ~APPLE_RTKIT_MGMT_TYPE;
104106
msg |= FIELD_PREP(APPLE_RTKIT_MGMT_TYPE, type);
105-
apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_MGMT, msg, NULL, false);
107+
ret = apple_rtkit_send_message(rtk, APPLE_RTKIT_EP_MGMT, msg, NULL, false);
108+
109+
if (ret) {
110+
dev_err(rtk->dev, "RTKit: Failed to send management message: %d\n", ret);
111+
}
112+
113+
return ret;
106114
}
107115

108116
static void apple_rtkit_management_rx_hello(struct apple_rtkit *rtk, u64 msg)
@@ -742,8 +750,10 @@ static int apple_rtkit_set_ap_power_state(struct apple_rtkit *rtk,
742750
reinit_completion(&rtk->ap_pwr_ack_completion);
743751

744752
msg = FIELD_PREP(APPLE_RTKIT_MGMT_PWR_STATE, state);
745-
apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_AP_PWR_STATE,
746-
msg);
753+
ret = apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_AP_PWR_STATE,
754+
msg);
755+
if (ret)
756+
return ret;
747757

748758
ret = apple_rtkit_wait_for_completion(&rtk->ap_pwr_ack_completion);
749759
if (ret)
@@ -763,8 +773,10 @@ static int apple_rtkit_set_iop_power_state(struct apple_rtkit *rtk,
763773
reinit_completion(&rtk->iop_pwr_ack_completion);
764774

765775
msg = FIELD_PREP(APPLE_RTKIT_MGMT_PWR_STATE, state);
766-
apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE,
767-
msg);
776+
ret = apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE,
777+
msg);
778+
if (ret)
779+
return ret;
768780

769781
ret = apple_rtkit_wait_for_completion(&rtk->iop_pwr_ack_completion);
770782
if (ret)
@@ -865,6 +877,7 @@ EXPORT_SYMBOL_GPL(apple_rtkit_quiesce);
865877
int apple_rtkit_wake(struct apple_rtkit *rtk)
866878
{
867879
u64 msg;
880+
int ret;
868881

869882
if (apple_rtkit_is_running(rtk))
870883
return -EINVAL;
@@ -876,8 +889,10 @@ int apple_rtkit_wake(struct apple_rtkit *rtk)
876889
* will wait for the completion anyway.
877890
*/
878891
msg = FIELD_PREP(APPLE_RTKIT_MGMT_PWR_STATE, APPLE_RTKIT_PWR_STATE_ON);
879-
apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE,
880-
msg);
892+
ret = apple_rtkit_management_send(rtk, APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE,
893+
msg);
894+
if (ret)
895+
return ret;
881896

882897
return apple_rtkit_boot(rtk);
883898
}

0 commit comments

Comments
 (0)