[PATCH v2 0/3] Bluetooth: btmtk: fix ISO data reception
Luiz Augusto von Dentz
luiz.dentz at gmail.com
Thu Oct 15 06:47:44 PDT 2026
Hi Chris,
On Thu, Oct 15, 2026 at 4:15 AM Chris Lu <chris.lu at mediatek.com> wrote:
>
> Three fixes for ISO data handling in btmtk, found while debugging LE Audio
> on MT7925. The code is shared by every MediaTek USB controller that
> supports ISO data, so none of this is specific to that part.
>
> Patch 1 drops the zero padding that the ISO interrupt IN endpoint appends
> to each transfer instead of parsing it as ISO packets. The driver turns
> that padding into handle 0 packets with a Data_Total_Length of zero and
> hands them to the stack, which is what fills the HCI log with malformed
> ISO frames, and a valid SDU is lost whenever handle 0 belongs to a live
> CIS/BIS.
>
> Patch 2 bounds Data_Total_Length by hdev->iso_mtu. The existing
> skb_tailroom() test enforces no protocol limit, because the skb head
> allocation is rounded up to a kmalloc bucket and skb_tailroom() reports
> the bucket size rather than what was requested.
>
> Patch 3 updates the mt79xx ISO data transmission setting.
>
> The three hunks do not overlap, so any prefix of the series applies on its
> own.
>
> Changes in v2:
> - Patch 2 reworked and retitled. v1 only enlarged the receive skb, which
> turned out to be a no-op, and added no bound at all. v2 bounds
> Data_Total_Length by hdev->iso_mtu and sizes the skb from the same
> value.
> - Patch 3 added.
> - Patch 1 unchanged.
>
> Based on bluetooth-next.
>
> Chris Lu (3):
> Bluetooth: btmtk: drop zero-length ISO packets from endpoint padding
> Bluetooth: btmtk: bound the ISO payload length by the controller's MTU
> Bluetooth: btmtk: derive the firmware ISO setting from
> MTK_ISO_THRESHOLD
>
> drivers/bluetooth/btmtk.c | 37 ++++++++++++++++++++++++++++++++-----
> 1 file changed, 32 insertions(+), 5 deletions(-)
>
> --
> 2.45.2
>
In case you haven't seen it sashiko flagged a problem with this set:
https://sashiko.dev/#/patchset/20261015081450.1241194-1-chris.lu%40mediatek.com
Unsuccessful packets shall still be delivered to the host, this is
used, for example, to implement Packet Loss Concealment (PLC) logic.
--
Luiz Augusto von Dentz
More information about the Linux-mediatek
mailing list