Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp4381562imm; Mon, 11 Jun 2018 11:20:09 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKfbUMM8GyuzSyPE2MogtxUVImRudHt1bnqad/lA7rEAlI5YIuJhoBgM+69t3KpgIBVvkAi X-Received: by 2002:a17:902:9685:: with SMTP id n5-v6mr272371plp.15.1528741209887; Mon, 11 Jun 2018 11:20:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528741209; cv=none; d=google.com; s=arc-20160816; b=KA5OmJvrmu8cWP5+JA7M0yEc3PrsgnLjq3lH6YCy+fft/TPgPu38NTQLedFvj8JkkB LRsRgdgRR4v/kWaC1UrNurFjNDkje55zrOnwd+qzomadkiHpVKFDCHshG6hTUHvnSp98 hYKxulXK94W1KRDozQtJuRbuktTKa+mH5oZNEEqTWMitbcZqturap8JXJ9WzmE13ZarL likmXNGZvuBSE/1R1e6dBZKAsR+fNLVUnmgWr9xQUhjjI5aupc/OOSkoYJ6vBwSVWbT6 00EF0r9lo/NvmvyttchVXJwKBcNq2jLtM2iFa2rR4e37/dUhEtCYaVxXtXsTHiWvnE7T RGRQ== 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=q587JJaSIRRyA7pqLCi2ZJZBn7WlRH9+DSC7Gry9H40=; b=kx+Pwy4qtWZnD7tOJuOVHVzDQlhj8/oIWc/xYb5vxh0YN8gj5oOxute5ntPx9EDI6X yZUwyBdCegMDJ2IpzEvE69aMOmFQplIGpRk9TX9NdSZamUidBSquNOLV3kPwmmkRsbfL 7XJlf+T/fro+s85YI0CuGMMePKL5sxXunulopqj9vPfxZaVb7+mu5pQWIl9f1IAqlOBm 0k0hcLFHWjAdZcrivMea+fhlwLn4JeWaLgfYelc0c4AHsFm9oMrjpJOT3z+l1o8l+i9+ bMjihTc2pGMuEf1fhNPoEnKiYGYvukzlNwkN/8SlJU8+UVMPRFqT2dwAIA1uWieLI99C wlsQ== 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 i86-v6si36886617pfk.146.2018.06.11.11.19.55; Mon, 11 Jun 2018 11:20:09 -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 S934195AbeFKSTJ convert rfc822-to-8bit (ORCPT + 99 others); Mon, 11 Jun 2018 14:19:09 -0400 Received: from coyote.holtmann.net ([212.227.132.17]:43264 "EHLO mail.holtmann.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933452AbeFKSTH (ORCPT ); Mon, 11 Jun 2018 14:19:07 -0400 Received: from marcel-macpro.fritz.box (p5B3D24B5.dip0.t-ipconnect.de [91.61.36.181]) by mail.holtmann.org (Postfix) with ESMTPSA id CD0B7CF18A; Mon, 11 Jun 2018 20:25:47 +0200 (CEST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.4 \(3445.8.2\)) Subject: Re: [PATCH] Bluetooth: hci_bcm: Configure SCO routing automatically From: Marcel Holtmann In-Reply-To: Date: Mon, 11 Jun 2018 20:19:04 +0200 Cc: =?utf-8?B?QXR0aWxhIFTFkWvDqXM=?= , "David S. Miller" , Mark Rutland , Johan Hedberg , Artiom Vaskov , netdev , devicetree , "linux-kernel@vger.kernel.org" , "open list:BLUETOOTH DRIVERS" Content-Transfer-Encoding: 8BIT Message-Id: References: <280FCB2C-6DF1-4790-A89F-AF5BE3513AE5@holtmann.org> <20180608162009.22762-1-attitokes@gmail.com> <4F0D6729-AE77-47D4-9765-FBC44181D4DE@holtmann.org> To: Rob Herring X-Mailer: Apple Mail (2.3445.8.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rob, >>>>>> Added support to automatically configure the SCO packet routing at the >>>>>> device setup. The SCO packets are used with the HSP / HFP profiles, but in >>>>>> some devices (ex. CYW43438) they are routed to a PCM output by default. This >>>>>> change allows sending the vendor specific HCI command to configure the SCO >>>>>> routing. The parameters of the command are loaded from the device tree. >>>>> >>>>> Please wrap your commit msg. >>>> >>>> >>>> Sure. >>>>> >>>>> >>>>>> >>>>>> Signed-off-by: Attila Tőkés >>>>>> --- >>>>>> .../bindings/net/broadcom-bluetooth.txt | 7 ++ >>>>> >>>>> Please split bindings to separate patch. >>>> >>>> >>>> Ok, I will split this in two. >>>>> >>>>> >>>>> >>>>> >>>>>> drivers/bluetooth/hci_bcm.c | 72 +++++++++++++++++++ >>>>>> 2 files changed, 79 insertions(+) >>>>>> >>>>>> diff --git >>>>>> a/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt >>>>>> b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt >>>>>> index 4194ff7e..aea3a094 100644 >>>>>> --- a/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt >>>>>> +++ b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt >>>>>> @@ -21,6 +21,12 @@ Optional properties: >>>>>> - clocks: clock specifier if external clock provided to the controller >>>>>> - clock-names: should be "extclk" >>>>>> >>>>>> + SCO routing parameters: >>>>>> + - sco-routing: 0-3 (PCM, Transport, Codec, I2S) >>>>>> + - pcm-interface-rate: 0-4 (128 Kbps - 2048 Kbps) >>>>>> + - pcm-frame-type: 0 (short), 1 (long) >>>>>> + - pcm-sync-mode: 0 (slave), 1 (master) >>>>>> + - pcm-clock-mode: 0 (slave), 1 (master) >>>>> >>>>> Are these Broadcom specific? Properties need either vendor prefix or >>>>> to be documented in a common location. I think these look like the >>>>> latter. >>>> >>>> >>>> These will be used as parameters of a vendor specific (Broadcom/Cypress) >>>> command configuring the SCO packet routing. See the Write_SCO_PCM_Int_Param >>>> command from: http://www.cypress.com/file/298311/download. >>> >>> The DT should just describe how the h/w is hooked-up. What the s/w has >>> to do based on that is the driver's problem which is certainly >>> vendor/chip specific, but that is all irrelevant to the binding. >>> >>>> What would be the property names with a Broadcom / Cypress vendor prefix? >>>> >>>> brcm,sco-routing >>>> brcm,pcm-interface-rate >>>> brcm,pcm-frame-type >>>> brcm,pcm-sync-mode >>>> brcm,pcm-clock-mode >>>> >>>> ? >>> >>> Yes. >> >> we can do this. However all pcm-* are optional if you switch the HCI transport. And sco-routing should default to HCI if that is not present. Meaning a driver should actively trying to change this. Nevertheless, it would be good if a driver reads the current settings. >> >> In theory we could make sco-routing generic, but so many vendors have different modes, that we better keep this vendor specific. > > Even if vendor specific, the properties for not HCI transport case are > still incomplete IMO. > > By modes, you mean PCM vs. I2S and all the flavors of timings you can > have within those or something else? For the former, that's often > going to be a process of solving what each end support and if that > doesn't work, then IIRC we already have properties for setting > modes/timing. All the same issues exist with audio codecs and this is > really not any different. this is what Broadcom uses to configure their PCM transport. So I think for now, we make them brcm, specific and see how that goes. We can always generalize them later if enough chip manufactures provide support for it. Regards Marcel