Dear Sir or Madam,
Hello. I have a question about Bluetooth(BT) connection in i.MX6DQ.
==================
[Overview]
- Phenomenon 1:
When repeating Bluetooth connection & disconnection, i.MX6 isn't possible to connect BT.
- Phenomenon 2:
When reconstructing Bluetooth continuously, a connection is disconnected within about 30 minutes.
- Frequency of Occurrence: Random
[Analysis Result]
- Both phenomenon displayed the log "Bluetooth: Frame Reassembly Failed"
- The problem occurred in L3.14.28. (din't occur in L3.10.53.)
There is a lot of difference between Linux3.10 and Linux3.14. (/drivers/tty/serial/imx.c)
- The problem doesn't occur when disabling the SDMA of UART.
The error occurs in SDMA and recovery processing isn't done.
So, I think that processing of "imx.c" or "tty_buffer" is doubtful.
[Question]
Could you gibe me the workaround about this issue?
[Related information]
https://community.freescale.com/message/355180#355180
==================
Best Regards,
Keita
an expert reply:
It seems UART sdma issue. UART smda issue only happens in a heavy loading user model and it hard to reproduce in our lab.
Can you provide a log info when the UART encounters issue? We can analyze it.
Hi, Jimmychan
Thank you for your reply.
Please check the below log info!
[Display the log by below code]
drivers/bluetooth/hci_ath.c
/* Recv data */
static int ath_recv(struct hci_uart *hu, void *data, int count)
{
int ret;
ret = hci_recv_stream_fragment(hu->hdev, data, count);
if (ret < 0) {
BT_ERR("Frame Reassembly Failed");
return ret;
}
return count;
}
[Log Information]
[ 9.839943] Bluetooth: HCI UART driver ver 2.2
[ 9.843096] Bluetooth: HCIATH3K protocol initialized
[ 10.046343] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 10.050364] Bluetooth: BNEP filters: protocol multicast
[ 10.054455] Bluetooth: BNEP socket layer initialized
[ 11.364054] libphy: 2188000.ethernet:01 - Link is Up - 100/Full
[ 11.368719] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 12.758196] Bluetooth: RFCOMM TTY layer initialized
[ 12.761823] Bluetooth: RFCOMM socket layer initialized
[ 12.765858] Bluetooth: RFCOMM ver 1.11
[ 81.230049] Bluetooth: Frame Reassembly Failed
[ 81.233298] Bluetooth: Frame Reassembly Failed
[ 85.264022] Bluetooth: Frame Reassembly Failed
[ 90.245313] Bluetooth: Frame Reassembly Failed
[ 90.517595] Bluetooth: Frame Reassembly Failed
[ 121.234299] Bluetooth: Frame Reassembly Failed
[ 121.313208] Bluetooth: Frame Reassembly Failed
[ 121.316442] Bluetooth: Unexpected start frame (len 12)
[ 121.320741] Bluetooth: Frame Reassembly Failed
Best Regards,
Keita
Hi Keita,
Do you enable kernel debug message? I want to see debug message from the UART driver.
By the way, do you enable RTS/CTS control in BT uart?
B.R
Oliver
Hi Li Chen,
Do you have any update?
B.R
Keita
Dear Li Chen,
Sorry for my delay.
Please check my below comments.
> Do you enable kernel debug message? I want to see debug message from the UART driver.
I got the debug message. Please refer to attached files.
(teraterm_log.log & btdebug_log.txt)
The phenomenon seems to occur when the log of "We get 8 bytes" becomes "We get 1 bytes" or "We get 7 bytes".
>By the way, do you enable RTS/CTS control in BT uart?
Yes. RTS/CTS have already enabled.
Best Regards,
Keita