__scmi_xfer_put(&info->tx_minfo, xfer);
 }
 
+static inline void scmi_clear_channel(struct scmi_info *info,
+                                     struct scmi_chan_info *cinfo)
+{
+       if (info->desc->ops->clear_channel)
+               info->desc->ops->clear_channel(cinfo);
+}
+
 static void scmi_handle_notification(struct scmi_chan_info *cinfo, u32 msg_hdr)
 {
        struct scmi_xfer *xfer;
        if (IS_ERR(xfer)) {
                dev_err(dev, "failed to get free message slot (%ld)\n",
                        PTR_ERR(xfer));
-               info->desc->ops->clear_channel(cinfo);
+               scmi_clear_channel(info, cinfo);
                return;
        }
 
 
        __scmi_xfer_put(minfo, xfer);
 
-       info->desc->ops->clear_channel(cinfo);
+       scmi_clear_channel(info, cinfo);
 }
 
 static void scmi_handle_response(struct scmi_chan_info *cinfo, u32 msg_hdr)
 
        xfer = scmi_xfer_command_acquire(cinfo, msg_hdr);
        if (IS_ERR(xfer)) {
-               info->desc->ops->clear_channel(cinfo);
+               scmi_clear_channel(info, cinfo);
                return;
        }
 
                           xfer->hdr.type);
 
        if (xfer->hdr.type == MSG_TYPE_DELAYED_RESP) {
-               info->desc->ops->clear_channel(cinfo);
+               scmi_clear_channel(info, cinfo);
                complete(xfer->async_done);
        } else {
                complete(&xfer->done);