Bluetooth: btintel_pcie: Fix driver not posting maximum rx buffers
[ Upstream commit daabd276985055250528da97e9ce6d277d7009c2 ]
The driver was posting only 6 rx buffers, despite the maximum rx buffers
being defined as 16. Having fewer RX buffers caused firmware exceptions
in HID use cases when events arrived in bursts.
Exception seen on android 6.12 kernel.
E Bluetooth: hci0: Received hw exception interrupt
E Bluetooth: hci0: Received gp1 mailbox interrupt
D Bluetooth: hci0: 00000000: ff 3e 87 80 03 01 01 01 03 01 0c 0d 02 1c 10 0e
D Bluetooth: hci0: 00000010: 01 00 05 14 66 b0 28 b0 c0 b0 28 b0 ac af 28 b0
D Bluetooth: hci0: 00000020: 14 f1 28 b0 00 00 00 00 fa 04 00 00 00 00 40 10
D Bluetooth: hci0: 00000030: 08 00 00 00 7a 7a 7a 7a 47 00 fb a0 10 00 00 00
D Bluetooth: hci0: 00000000: 10 01 0a
E Bluetooth: hci0: ---- Dump of debug registers —
E Bluetooth: hci0: boot stage: 0xe0fb0047
E Bluetooth: hci0: ipc status: 0x00000004
E Bluetooth: hci0: ipc control: 0x00000000
E Bluetooth: hci0: ipc sleep control: 0x00000000
E Bluetooth: hci0: mbox_1: 0x00badbad
E Bluetooth: hci0: mbox_2: 0x0000101c
E Bluetooth: hci0: mbox_3: 0x00000008
E Bluetooth: hci0: mbox_4: 0x7a7a7a7a
Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
Signed-off-by: Kiran K <kiran.k@intel.com>
Fixes: c2b636b3f7 ("Bluetooth: btintel_pcie: Add support for PCIe transport")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
99e3d69853
commit
a075e10cfb
@@ -231,8 +231,9 @@ static int btintel_pcie_submit_rx(struct btintel_pcie_data *data)
|
||||
static int btintel_pcie_start_rx(struct btintel_pcie_data *data)
|
||||
{
|
||||
int i, ret;
|
||||
struct rxq *rxq = &data->rxq;
|
||||
|
||||
for (i = 0; i < BTINTEL_PCIE_RX_MAX_QUEUE; i++) {
|
||||
for (i = 0; i < rxq->count; i++) {
|
||||
ret = btintel_pcie_submit_rx(data);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -104,9 +104,6 @@ enum {
|
||||
/* Doorbell vector for TFD */
|
||||
#define BTINTEL_PCIE_TX_DB_VEC 0
|
||||
|
||||
/* Number of pending RX requests for downlink */
|
||||
#define BTINTEL_PCIE_RX_MAX_QUEUE 6
|
||||
|
||||
/* Doorbell vector for FRBD */
|
||||
#define BTINTEL_PCIE_RX_DB_VEC 513
|
||||
|
||||
|
||||
Reference in New Issue
Block a user