Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp55310pxb; Mon, 31 Jan 2022 15:05:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJxkOjjjM/iBeK/tmdniZaRjNO9yx5u9J20N4VvlrI/Vu6jF4Lf8qA85ImKAVy00pD9v5Wjg X-Received: by 2002:a17:906:2ed0:: with SMTP id s16mr18737097eji.327.1643670335187; Mon, 31 Jan 2022 15:05:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643670335; cv=none; d=google.com; s=arc-20160816; b=EKxFyxF/OKqR4YpnlgKWXr5jaiahvr9bfFi4xInvfQA4cYMEkkv6zUXwfKIJM9u46N hoi6WA2iOIzDvSzETvDhmYFaNRVGRBEbm6/p7smqUJo1MIBvec2cZsvOWt+8zvG+BdFh dGcmthYVCAvAnD3ds12YHr4dD79DLadCJm9+um1Sa0JBSRXyLh/oJzlppUK1e5WisTPi hZt3slhlso+OOziR4DxO1C9C5B6EwvpzopgGP82E3EGHx9Sw7oTdPGcWA5sI0Fqusp9b /POXHqpQUcJzRTLtTINV8qW5iS3DH94roJn8OCC7wsmHNWGTDmkW3w70bawYf28MUEd9 4nVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=UEHqf6OUfjErY2HFSYe5NzAjegCG73NXE53cZuqA5vo=; b=oFTUJkYnHlM+JWIOXlD9ubHaLYOHAlQC26CphyqQSn7O8G571GWWlqVlya7Pos/FKJ 5dRXjKXJLvJkQHSgUj5bmDxGjNqhW+xADwznTVEgKagbk3nNfZ4ECb9EI5sF42e65PTq ScGjPW3DSX1tlnlNIGA5unrDFb8fXNW6Jb96PJhbE4GxTmnMmTEMX04ZoXySjEAoV/V6 Uca1FEQoeIVVMi/9Nlq9ZUOZ9bCfRC3haQ/DTtLxxL0hV1Lj+Dc/7JMnFn27CBEdx3iL Rif9SCbz/bvOqutaybu5GRjK6i5Q0Nhh60nwOJHDV0pYgz9LmI0r+5OWriTbPG/OLfMB avIw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i3si8472311edk.302.2022.01.31.15.05.09; Mon, 31 Jan 2022 15:05:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240055AbiA2GCT (ORCPT + 99 others); Sat, 29 Jan 2022 01:02:19 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:49890 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S239607AbiA2GCQ (ORCPT ); Sat, 29 Jan 2022 01:02:16 -0500 X-UUID: 0ac3b7d865ea4a829e2abb0f92ec8c74-20220129 X-UUID: 0ac3b7d865ea4a829e2abb0f92ec8c74-20220129 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1506276000; Sat, 29 Jan 2022 14:02:14 +0800 Received: from mtkexhb01.mediatek.inc (172.21.101.102) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 29 Jan 2022 14:02:12 +0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkexhb01.mediatek.inc (172.21.101.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 29 Jan 2022 14:02:12 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 29 Jan 2022 14:02:12 +0800 From: To: , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH 2/2] Bluetooth: mediatek: fix the conflict between mtk and msft vendor event Date: Sat, 29 Jan 2022 14:02:08 +0800 Message-ID: <2eed797ac2605bd068a025486fc0c09c2687e50c.1643435854.git.objelf@gmail.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <52ae30c33f2994efcdff180764801141d59e6e0c.1643435854.git.objelf@gmail.com> References: <52ae30c33f2994efcdff180764801141d59e6e0c.1643435854.git.objelf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sean Wang There is a conflict between MediaTek wmt event and msft vendor extension logic in the core layer since 145373cb1b1f ("Bluetooth: Add framework for Microsoft vendor extension") was introduced because we changed the type of mediatek wmt event to the type of msft vendor event in the driver. But the purpose we reported mediatek event to the core layer is for the diagnostic purpose with that we are able to see the full packet trace via monitoring socket with btmon. Thus, it is harmless we keep the original type of mediatek vendor event here to avoid breaking the msft extension function especially they can be supported by Mediatek chipset like MT7921 , MT7922 devices and future devices. Signed-off-by: Sean Wang --- drivers/bluetooth/btmtk.h | 1 + drivers/bluetooth/btmtksdio.c | 9 +-------- drivers/bluetooth/btusb.c | 5 ----- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/drivers/bluetooth/btmtk.h b/drivers/bluetooth/btmtk.h index 8960a5f89d48..013850fd2055 100644 --- a/drivers/bluetooth/btmtk.h +++ b/drivers/bluetooth/btmtk.h @@ -5,6 +5,7 @@ #define FIRMWARE_MT7668 "mediatek/mt7668pr2h.bin" #define FIRMWARE_MT7961 "mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin" +#define HCI_EV_WMT 0xe4 #define HCI_WMT_MAX_EVENT_SIZE 64 #define BTMTK_WMT_REG_WRITE 0x1 diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c index 8e200e80d2f6..cbb09e1b823d 100644 --- a/drivers/bluetooth/btmtksdio.c +++ b/drivers/bluetooth/btmtksdio.c @@ -381,13 +381,6 @@ static int btmtksdio_recv_event(struct hci_dev *hdev, struct sk_buff *skb) struct hci_event_hdr *hdr = (void *)skb->data; int err; - /* Fix up the vendor event id with 0xff for vendor specific instead - * of 0xe4 so that event send via monitoring socket can be parsed - * properly. - */ - if (hdr->evt == 0xe4) - hdr->evt = HCI_EV_VENDOR; - /* When someone waits for the WMT event, the skb is being cloned * and being processed the events from there then. */ @@ -403,7 +396,7 @@ static int btmtksdio_recv_event(struct hci_dev *hdev, struct sk_buff *skb) if (err < 0) goto err_free_skb; - if (hdr->evt == HCI_EV_VENDOR) { + if (hdr->evt == HCI_EV_WMT) { if (test_and_clear_bit(BTMTKSDIO_TX_WAIT_VND_EVT, &bdev->tx_state)) { /* Barrier to sync with other CPUs */ diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index aefa0ee293f3..55ebab019d29 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -2271,11 +2271,6 @@ static void btusb_mtk_wmt_recv(struct urb *urb) skb_put_data(skb, urb->transfer_buffer, urb->actual_length); hdr = (void *)skb->data; - /* Fix up the vendor event id with 0xff for vendor specific - * instead of 0xe4 so that event send via monitoring socket can - * be parsed properly. - */ - hdr->evt = 0xff; /* When someone waits for the WMT event, the skb is being cloned * and being processed the events from there then. -- 2.25.1