Received: by 2002:ac0:8c9a:0:0:0:0:0 with SMTP id r26csp3903619ima; Mon, 4 Feb 2019 07:07:28 -0800 (PST) X-Google-Smtp-Source: ALg8bN5DVVf7hhI476AOmVH668RcsMrONfR30DgEQ9lcUcoSSM1LqrvrkRC9/+hWt88pLs+fH6X/ X-Received: by 2002:a17:902:4464:: with SMTP id k91mr52619255pld.13.1549292848289; Mon, 04 Feb 2019 07:07:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549292848; cv=none; d=google.com; s=arc-20160816; b=SqCpZBlcY/VZ2NutgbFjAWNTU12TPVpH2ePHq47WbT+0W9l8KjLOsunwTWUWWC4DqE FC/G7oHh3H4aJmoPbOQ8Cqw8oO73zfyHl4DX+822K2bwFGApFxCdf888+3ZduK/rEYbn aUIJAFP0ZSJ8NDVzzVG6lxvHKnwObGk2Zcj5uVA4KwABDHJ5IJS01Cqw+eQG4eAR60+C DoFdzgvr3qJ3MZqQE6M+kPOgZVvl9Cm0ornwyr4L5T7gwYFWX4p63jygjmopbCFTRTFY tEVlVaNdm4JoUpM54Ir9+3ZbwT3sWshyzScoOceTfuoFgn014R2PK+upw5nSJQA5k4GB u5bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dmarc-filter:dkim-signature :dkim-signature; bh=LlH2pWUjyixw3DPCZNNqZFczpwPhdC5wXjRxFZ1223c=; b=CUoTP4cF/ilLSKcx8MIKiRJxPKhPkexNfJR5cKhgh4pVO2lKHBzQvki0vP3NRx7Mpg 53Z9hqdy7zrWEWKYPHMHewdCj9RmgExX6BrWVoseuD+qWDrui3mkVge5phukSQufBVfG fj9vH5ZmF3kbQKkghwFoshz6JZj479B2fywNkW0qXWF0gY3Hww4mBlz18FSmO0sS8iOv x8RSh8+VNT6LyTL8Q2ZqTomRG9VxgPN0wVjVGT4IS9RbGBDmFTdnxyRJYO2qFqEMrruI 3tMAPBtJvZmSzZ5TVaVPAZVxWIqMYaF79Fzcv56Bd0MUvs5RG9M59uGmy1QSspjqxlcC pZPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=DS5MVfGE; dkim=pass header.i=@codeaurora.org header.s=default header.b=Ikcv7c2p; 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 g63si248098pfc.60.2019.02.04.07.07.09; Mon, 04 Feb 2019 07:07:28 -0800 (PST) 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; dkim=pass header.i=@codeaurora.org header.s=default header.b=DS5MVfGE; dkim=pass header.i=@codeaurora.org header.s=default header.b=Ikcv7c2p; 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 S1730764AbfBDPG6 (ORCPT + 99 others); Mon, 4 Feb 2019 10:06:58 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:38624 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727217AbfBDPG5 (ORCPT ); Mon, 4 Feb 2019 10:06:57 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 3282F607F5; Mon, 4 Feb 2019 15:06:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1549292816; bh=R7qQaYeLaHBZ4OlnpE574h2tGHnIx/7WlkRp8HSGbHQ=; h=From:To:Cc:Subject:Date:From; b=DS5MVfGE364c4fuhA9dpLJGxyF6W+Y2MkJqmwlwe32TWWY8XxrWUdCjUxw8O9XfWt oUUfAG8nYxkWP2WtRkDr3Sr5xPLS0WsjCwfm4m6aefXCfQhubA7/yYecpQS/fw1XLk Vk6wRxlGu9u+L9CMxAJ6sPfl8wgOjqkLkzaAE2xY= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID,DKIM_SIGNED autolearn=no autolearn_force=no version=3.4.0 Received: from bgodavar-linux.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: bgodavar@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 91DD16074F; Mon, 4 Feb 2019 15:06:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1549292815; bh=R7qQaYeLaHBZ4OlnpE574h2tGHnIx/7WlkRp8HSGbHQ=; h=From:To:Cc:Subject:Date:From; b=Ikcv7c2pzOtTK0y+SpbDS/Cv2ol957A6mkIk6/oiozxksyJR/6ZXyUeuCp7PLnpKJ SBGza/dO3xEptF620ZsexpLLRRtM08gKSgB/gyKs0z/41cdwdiQtRRRrIa2N34m8ei V67mHwyL05R8bBXNgq8U/FUz4GYhZjfxbMJezwOI= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 91DD16074F Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=bgodavar@codeaurora.org From: Balakrishna Godavarthi To: marcel@holtmann.org, johan.hedberg@gmail.com Cc: mka@chromium.org, linux-kernel@vger.kernel.org, linux-bluetooth@vger.kernel.org, hemantg@codeaurora.org, linux-arm-msm@vger.kernel.org, Balakrishna Godavarthi Subject: [PATCH v11 0/3] Bug fixes for Qualcomm BT chip wcn3990 Date: Mon, 4 Feb 2019 20:36:40 +0530 Message-Id: <20190204150643.25165-1-bgodavar@codeaurora.org> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The below issues are found in our recent testing. 1. Observed device is not going into off state or not responding. As wcn3990 require a power pulses to turn on the irrespctive of igniting regulators, it was observed that power on or power off pulses are not in sync with respective to chip. The below patch will help us to wait until byte is pushed on to wires. * Bluetooth: hci_qca: use wait_until_sent() for power pulses 2. Observed Chip responding when we are in sleep. This is due to turn on flow control during change baudrate request. The below patch will only pull the RTS line high instead of turning off the flow. * Bluetooth: hci_qca: Pull RTS line high for baudrate change command. 3. Disable IBS state machine and flush Tx buffer We are disabling IBS and flushing the Tx buffer before turning off the chip. This is due to IBS state machine is active when we turn off the chip. This will stop queuing IBS protocol bytes. * Bluetooth: hci_qca: Disable IBS state machine and flush Tx buffer Changes in v11: * added correct signatures for the patch. Changes in v10: * Decreased wait time for power pulse to 100 ms instead of 1second. * enabling the flow control back when baudarte change request fails. * updated review comments. Changes in v9: * Reverted the 100us delay and used msecs to jiffies inline call. * Disabling the flow control and enabling it back while setting the firmware. * Added spinlock while clearing the IBS state machine. Changes in v8: * dropped inject the command complete event. * added one second time for the power pules instead of the indefinite time. Changes in v7: * dropped frame reassmebly error patch. * dropped baudrate change wait time patch. * increased a wait to 5 ms for power pulses. Changes in v6: * added serdev_device_write_flush in qca_send_power_pulse(). * added new patch to update the baudrate change wait time. Changes in V5: * added serdev_device_write_flush before sending the power off pulse during shutdown. Changes in v4: * used serdev_device_write_buf() instead of serdev_device_write(). * added new patch to stop logging of 0xfc00 timeout on console. Changes in v3: * moved IBS & qca_flush to different patch * updated comments in code fo Deassert RTS patch Balakrishna Godavarthi (3): Bluetooth: hci_qca: use wait_until_sent() for power pulses Bluetooth: hci_qca: Deassert RTS while baudrate change command Bluetooth: hci_qca: Disable IBS state machine and flush Tx buffer drivers/bluetooth/hci_qca.c | 82 ++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 38 deletions(-) -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project