Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp1876022rwb; Thu, 29 Sep 2022 03:31:58 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6sp4/3OAwZrpQQpx6Ho6AdQ4I5XeH96mNv3Hz+Nkg7GyUC7vBMRcvZ3NgyUB4jzTg1u3la X-Received: by 2002:a17:90b:4f4b:b0:200:862e:8b19 with SMTP id pj11-20020a17090b4f4b00b00200862e8b19mr2883713pjb.214.1664447517981; Thu, 29 Sep 2022 03:31:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664447517; cv=none; d=google.com; s=arc-20160816; b=zzdGgwelaiJhPDL1Z87fdnLiXJ4oEMVqzz06qWDcnEKBI+p0M8QStBkEZqplHch2AC X5alXMbOBN8eVRyvidsFCZop/vcHt91QKRvjKffE0Pl9Dxhzays2BlYNdb3EZrP02f1l QufSSZf7N6hw1j0Rw/DL4N8pO4SGW1PFL1BSEsYN3cA4qBSNj5fHGd4W0wKuZasOn6so k/gyw+LmUTT047J4FAz1NtLAFt3icsCAiz9bQAmpBvs7Hy/F9R84iV6eSrQVWcai0WFO wT5cr8ptlAc6nUz6EM7LIBVU4QJ3tAIGAFoLHlMfXb8iClfaeACP5RlOF/UiucD87pHW 60lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from :dkim-signature; bh=wsUKJLhSYIayaF4qEX2zqgtQ6cU740L96TzpS6CtFpA=; b=X03o27d0ycINpkLfk2jCtgMB5AeNKOpYoZSWEu5lIejuuI1/nfZjQdfy1NcHZA+33G gUvioHfrw+zwTFOlZea5J5oNLcktZzYlNxqLnLxNMDXRMYRNi8i42tw8OBS+DWPd0VoJ oh6P5kHlnHAB3cEFfLVUgbBZO/a2RPXeudeGWDmTPR5aAVcKNPuYujymIiNgs9jjHWbm irP8/TGsb8IJIZJ1EQZDUGdDpIkgeCjAtcDoWm9sOezxMeO2djiWSd7B0YxBZi7xy5kE apDpLt4pGqMlMZX3EnuPJpWNy3fsMCW34FxcT23iz/FYmtKhmthJ85+VzGyVa0hN9iD6 2fIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=GtzGu5Mb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e15-20020a170902ef4f00b00175393589d6si8086506plx.205.2022.09.29.03.31.46; Thu, 29 Sep 2022 03:31:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=GtzGu5Mb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235415AbiI2K1G (ORCPT + 99 others); Thu, 29 Sep 2022 06:27:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42520 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235354AbiI2K1D (ORCPT ); Thu, 29 Sep 2022 06:27:03 -0400 Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9A1D3CBF4; Thu, 29 Sep 2022 03:26:57 -0700 (PDT) X-UUID: bcc7d032271e47f48add8213f160e488-20220929 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=wsUKJLhSYIayaF4qEX2zqgtQ6cU740L96TzpS6CtFpA=; b=GtzGu5MbFpFbH3TAwB+8CKet9xU29PZFBByKkseWDJ57UVIwY8tmZEvVx8xF9LSmcVQTtqLRNnArBdvfNoFS/KjwAZs0FJ4wSbIRRvbhdD0mkkzCUTiqMjefy3MWjhUQRl4geZkNkZEY0swrE1pn2uArtVyd2QrfOwFMgCvk03s=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.11,REQID:44004c8a-f821-4d07-948c-4ed5128db573,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:39a5ff1,CLOUDID:b7f9a5e4-87f9-4bb0-97b6-34957dc0fbbe,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0 X-UUID: bcc7d032271e47f48add8213f160e488-20220929 Received: from mtkmbs11n2.mediatek.inc [(172.21.101.187)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 566671871; Thu, 29 Sep 2022 18:26:52 +0800 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs13n1.mediatek.inc (172.21.101.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.15; Thu, 29 Sep 2022 18:26:51 +0800 Received: from mszsdaap41.gcn.mediatek.inc (10.16.6.141) by mtkmbs13n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.792.15 via Frontend Transport; Thu, 29 Sep 2022 18:26:50 +0800 From: To: , , , CC: , , , , , xinlei lee Subject: [PATCH v3] pwm: mtk-disp: Fix the parameters calculated by the enabled flag of disp_pwm Date: Thu, 29 Sep 2022 18:26:49 +0800 Message-ID: <1664447209-19417-1-git-send-email-xinlei.lee@mediatek.com> X-Mailer: git-send-email 2.6.4 MIME-Version: 1.0 Content-Type: text/plain X-MTK: N X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: xinlei lee In the original mtk_disp_pwm_get_state() function, the result of reading con0 & BIT(0) is enabled as disp_pwm. In order to conform to the register table, we should use the disp_pwm base address as the enabled judgment. Fixes: 3f2b16734914 ("pwm: mtk-disp: Implement atomic API .get_state()") Signed-off-by: xinlei lee --- Base on the branch of Linux-next/master. change since v2: 1. Modify the code for readability. change since v1: 1. Modify the way to set disp_pwm enbale. --- --- drivers/pwm/pwm-mtk-disp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/pwm/pwm-mtk-disp.c b/drivers/pwm/pwm-mtk-disp.c index c605013e4114..3fbb4bae93a4 100644 --- a/drivers/pwm/pwm-mtk-disp.c +++ b/drivers/pwm/pwm-mtk-disp.c @@ -178,7 +178,7 @@ static void mtk_disp_pwm_get_state(struct pwm_chip *chip, { struct mtk_disp_pwm *mdp = to_mtk_disp_pwm(chip); u64 rate, period, high_width; - u32 clk_div, con0, con1; + u32 clk_div, pwm_en, con0, con1; int err; err = clk_prepare_enable(mdp->clk_main); @@ -197,7 +197,8 @@ static void mtk_disp_pwm_get_state(struct pwm_chip *chip, rate = clk_get_rate(mdp->clk_main); con0 = readl(mdp->base + mdp->data->con0); con1 = readl(mdp->base + mdp->data->con1); - state->enabled = !!(con0 & BIT(0)); + pwm_en = readl(mdp->base + DISP_PWM_EN); + state->enabled = !!(pwm_en & mdp->data->enable_mask); clk_div = FIELD_GET(PWM_CLKDIV_MASK, con0); period = FIELD_GET(PWM_PERIOD_MASK, con1); /* -- 2.18.0