All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafał Miłecki" <zajec5@gmail.com>
To: Jon Mason <jon.mason@broadcom.com>
Cc: "Zhang Rui" <rui.zhang@intel.com>,
	"Eduardo Valentin" <edubezval@gmail.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"Stephen Warren" <swarren@wwwdotorg.org>,
	"Lee Jones" <lee@kernel.org>, "Eric Anholt" <eric@anholt.net>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Ray Jui" <rjui@broadcom.com>,
	"Scott Branden" <sbranden@broadcom.com>,
	bcm-kernel-feedback-list@broadcom.com, linux-pm@vger.kernel.org,
	devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	"Rafał Miłecki" <rafal@milecki.pl>
Subject: Re: [PATCH V2 2/2] thermal: broadcom: add Northstar thermal driver
Date: Fri, 31 Mar 2017 09:03:34 +0200	[thread overview]
Message-ID: <d678d252-a95a-58c0-8098-4401c67040a1@gmail.com> (raw)
In-Reply-To: <20170324143535.GA31953@broadcom.com>

On 03/24/2017 03:35 PM, Jon Mason wrote:
> On Thu, Mar 23, 2017 at 11:30:45PM +0100, Rafał Miłecki wrote:
>> diff --git a/drivers/thermal/broadcom/ns-thermal.c b/drivers/thermal/broadcom/ns-thermal.c
>> new file mode 100644
>> index 000000000000..acf3a4de62a4
>> --- /dev/null
>> +++ b/drivers/thermal/broadcom/ns-thermal.c
>> @@ -0,0 +1,98 @@
>> +/*
>> + * Copyright (C) 2017 Rafał Miłecki <rafal@milecki.pl>
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 as
>> + * published by the Free Software Foundation.
>> + */
>> +
>> +#include <linux/module.h>
>> +#include <linux/of_address.h>
>> +#include <linux/platform_device.h>
>> +#include <linux/thermal.h>
>> +
>> +#define PVTMON_CONTROL0					0x00
>> +#define PVTMON_CONTROL0_SEL_MASK			0x0000000e
>> +#define PVTMON_CONTROL0_SEL_TEMP_MONITOR		0x00000000
>> +#define PVTMON_CONTROL0_SEL_TEST_MODE			0x0000000e
>> +#define PVTMON_STATUS					0x08
>> +
>> +struct ns_thermal {
>> +	void __iomem *pvtmon;
>> +};
>> +
>> +static int ns_thermal_get_temp(void *data, int *temp)
>> +{
>> +	struct ns_thermal *ns_thermal = data;
>> +	u32 val;
>> +
>> +	val = readl(ns_thermal->pvtmon + PVTMON_CONTROL0);
>> +	if ((val & PVTMON_CONTROL0_SEL_MASK) != PVTMON_CONTROL0_SEL_TEMP_MONITOR) {
>> +		val &= ~PVTMON_CONTROL0_SEL_MASK;
>> +		val |= PVTMON_CONTROL0_SEL_TEMP_MONITOR;
>
> I think this is slightly confusing here.  If this was off, ORing in 0
> will not enable it.  I think we need to flip the #define to make it
> PVTMON_CONTROL0_SEL_TEMP_MONITOR_DISABLE (or a less crappy name).
> then use this line here to toggle it.  Something like
>
>                 val &= ~PVTMON_CONTROL0_SEL_TEMP_MONITOR_DISABLE;

I don't understand this, can you help me further?

OR-ing with 0 is only a cosmetic thing obviously - just to make it clear which
value we expect to be set in bits 1:3. The important part is:
val &= ~PVTMON_CONTROL0_SEL_MASK;

AFAIU selecting any mode other than TEMP_MONITOR will disable monitor access.
AFAIU even switchint to TEST_MODE will prevent access to temp, so I don't see
how we could use PVTMON_CONTROL0_SEL_TEMP_MONITOR_DISABLE. It could be any
value other than 0.

WARNING: multiple messages have this Message-ID (diff)
From: zajec5@gmail.com (Rafał Miłecki)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2 2/2] thermal: broadcom: add Northstar thermal driver
Date: Fri, 31 Mar 2017 09:03:34 +0200	[thread overview]
Message-ID: <d678d252-a95a-58c0-8098-4401c67040a1@gmail.com> (raw)
In-Reply-To: <20170324143535.GA31953@broadcom.com>

On 03/24/2017 03:35 PM, Jon Mason wrote:
> On Thu, Mar 23, 2017 at 11:30:45PM +0100, Rafa? Mi?ecki wrote:
>> diff --git a/drivers/thermal/broadcom/ns-thermal.c b/drivers/thermal/broadcom/ns-thermal.c
>> new file mode 100644
>> index 000000000000..acf3a4de62a4
>> --- /dev/null
>> +++ b/drivers/thermal/broadcom/ns-thermal.c
>> @@ -0,0 +1,98 @@
>> +/*
>> + * Copyright (C) 2017 Rafa? Mi?ecki <rafal@milecki.pl>
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 as
>> + * published by the Free Software Foundation.
>> + */
>> +
>> +#include <linux/module.h>
>> +#include <linux/of_address.h>
>> +#include <linux/platform_device.h>
>> +#include <linux/thermal.h>
>> +
>> +#define PVTMON_CONTROL0					0x00
>> +#define PVTMON_CONTROL0_SEL_MASK			0x0000000e
>> +#define PVTMON_CONTROL0_SEL_TEMP_MONITOR		0x00000000
>> +#define PVTMON_CONTROL0_SEL_TEST_MODE			0x0000000e
>> +#define PVTMON_STATUS					0x08
>> +
>> +struct ns_thermal {
>> +	void __iomem *pvtmon;
>> +};
>> +
>> +static int ns_thermal_get_temp(void *data, int *temp)
>> +{
>> +	struct ns_thermal *ns_thermal = data;
>> +	u32 val;
>> +
>> +	val = readl(ns_thermal->pvtmon + PVTMON_CONTROL0);
>> +	if ((val & PVTMON_CONTROL0_SEL_MASK) != PVTMON_CONTROL0_SEL_TEMP_MONITOR) {
>> +		val &= ~PVTMON_CONTROL0_SEL_MASK;
>> +		val |= PVTMON_CONTROL0_SEL_TEMP_MONITOR;
>
> I think this is slightly confusing here.  If this was off, ORing in 0
> will not enable it.  I think we need to flip the #define to make it
> PVTMON_CONTROL0_SEL_TEMP_MONITOR_DISABLE (or a less crappy name).
> then use this line here to toggle it.  Something like
>
>                 val &= ~PVTMON_CONTROL0_SEL_TEMP_MONITOR_DISABLE;

I don't understand this, can you help me further?

OR-ing with 0 is only a cosmetic thing obviously - just to make it clear which
value we expect to be set in bits 1:3. The important part is:
val &= ~PVTMON_CONTROL0_SEL_MASK;

AFAIU selecting any mode other than TEMP_MONITOR will disable monitor access.
AFAIU even switchint to TEST_MODE will prevent access to temp, so I don't see
how we could use PVTMON_CONTROL0_SEL_TEMP_MONITOR_DISABLE. It could be any
value other than 0.

  reply	other threads:[~2017-03-31  7:03 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-18 15:56 [PATCH 1/2] dt-bindings: thermal: add support for Broadcom's Northstar thermal Rafał Miłecki
     [not found] ` <20170318155632.18099-1-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-03-18 15:56   ` [PATCH 2/2] thermal: broadcom: add Northstar thermal driver Rafał Miłecki
2017-03-23 17:14     ` Jon Mason
2017-03-23 22:30 ` [PATCH V2 1/2] dt-bindings: thermal: add support for Broadcom's Northstar thermal Rafał Miłecki
2017-03-23 22:30   ` Rafał Miłecki
2017-03-23 22:30   ` [PATCH V2 2/2] thermal: broadcom: add Northstar thermal driver Rafał Miłecki
2017-03-23 22:30     ` Rafał Miłecki
     [not found]     ` <20170323223045.15786-2-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-03-24 14:35       ` Jon Mason
2017-03-24 14:35         ` Jon Mason
2017-03-31  7:03         ` Rafał Miłecki [this message]
2017-03-31  7:03           ` Rafał Miłecki
     [not found]           ` <d678d252-a95a-58c0-8098-4401c67040a1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-03-31 14:23             ` Jon Mason
2017-03-31 14:23               ` Jon Mason
2017-03-31 14:49               ` Rafał Miłecki
2017-03-31 14:49                 ` Rafał Miłecki
2017-03-31 17:29                 ` Jon Mason
2017-03-31 17:29                   ` Jon Mason
2017-03-31  3:15       ` Eduardo Valentin
2017-03-31  3:15         ` Eduardo Valentin
2017-03-31  7:08         ` Rafał Miłecki
2017-03-31  7:08           ` Rafał Miłecki
2017-03-31  3:17   ` [PATCH V2 1/2] dt-bindings: thermal: add support for Broadcom's Northstar thermal Eduardo Valentin
2017-03-31  3:17     ` Eduardo Valentin
     [not found]   ` <20170323223045.15786-1-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-03-31  7:31     ` [PATCH V3 " Rafał Miłecki
2017-03-31  7:31       ` Rafał Miłecki
     [not found]       ` <20170331073132.21457-1-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-03-31  7:31         ` [PATCH V3 2/2] thermal: broadcom: add Northstar thermal driver Rafał Miłecki
2017-03-31  7:31           ` Rafał Miłecki
2017-03-31 20:11           ` [PATCH V4 1/2] dt-bindings: thermal: add support for Broadcom's Northstar thermal Rafał Miłecki
2017-03-31 20:11             ` Rafał Miłecki
2017-04-01 19:51             ` Eduardo Valentin
2017-04-01 19:51               ` Eduardo Valentin
     [not found]               ` <20170401195136.GD28514-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2017-04-01 21:50                 ` Rafał Miłecki
2017-04-01 21:50                   ` Rafał Miłecki
     [not found]                   ` <6dd907e4-c213-3174-8613-99427e6ea0e9-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-02  4:13                     ` Eduardo Valentin
2017-04-02  4:13                       ` Eduardo Valentin
2017-04-03  3:07                   ` Jon Mason
2017-04-03  3:07                     ` Jon Mason
2017-04-03 14:54                     ` Jon Mason
2017-04-03 14:54                       ` Jon Mason
2017-04-03 14:57                       ` Rafał Miłecki
2017-04-03 14:57                         ` Rafał Miłecki
     [not found]             ` <20170331201124.656-1-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-03-31 20:11               ` [PATCH V4 2/2] thermal: broadcom: add Northstar thermal driver Rafał Miłecki
2017-03-31 20:11                 ` Rafał Miłecki
2017-04-01 19:54                 ` Eduardo Valentin
2017-04-01 19:54                   ` Eduardo Valentin
2017-04-01 20:20                   ` Florian Fainelli
2017-04-01 20:20                     ` Florian Fainelli
2017-04-01 21:41                   ` Rafał Miłecki
2017-04-01 21:41                     ` Rafał Miłecki
2017-04-03 15:48               ` [PATCH V5 1/2] dt-bindings: thermal: add support for Broadcom's Northstar thermal Rafał Miłecki
2017-04-03 15:48                 ` Rafał Miłecki
2017-04-03 15:48                 ` [PATCH V5 2/2] thermal: broadcom: add Northstar thermal driver Rafał Miłecki
2017-04-03 15:48                   ` Rafał Miłecki
     [not found]                   ` <20170403154829.29780-2-zajec5-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-07  4:42                     ` Eduardo Valentin
2017-04-07  4:42                       ` Eduardo Valentin
2017-04-14 12:16                       ` Rafał Miłecki
2017-04-14 12:16                         ` Rafał Miłecki
2017-04-14 15:16                         ` Eduardo Valentin
2017-04-14 15:16                           ` Eduardo Valentin
2017-04-14 15:19                           ` Rafał Miłecki
2017-04-14 15:19                             ` Rafał Miłecki
2017-04-17 20:09                         ` Stefan Wahren
2017-04-17 20:09                           ` Stefan Wahren
2017-04-10 15:00                 ` [PATCH V5 1/2] dt-bindings: thermal: add support for Broadcom's Northstar thermal Rob Herring
2017-04-10 15:00                   ` Rob Herring
2017-03-24 15:19 ` [PATCH " Rob Herring

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=d678d252-a95a-58c0-8098-4401c67040a1@gmail.com \
    --to=zajec5@gmail.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=devicetree@vger.kernel.org \
    --cc=edubezval@gmail.com \
    --cc=eric@anholt.net \
    --cc=f.fainelli@gmail.com \
    --cc=jon.mason@broadcom.com \
    --cc=lee@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=rafal@milecki.pl \
    --cc=rjui@broadcom.com \
    --cc=robh+dt@kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=sbranden@broadcom.com \
    --cc=swarren@wwwdotorg.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.