[WNCR00152693] [SDIO][ZTE N]Remove btmtk_register_hdev(remove hci_alloc_dev)
CR-Id: WCNCR00152693
diff --git a/btmtk_sdio.c b/btmtk_sdio.c
index 11e424b..d7dbb61 100644
--- a/btmtk_sdio.c
+++ b/btmtk_sdio.c
@@ -564,7 +564,7 @@
     int ret = 0;
     u32 u32ReadCRValue = 0;
     int retry_count = 5;
-
+    u32 sdio_header_length = 0;
     memset(rxbuf, 0, MTK_RXDATA_SIZE);
 
     do {
@@ -582,13 +582,21 @@
             u32ReadCRValue &= 0xFFFB;
             ret = btmtk_sdio_writel(CHISR, u32ReadCRValue);
             BTMTK_DBG("%s: write = %08X\n", __func__, u32ReadCRValue);
-            
+
 
             sdio_claim_host(g_card->func);
             ret = sdio_readsb(g_card->func, rxbuf, CRDR, rx_length);
             sdio_release_host(g_card->func);
-            if (rxbuf[0] == 0) {
-                BTMTK_WARN("%s: get rx length = %d, but no rx content\n", __func__, rx_length);
+            sdio_header_length = (rxbuf[1] << 8);
+            sdio_header_length |= rxbuf[0];
+
+            if(sdio_header_length != rx_length){
+                BTMTK_ERR("%s sdio header length %d, rx_length %d mismatch",__func__,sdio_header_length,rx_length);
+                break;
+            }
+
+            if (sdio_header_length == 0) {
+                BTMTK_WARN("%s: get sdio_header_length = %d\n", __func__, sdio_header_length);
                 continue;
             }
 
@@ -1870,11 +1878,11 @@
          priv->hw_host_to_card = btmtk_sdio_host_to_card;
          priv->hw_process_int_status = btmtk_sdio_process_int_status;
          priv->hw_set_own_back =  btmtk_sdio_set_own_back;
-         if (btmtk_register_hdev(priv)) {
+         /*if (btmtk_register_hdev(priv)) {
                  BTMTK_ERR("Register hdev failed!");
                  ret = -ENODEV;
                  goto unreg_dev;
-         }
+         }*/
         g_priv = priv;
         if (fw_dump_ptr == NULL)
             fw_dump_ptr = kmalloc(FW_DUMP_BUF_SIZE, GFP_ATOMIC);
@@ -1979,13 +1987,14 @@
         send_data[4] = cmd_type ;
         memcpy(&send_data[BTM_HEADER_LEN], &cmd[0], cmd_len);
         ret = btmtk_sdio_host_to_card(g_priv, send_data, sdio_header_len);
+        kfree(send_data);
         return ret;
  }
  static int btmtk_sdio_send_woble_cmd(void)
  {
         u8 ret = 0;
-                u8 cmd[] = { 0xC9, 0xFC, 0x0D, 0x01, 0x0E, 0x00, 0x05, 0x43,
-                                0x52, 0x4B, 0x54, 0x4D, 0x20, 0x04, 0x32, 0x00 };
+        u8 cmd[] = { 0xC9, 0xFC, 0x0D, 0x01, 0x0E, 0x00, 0x05, 0x43,
+                     0x52, 0x4B, 0x54, 0x4D, 0x20, 0x04, 0x32, 0x00 };
 
         ret = btmtk_sdio_send_cmd(HCI_COMMAND_PKT,cmd,sizeof(cmd));
         BTMTK_INFO("%s return %d\n", __func__,ret);
diff --git a/btmtk_sdio.h b/btmtk_sdio.h
index 9545fa5..4722813 100644
--- a/btmtk_sdio.h
+++ b/btmtk_sdio.h
@@ -19,7 +19,7 @@
  *
  **/
 
-#define VERSION "v0.0.0.20"
+#define VERSION "v0.0.0.21"
 
 #define SDIO_HEADER_LEN                 4