{
        struct skl_ipc_header header = {0};
        struct sst_ipc_message request = {0}, reply = {0};
-       int ret = 0;
-       size_t sz_remaining, rx_size, data_offset;
+       int ret;
 
        header.primary = IPC_MSG_TARGET(IPC_MOD_MSG);
        header.primary |= IPC_MSG_DIR(IPC_MSG_REQUEST);
        header.extension |= IPC_FINAL_BLOCK(1);
        header.extension |= IPC_INITIAL_BLOCK(1);
 
-       sz_remaining = msg->param_data_size;
-       data_offset = 0;
-
-       while (sz_remaining != 0) {
-               rx_size = sz_remaining > SKL_ADSP_W1_SZ
-                               ? SKL_ADSP_W1_SZ : sz_remaining;
-               if (rx_size == sz_remaining)
-                       header.extension |= IPC_FINAL_BLOCK(1);
-
-               request.header = *(u64 *)(&header);
-               reply.data = ((char *)param) + data_offset;
-               reply.size = msg->param_data_size;
-               ret = sst_ipc_tx_message_wait(ipc, request, &reply);
-               if (ret < 0) {
-                       dev_err(ipc->dev,
-                               "ipc: get large config fail, err: %d\n", ret);
-                       return ret;
-               }
-               sz_remaining -= rx_size;
-               data_offset = msg->param_data_size - sz_remaining;
-
-               /* clear the fields */
-               header.extension &= IPC_INITIAL_BLOCK_CLEAR;
-               header.extension &= IPC_DATA_OFFSET_SZ_CLEAR;
-               /* fill the fields */
-               header.extension |= IPC_INITIAL_BLOCK(1);
-               header.extension |= IPC_DATA_OFFSET_SZ(data_offset);
-       }
+       request.header = *(u64 *)(&header);
+       reply.data = param;
+       reply.size = msg->param_data_size;
+       ret = sst_ipc_tx_message_wait(ipc, request, &reply);
+       if (ret < 0)
+               dev_err(ipc->dev, "ipc: get large config fail, err: %d\n", ret);
 
        return ret;
 }