Received: by 2002:ac0:8c9a:0:0:0:0:0 with SMTP id r26csp91471ima; Thu, 31 Jan 2019 23:39:10 -0800 (PST) X-Google-Smtp-Source: ALg8bN6hxGe0lm57FG8AU90OtKPxI3V8nEVp81S5Cg+MlbqKfO94VSxNyU0+3AjNwO1oRTgRv7K8 X-Received: by 2002:a17:902:1005:: with SMTP id b5mr38445961pla.310.1549006750171; Thu, 31 Jan 2019 23:39:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549006750; cv=none; d=google.com; s=arc-20160816; b=AjSQGdvTbPWLtJI4OXVdXXdEDw6AOH/xPWqqK1mxy80ETTUJr7fVlzsTbx9LyNcdz7 +fYfWj/+pwQU5/vthu0Oo1236NvbBT/O44oXVFShmPcuK+JWfqwqI48WpLdXQKxwtHZ1 jtEdtQHsNkf/bqbonshpgvKtG8lBPK02jsslugvT/IxtDcAqlndJBbimsskpDwb69kPY KAEhLDpNQl0+UPH+3VMnbP3b78fV/lFR0fGk6VSGyOMWJSjMFPBuh+i9UBhg3/uH9nrc wqdu7YA2gYfzRHOMKi1XiMhBF0vKh2LrMgZuAMjc2294jFpjfgzW6n2Y40HSPn2Vdg6a PBjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=FRhR/Q7V5UW8bTv78tFGbMeLhJGxOeHwt5+8ifpz9Q0=; b=IibNHPI81D71Vuy6ll7dxRrwm6e5lVhcT6YT1IEiZX1W1XvuG7WeY23pXndan5fRlY lfBxnASLIqpbhaf2OVxYz8zPs8be5JnPwjdS9rJiP1LyPCawi2Lrkc0kCd28xGmgcfYI 5AL8JQOG3XvwXDeZUKvaNYKHTCZ8SMr5oQ643RMM4o01qrDscMDnGVyWssCv5SJLJgNL 30KTypalD9QqN9OkckPjslLCMjJzciNW26IjdquOBC6AaYDXrzur0/OtM89b0/IUuRRL sIcKlQvIwH13HbVLMK1V6ITzAEI95va4YHmsYGgubdNpZ57B1RaosiSpDeOVgcOshXpv WsuA== 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 f35si6891242plh.399.2019.01.31.23.38.55; Thu, 31 Jan 2019 23:39:10 -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; 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 S1727276AbfBAHiZ (ORCPT + 99 others); Fri, 1 Feb 2019 02:38:25 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:50298 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726699AbfBAHiX (ORCPT ); Fri, 1 Feb 2019 02:38:23 -0500 X-UUID: d1915af8cd2048639bd3369a966e8bf7-20190201 X-UUID: d1915af8cd2048639bd3369a966e8bf7-20190201 Received: from mtkcas09.mediatek.inc [(172.21.101.178)] by mailgw02.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 2014124702; Fri, 01 Feb 2019 15:38:17 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs03n2.mediatek.inc (172.21.101.182) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 1 Feb 2019 15:38:15 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 1 Feb 2019 15:38:15 +0800 From: To: =Zhang Rui , =Eduardo Valentin , =Daniel Lezcano , =Rob Herring , =Mark Rutland , =Matthias Brugger CC: , , , , , , Michael Kao Subject: [PATCH 5/7] thermal: mediatek: add flag for bank selection Date: Fri, 1 Feb 2019 15:38:11 +0800 Message-ID: <1549006693-11659-6-git-send-email-michael.kao@mediatek.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1549006693-11659-1-git-send-email-michael.kao@mediatek.com> References: <1549006693-11659-1-git-send-email-michael.kao@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 027EB64FBB3869FDCF181AFF62097238AF185DCA77FCC315B65135C61F187A8B2000:8 X-MTK: N Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michael Kao For past ic designs, the thermal controller should select banks before reading the thermal sensor. And the new ic design architecture removes this mechanism. Signed-off-by: Michael Kao --- drivers/thermal/mtk_thermal.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/thermal/mtk_thermal.c b/drivers/thermal/mtk_thermal.c index e5cf3f4..3e97638 100644 --- a/drivers/thermal/mtk_thermal.c +++ b/drivers/thermal/mtk_thermal.c @@ -213,6 +213,7 @@ struct mtk_thermal_data { const int cali_val; const int num_controller; const int *controller_offset; + bool need_switch_bank; struct thermal_bank_cfg bank_data[]; }; @@ -327,6 +328,7 @@ struct mtk_thermal { .cali_val = MT8173_CALIBRATION, .num_controller = MT8173_NUM_CONTROLLER, .controller_offset = mt8173_tc_offset, + .need_switch_bank = true, .bank_data = { { .num_sensors = 2, @@ -365,6 +367,7 @@ struct mtk_thermal { .cali_val = MT2701_CALIBRATION, .num_controller = MT2701_NUM_CONTROLLER, .controller_offset = mt2701_tc_offset, + .need_switch_bank = true, .bank_data = { { .num_sensors = 3, @@ -394,6 +397,7 @@ struct mtk_thermal { .cali_val = MT2712_CALIBRATION, .num_controller = MT2712_NUM_CONTROLLER, .controller_offset = mt2712_tc_offset, + .need_switch_bank = true, .bank_data = { { .num_sensors = 4, @@ -417,6 +421,7 @@ struct mtk_thermal { .cali_val = MT7622_CALIBRATION, .num_controller = MT7622_NUM_CONTROLLER, .controller_offset = mt7622_tc_offset, + .need_switch_bank = true, .bank_data = { { .num_sensors = 1, @@ -463,12 +468,14 @@ static void mtk_thermal_get_bank(struct mtk_thermal_bank *bank) struct mtk_thermal *mt = bank->mt; u32 val; - mutex_lock(&mt->lock); + if (mt->conf->need_switch_bank) { + mutex_lock(&mt->lock); - val = readl(mt->thermal_base + PTPCORESEL); - val &= ~0xf; - val |= bank->id; - writel(val, mt->thermal_base + PTPCORESEL); + val = readl(mt->thermal_base + PTPCORESEL); + val &= ~0xf; + val |= bank->id; + writel(val, mt->thermal_base + PTPCORESEL); + } } /** @@ -481,7 +488,8 @@ static void mtk_thermal_put_bank(struct mtk_thermal_bank *bank) { struct mtk_thermal *mt = bank->mt; - mutex_unlock(&mt->lock); + if (mt->conf->need_switch_bank) + mutex_unlock(&mt->lock); } /** -- 1.9.1