From: "Henry Yen (顏修溫)" <Henry.Yen@mediatek.com>
To: "daniel@makrotopia.org" <daniel@makrotopia.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"rui.zhang@intel.com" <rui.zhang@intel.com>,
"Xing Fang (方兴)" <Xing.Fang@mediatek.com>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"daniel.lezcano@linaro.org" <daniel.lezcano@linaro.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"amitk@kernel.org" <amitk@kernel.org>,
"Steven Liu (劉人豪)" <steven.liu@mediatek.com>,
"rafael@kernel.org" <rafael@kernel.org>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>
Subject: Re: [PATCH 1/2] thermal: mediatek: add support for MT7986 and MT7981
Date: Wed, 30 Nov 2022 07:43:53 +0000 [thread overview]
Message-ID: <a2438a018be83e74d316ba26ddd96256e0b8d79a.camel@mediatek.com> (raw)
In-Reply-To: <Y4X23BWjsxzzXH/H@makrotopia.org>
On Tue, 2022-11-29 at 12:11 +0000, Daniel Golle wrote:
> On Tue, Nov 29, 2022 at 11:53:58AM +0000, Henry Yen (顏修溫) wrote:
> > On Mon, 2022-10-31 at 23:07 +0000, Daniel Golle wrote:
> > > diff --git a/drivers/thermal/mtk_thermal.c
> > > b/drivers/thermal/mtk_thermal.c
> > >
> > > +static int raw_to_mcelsius_v3(struct mtk_thermal *mt, int
> > > sensno,
> > > s32 raw)
> > > +{
> > > + s32 tmp;
> > > +
> > > + if (raw == 0)
> > > + return 0;
> > > +
> > > + raw &= 0xfff;
> > > + tmp = 100000 * 15 / 16 * 10000;
> > > + tmp /= 4096 - 512 + mt->adc_ge;
> > > + tmp /= 1490;
> > > + tmp *= raw - mt->vts[sensno] - 2900 - mt->adc_oe + 512;
> >
> > Hi Daniel,
> >
> > Regarding the conversion formula, I would suggest following the
> > original one, i.e., discarding "adc_oe" parameter as shown in [1].
>
> Ok, I see. According to the commit description it looked to me more
> like adc_oe has been dropped by accident, it doesn't sound like it
> happened on purpose:
> "Refactor MT7986 thermal temperature calculation formula to
> prevent loss of floating-point accuracy."
>
> Hence it made sense to be to keep the parameter and really only
> use the updated formula to not loose precision. Maybe you can inquire
> with the original author if dropping adc_oe was intentional, despite
> being unmentioned in the commit message.
Actually I'm just the original author who developes MT7986/MT7981
thermal driver and refactors this conversion formula. Getting rid of
"adc_oe" is indeed an intentional change, because back then our
hardware members indicated that this parameter shouldn't have been
used.
Thank you for your carefulness :)
>
> > This equation is derived based on hardware-specific theory, so any
> > arbitrary change could possibly lead to incorrect temperature
> > output.
> > Thanks.
>
> On my BPi-R3 board I found the value 512 burned into the efuse, so in
> practise the resulting calculated temperature is exactly the same on
> this board.
>
> If other MT7986 or MT7981 boards will have arbitrary values stored in
> adc_oe field in the efuse because this value isn't even used during
> the manufacturer's calibration process, then of course, there is no
> choice other than dropping it here as well.
>
The value of "adc_oe" is not necessarily 512. It could possibly vary
from board to board.
- Henry
> >
> > [1]
> >
> >
https://git01.mediatek.com/plugins/gitiles/openwrt/feeds/mtk-openwrt-feeds/+/baf36c7eef477aae1f8f2653b6c29e2caf48475b%5E%21/#F0
> >
> >
> > Henry
> >
> > > +
> > > + return mt->degc_cali * 500 - tmp;
> > > +}
> > > +
> > > /**
> > > * mtk_thermal_get_bank - get bank
> > > * @bank: The bank
next prev parent reply other threads:[~2022-11-30 7:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20221031230748.xRL1SJX5PchbqyD2hxlXVi5XiA2L39VKuLCwNxdN6uc@z>
2022-11-29 11:53 ` Henry Yen (顏修溫)
2022-11-29 12:11 ` Daniel Golle
2022-11-30 7:43 ` Henry Yen (顏修溫) [this message]
2022-10-31 22:15 Daniel Golle
2022-10-31 23:07 ` Daniel Golle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a2438a018be83e74d316ba26ddd96256e0b8d79a.camel@mediatek.com \
--to=henry.yen@mediatek.com \
--cc=Xing.Fang@mediatek.com \
--cc=amitk@kernel.org \
--cc=daniel.lezcano@linaro.org \
--cc=daniel@makrotopia.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=matthias.bgg@gmail.com \
--cc=rafael@kernel.org \
--cc=rui.zhang@intel.com \
--cc=steven.liu@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®