Hi, pe, 2025-07-04 kello 13:36 +0800, Yang Li via B4 Relay kirjoitti: > From: Yang Li <yang.li@xxxxxxxxxxx> > > User-space applications (e.g., PipeWire) depend on > ISO-formatted timestamps for precise audio sync. > > Signed-off-by: Yang Li <yang.li@xxxxxxxxxxx> > --- > Changes in v3: > - Change to use hwtimestamp > - Link to v2: https://lore.kernel.org/r/20250702-iso_ts-v2-1-723d199c8068@xxxxxxxxxxx > > Changes in v2: > - Support SOCK_RCVTSTAMPNS via CMSG for ISO sockets > - Link to v1: https://lore.kernel.org/r/20250429-iso_ts-v1-1-e586f30de6cb@xxxxxxxxxxx > --- > net/bluetooth/iso.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/net/bluetooth/iso.c b/net/bluetooth/iso.c > index fc22782cbeeb..67ff355167d8 100644 > --- a/net/bluetooth/iso.c > +++ b/net/bluetooth/iso.c > @@ -2301,13 +2301,21 @@ void iso_recv(struct hci_conn *hcon, struct sk_buff *skb, u16 flags) > if (ts) { > struct hci_iso_ts_data_hdr *hdr; > > - /* TODO: add timestamp to the packet? */ > hdr = skb_pull_data(skb, HCI_ISO_TS_DATA_HDR_SIZE); > if (!hdr) { > BT_ERR("Frame is too short (len %d)", skb->len); > goto drop; > } > > + /* The ISO ts is based on the controller’s clock domain, > + * so hardware timestamping (hwtimestamp) must be used. > + * Ref: Documentation/networking/timestamping.rst, > + * chapter 3.1 Hardware Timestamping. > + */ > + struct skb_shared_hwtstamps *hwts = skb_hwtstamps(skb); > + if (hwts) In addition to the moving variable on top, the null check is spurious as skb_hwtstamps is never NULL (driver/net/* do not check it either). Did you test this with SOF_TIMESTAMPING_RX_HARDWARE in userspace? Pipewire does not try to get HW timestamps right now. Would be good to also add some tests in bluez/tools/iso-tester.c although this needs some extension to the emulator/* to support timestamps properly. > + hwts->hwtstamp = us_to_ktime(le32_to_cpu(hdr->ts)); > + > len = __le16_to_cpu(hdr->slen); > } else { > struct hci_iso_data_hdr *hdr; > > --- > base-commit: 3bc46213b81278f3a9df0324768e152de71eb9fe > change-id: 20250421-iso_ts-c82a300ae784 > > Best regards, -- Pauli Virtanen