Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp5037654imm; Tue, 7 Aug 2018 11:30:26 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfQB4EDKZx+WgBtQQJRaL8s+daDD74747LgG36EHEPwxuvqRPQTelGb2ioVnHPvUc5Fm/Bl X-Received: by 2002:a63:121a:: with SMTP id h26-v6mr20123492pgl.316.1533666626647; Tue, 07 Aug 2018 11:30:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533666626; cv=none; d=google.com; s=arc-20160816; b=phwUx0XCaIS54fozFnHevyeU0onJGV9pS2FQDIS6azldGNsWJLNzH6zR3levdji8vW pA6oeAN316BqR4qjvpqCBGSA0oYVMVcZM7bkPwymOqzCQ+killUgLTOqSTdJ9jADdXOa KKQDpH4B70M35yYvgZKjG07zbk1UAZskd+06hluHMkbPDZP75zjLYY7vn1IJWaeXTZoY oCbKJNRawWH6Ldd5jcGf+TDeSXpj1gCRv+shVVs2T/F9GK10yKcGcVXhhcsTXFZf83N3 0x0tS18WXX7Ad87z/Oqo86x51z9w/498Gmf4FRnT802ACqt67O8SvP0BikuQK7LIW9ac 1VxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:message-id :content-transfer-encoding:cc:date:in-reply-to:from:subject :mime-version:arc-authentication-results; bh=GacSQB+K64uSvgQPqiRHax/EfeHwnOQMRK4uNj6bmn4=; b=IfibmmPh5p2afL2Ptj01p6Bw5EAXAiVGf263zMLM7tQW0DGu0sD1merksr0Sc9Cz7X ZEjB8wglcy583TK2utTA1WMEDwTUzCFKRAdyl9VwJGa/8xCT2ckXgdZc8C0/Acf6w+I+ L2NNv6VNIugrZL4R4n3N+ad/1nx0NEX8+NHgXObD1jkxX2b017YY2gJ0jfAvjg9TaEXk tKrNoBjW3tpOyyGbI9qOw7io6Km0t5w2XxWeZ1SKpTBcHIT8NPKrt8zYuz42qJbW91Ci uzbr28SwVol07NdLlwsuwIkjrcOIV6VNH4PN8HAVeaTtM0sDs0hzaa8Rwx3OhVz+gvu5 9uLg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x65-v6si2132033pff.196.2018.08.07.11.30.12; Tue, 07 Aug 2018 11:30:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2403865AbeHGSJw convert rfc822-to-8bit (ORCPT + 99 others); Tue, 7 Aug 2018 14:09:52 -0400 Received: from coyote.holtmann.net ([212.227.132.17]:59241 "EHLO mail.holtmann.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389870AbeHGSJw (ORCPT ); Tue, 7 Aug 2018 14:09:52 -0400 Received: from marcel-macpro.fritz.box (p4FEFCC41.dip0.t-ipconnect.de [79.239.204.65]) by mail.holtmann.org (Postfix) with ESMTPSA id F1F0DCF2AD; Tue, 7 Aug 2018 18:01:54 +0200 (CEST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Subject: Re: [PATCH v7 2/3] Bluetooth: mediatek: Add protocol support for MediaTek serial devices From: Marcel Holtmann In-Reply-To: <1533652445.3472.230.camel@mtkswgap22> Date: Tue, 7 Aug 2018 17:54:53 +0200 Cc: Mark Rutland , devicetree , Johan Hedberg , Linux Kernel Mailing List , "open list:BLUETOOTH DRIVERS" , Rob Herring , linux-mediatek@lists.infradead.org, linux-arm-kernel Content-Transfer-Encoding: 8BIT Message-Id: <8AF72CFC-4978-42AD-8ECC-752EB137DD2A@holtmann.org> References: <1707FFA1-A294-4A95-A3BF-0910CE455232@holtmann.org> <1533192799.3472.122.camel@mtkswgap22> <1533199720.3472.136.camel@mtkswgap22> <9526E5D9-50BA-4D57-80F5-083DB7D28AFE@holtmann.org> <1533205495.3472.144.camel@mtkswgap22> <1533303749.3472.160.camel@mtkswgap22> <1533319214.3472.187.camel@mtkswgap22> <7A3537C5-5940-45AD-AB80-77418CCFE130@holtmann.org> <1533652445.3472.230.camel@mtkswgap22> To: Sean Wang X-Mailer: Apple Mail (2.3445.9.1) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Sean, >>>> this is even more hackish since the __hci_cmd_sync_ev command is really meant to get a cmd status first before waiting for that event. >>>> >>> >>> Understood. >>> >>> I've stopped the hack in v8. could we merge v8 first ? and then I will a fix up with __hci_raw_sync_ev that uses the hdev->raw_q instead of __hci_cmd_sync_ev in TODO. >> >> so I looked into this a bit more. We actually added __hci_cmd_send for a Qualcomm firmware loader that was doing something similar. So instead of trying to add a yet another command to the core, I actually used that and implemented the wait for vendor event in the driver. >> >> You will see my v9 on the mailing list. I also did a bunch of cosmetic minor cleanup and spelling correction. Please test this version. I also make __le16 dlen instead of dlen1 + dlen2 since I think that is what your hardware does. > > Only one thing needs to be corrected in v9. that is __be16 is required instead of dlen1 + dlen2. I will fix it up in v10 and the other changes all look good to me. > >> If this version of the driver works for you then I am happy to merge it. You can then add support for hdev->set_bdaddr and hdev->set_diag in later patches. I also like to clean up the STP receive handler since it can be done a lot simpler and smaller, but that has to wait. >> > > hopefully v10 also can be merged :) send me a v10 and I can merge it. > I will investigate more about how to add ->set_bdaddr, ->set_diag and STP receive enhancement in later patches. > > but so far I have not much idea about how to make STP multiplexer be a independent driver. > > my thought is that it would be really better and cleaner a chain of serdev is be used as the base of mtkbtuart. something like > > 8250 serial bus <----> STP multiplexer serdev <----> mtkbtuart serdev > > however, STP multiplexer serdev is not a real device, that doesn't no request any resource. I think it should not be allowed to be added in a device tree and even in dt-binding document. Before we do that, lets get a cleaner parser for it. I just don’t have enough time to wrap my head around this one yet. >>>> Are all Mediatek vendor commands this way? Or just the ones for loading the firmware? So only the WMT ones? >>>> >>> >>> Only the WMT ones, WMT commands/events are usually used in system controlling, for example, global function on/off, firmware download, reset and so on. most only appear on device initialization >> >> Since you never checked the result of the vendor event, I opted for just signaling that it arrived. If they can report success or failure, we need to add some extra code for that. >> > > I will consider more WMT event status when I add more Bluetooth devices such as MT7668U usb based Bluetooth which I plan to add the support in later patches in the next weeks Are the USB ones also using STP or are they H:2 based like all the others. What are prominent MT7668U based ones that I could buy? Regards Marcel