From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E6CB4C433E8 for ; Wed, 12 Aug 2020 01:33:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C0AB72080C for ; Wed, 12 Aug 2020 01:33:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="qSkeLFvV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726611AbgHLBdu (ORCPT ); Tue, 11 Aug 2020 21:33:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726679AbgHLBds (ORCPT ); Tue, 11 Aug 2020 21:33:48 -0400 Received: from mail-ot1-x342.google.com (mail-ot1-x342.google.com [IPv6:2607:f8b0:4864:20::342]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9CB13C06178A for ; Tue, 11 Aug 2020 18:33:48 -0700 (PDT) Received: by mail-ot1-x342.google.com with SMTP id c4so681841otf.12 for ; Tue, 11 Aug 2020 18:33:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OOPEDXgtktX+STOhnXLIGFgUbz2AXCn5XtOhUs7FFWI=; b=qSkeLFvVCBeyPkmdkgo9OCu5OWH5Dw6+0Twq6g7pWRUKkrgMSI2z7oY5mGZviazadc spoPzCobAhW7sEDx1xtNZWsQ/0F5j9CvS7EzK+4CW832Mnin/Tfo74DU3bVJJmh1Dw+u 12je9qrMQ19aLS/Ik6iyA4QMhSdyMq16Q2Wk0lYS7xTu0JEVkE/wofm+Ov+w029jUpR5 lELK88tQ8d/m445rIjFhk4LKCQ/rYg6C2Xur4Da8IfMcqe85B6YdRVQRj4d5QPCbhkIU RCK17RLFpRllpJN4hkBKlEYHX7P6xA7j56ZedLQjmPHHtCOzIyZ6joZ7irT53PcAqEqZ OdDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OOPEDXgtktX+STOhnXLIGFgUbz2AXCn5XtOhUs7FFWI=; b=JYULmmthij3IBfWkmpNMyFEC0T22U7F57LlGUsTc1UlI44dw/AcsiizQU0Rnj9btak PurdEGnlHsD0uUIqDsE8PA8aIzA62mCRHJAASJNZjFqVe7i8lCUpbgBk/tev9KNsPfYU pcbJp+OapOeoR9OiahpP7ECdMH80JBH+n4wcyyAbQOxn20pbXXtZjnLy/G8o3SPLO7J7 JPdI4SGAXPSQW2Z2viFN0ctt7zw2vph9uJ0fpIQNQmRLWiI+IwkwIe+k+KRkUlKBLsze e4Z8hzAhiRPNXxn/3BBoO9TTiNbupEafLo1kV5lnyFqkA5ZzdLePuTvk789WNuaaRLg0 NMaQ== X-Gm-Message-State: AOAM532KN3HLoUeZwD1S7rdbbVhrr650h0yM79doOIsSBiom8/HhCChF zyrecBauRjIMkk0+J1GOFUYNg6qNaUJoCXvz1Yb/MF5uE5U= X-Google-Smtp-Source: ABdhPJxLxPaIzKvPWsnNCzFrhyTFYZetvE3df4QriA+UBfu0xBdgDZG7G/eP+D69kfw+gwQ/XsFyZuhoDhcuSqY1Mvw= X-Received: by 2002:a9d:6f8f:: with SMTP id h15mr7099143otq.221.1597196027730; Tue, 11 Aug 2020 18:33:47 -0700 (PDT) MIME-Version: 1.0 References: <20190320094918.20234-1-rnayak@codeaurora.org> <20190320094918.20234-4-rnayak@codeaurora.org> In-Reply-To: From: John Stultz Date: Tue, 11 Aug 2020 18:33:36 -0700 Message-ID: Subject: Re: [RFC v2 03/11] tty: serial: qcom_geni_serial: Use OPP API to set clk/perf state To: Rajendra Nayak Cc: lkml , Ulf Hansson , linux-scsi@vger.kernel.org, Linux PM list , linux-arm-msm , "Rafael J. Wysocki" , Doug Anderson , dri-devel , linux-spi@vger.kernel.org, linux-serial@vger.kernel.org, Viresh Kumar , Stephen Boyd , Amit Pundir , Bjorn Andersson Content-Type: text/plain; charset="UTF-8" Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On Tue, Aug 11, 2020 at 4:11 PM John Stultz wrote: > > On Wed, Mar 20, 2019 at 2:49 AM Rajendra Nayak wrote: > > > > geni serial needs to express a perforamnce state requirement on CX > > depending on the frequency of the clock rates. Use OPP table from > > DT to register with OPP framework and use dev_pm_opp_set_rate() to > > set the clk/perf state. > > > > Signed-off-by: Rajendra Nayak > > Signed-off-by: Stephen Boyd > > --- > > drivers/tty/serial/qcom_geni_serial.c | 15 +++++++++++++-- > > 1 file changed, 13 insertions(+), 2 deletions(-) > > > > Hey, > I just wanted to follow up on this patch, as I've bisected it > (a5819b548af0) down as having broken qca bluetooth on the Dragonboard > 845c. > > I haven't yet had time to debug it yet, but wanted to raise the issue > in case anyone else has seen similar trouble. So I dug in a bit further, and this chunk seems to be causing the issue: > @@ -961,7 +963,7 @@ static void qcom_geni_serial_set_termios(struct uart_port *uport, > goto out_restart_rx; > > uport->uartclk = clk_rate; > - clk_set_rate(port->se.clk, clk_rate); > + dev_pm_opp_set_rate(port->dev, clk_rate); > ser_clk_cfg = SER_CLK_EN; > ser_clk_cfg |= clk_div << CLK_DIV_SHFT; > With that applied, I see the following errors in dmesg and bluetooth fails to function: [ 4.763467] qcom_geni_serial 898000.serial: dev_pm_opp_set_rate: failed to find OPP for freq 102400000 (-34) [ 4.773493] qcom_geni_serial 898000.serial: dev_pm_opp_set_rate: failed to find OPP for freq 102400000 (-34) With just that chunk reverted on linus/HEAD, bluetooth seems to work ok. thanks -john