All of lore.kernel.org
 help / color / mirror / Atom feed
From: sathyanarayanan kuppuswamy  <sathyanarayanan.kuppuswamy@linux.intel.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Andy Shevchenko <andy@infradead.org>,
	Zha Qipeng <qipeng.zha@intel.com>,
	"dvhart@infradead.org" <dvhart@infradead.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Wim Van Sebroeck <wim@iguana.be>,
	Sathyanarayanan Kuppuswamy Natarajan <sathyaosid@gmail.com>,
	David Box <david.e.box@linux.intel.com>,
	Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>,
	Platform Driver <platform-driver-x86@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	linux-watchdog@vger.kernel.org
Subject: Re: [PATCH v5 2/6] platform/x86: intel_pmc_ipc: Add pmc gcr read/write/update api's
Date: Tue, 4 Apr 2017 15:07:32 -0700	[thread overview]
Message-ID: <e8e453f6-8920-7081-7cd5-559856a33f6a@linux.intel.com> (raw)
In-Reply-To: <CAHp75VcNucpd17Z8gsoxW7qDsyR7UkJG4n-82J6CpM3j_3V_Ew@mail.gmail.com>

Hi Andy,


On 04/04/2017 06:53 AM, Andy Shevchenko wrote:
> On Tue, Apr 4, 2017 at 3:24 AM, Kuppuswamy Sathyanarayanan
> <sathyanarayanan.kuppuswamy@linux.intel.com> wrote:
>> This patch adds API's to read/write/update PMC GC registers.
>> PMC dependent devices like iTCO_wdt, Telemetry has requirement
>> to acces GCR registers. These API's can be used for this
>> purpose.
>> +/* GCR reg offsets from gcr base*/
>> +#define PMC_GCR_PMC_CFG_REG            0x08
>> +
>> --- a/drivers/platform/x86/intel_pmc_ipc.c
>> +++ b/drivers/platform/x86/intel_pmc_ipc.c
>> @@ -127,6 +127,7 @@ static struct intel_pmc_ipc_dev {
>>
>>          /* gcr */
>>          resource_size_t gcr_base;
>> +       void __iomem *gcr_mem_base;
>>          int gcr_size;
> Rearrange those lines to make __iomem pointer latter.
Will do it in next version. But the gcr_base resource pointer will be 
removed in next dependent patch. So I don't think it matters in the end.
>
>> +static inline int is_gcr_valid(u32 offset)
> Same comment as previously. It should take a pointer to struct
> intel_pmc_ipc_dev as a parameter.
This needs the driver cleanup. We can do it in refactoring patch.
>
>> +/**
>> + * intel_pmc_gcr_write() - Write PMC GCR register
>> + * @offset:    offset of GCR register from GCR address base
>> + * @data:      register update value
>> + *
>> + * Writes the PMC GCR register of given offset with given
>> + * value
> You have to use proper punctuation in the sentences in full Description section.
Will fix it in next version.
>
>> +/**
>> + * intel_pmc_gcr_update() - Update PMC GCR register bits
>> + * @offset:    offset of GCR register from GCR address base
>> + * @mask:      bit mask for update operation
>> + * @val:       update value
>> + *
>> + * Updates the bits of given GCR register as specified by
>> + * @mask and @val
> Ditto.
>
>> +int intel_pmc_gcr_update(u32 offset, u32 mask, u32 val)
>> +{
>> +       u32 orig, tmp;
> One of them is redundant.
>
> I would go just with
> u32 value;
Will fix it in next version.
>
>> +       writel(tmp, ipcdev.gcr_mem_base + offset);
>> +
>> +       tmp = readl(ipcdev.gcr_mem_base + offset);
>> +
> Redundant.
>
>> +       if ((tmp & mask) != (val & mask)) {
> Why?! It the a case when writel() will fail? Needs to be commented.
Yes, I am checking whether the update is successful or  not. I can add a 
comment there to explain it.
>
>> +               ret = -EIO;
>> +               goto gcr_update_err;
>> +       }
>> +
>> +gcr_update_err:
> The keyword  'unlock' is missed in the label name.
"goto" to this label is only used when there is an error in update 
operation. Do you think we should still rename it to gcr_ipc_unlock ?
>
>> +       mutex_unlock(&ipclock);
>> +       return ret;
>> +}
>> +EXPORT_SYMBOL_GPL(intel_pmc_gcr_update);

-- 
Sathyanarayanan Kuppuswamy
Android kernel developer

WARNING: multiple messages have this Message-ID (diff)
From: sathyanarayanan kuppuswamy <sathyanarayanan.kuppuswamy-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Andy Shevchenko
	<andy.shevchenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Andy Shevchenko <andy-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	Zha Qipeng <qipeng.zha-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	"dvhart-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org"
	<dvhart-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>,
	Wim Van Sebroeck <wim-IQzOog9fTRqzQB+pC5nmwQ@public.gmane.org>,
	Sathyanarayanan Kuppuswamy Natarajan
	<sathyaosid-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	David Box <david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
	Rajneesh Bhardwaj
	<rajneesh.bhardwaj-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Platform Driver
	<platform-driver-x86-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-watchdog-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v5 2/6] platform/x86: intel_pmc_ipc: Add pmc gcr read/write/update api's
Date: Tue, 4 Apr 2017 15:07:32 -0700	[thread overview]
Message-ID: <e8e453f6-8920-7081-7cd5-559856a33f6a@linux.intel.com> (raw)
In-Reply-To: <CAHp75VcNucpd17Z8gsoxW7qDsyR7UkJG4n-82J6CpM3j_3V_Ew-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Hi Andy,


On 04/04/2017 06:53 AM, Andy Shevchenko wrote:
> On Tue, Apr 4, 2017 at 3:24 AM, Kuppuswamy Sathyanarayanan
> <sathyanarayanan.kuppuswamy-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> wrote:
>> This patch adds API's to read/write/update PMC GC registers.
>> PMC dependent devices like iTCO_wdt, Telemetry has requirement
>> to acces GCR registers. These API's can be used for this
>> purpose.
>> +/* GCR reg offsets from gcr base*/
>> +#define PMC_GCR_PMC_CFG_REG            0x08
>> +
>> --- a/drivers/platform/x86/intel_pmc_ipc.c
>> +++ b/drivers/platform/x86/intel_pmc_ipc.c
>> @@ -127,6 +127,7 @@ static struct intel_pmc_ipc_dev {
>>
>>          /* gcr */
>>          resource_size_t gcr_base;
>> +       void __iomem *gcr_mem_base;
>>          int gcr_size;
> Rearrange those lines to make __iomem pointer latter.
Will do it in next version. But the gcr_base resource pointer will be 
removed in next dependent patch. So I don't think it matters in the end.
>
>> +static inline int is_gcr_valid(u32 offset)
> Same comment as previously. It should take a pointer to struct
> intel_pmc_ipc_dev as a parameter.
This needs the driver cleanup. We can do it in refactoring patch.
>
>> +/**
>> + * intel_pmc_gcr_write() - Write PMC GCR register
>> + * @offset:    offset of GCR register from GCR address base
>> + * @data:      register update value
>> + *
>> + * Writes the PMC GCR register of given offset with given
>> + * value
> You have to use proper punctuation in the sentences in full Description section.
Will fix it in next version.
>
>> +/**
>> + * intel_pmc_gcr_update() - Update PMC GCR register bits
>> + * @offset:    offset of GCR register from GCR address base
>> + * @mask:      bit mask for update operation
>> + * @val:       update value
>> + *
>> + * Updates the bits of given GCR register as specified by
>> + * @mask and @val
> Ditto.
>
>> +int intel_pmc_gcr_update(u32 offset, u32 mask, u32 val)
>> +{
>> +       u32 orig, tmp;
> One of them is redundant.
>
> I would go just with
> u32 value;
Will fix it in next version.
>
>> +       writel(tmp, ipcdev.gcr_mem_base + offset);
>> +
>> +       tmp = readl(ipcdev.gcr_mem_base + offset);
>> +
> Redundant.
>
>> +       if ((tmp & mask) != (val & mask)) {
> Why?! It the a case when writel() will fail? Needs to be commented.
Yes, I am checking whether the update is successful or  not. I can add a 
comment there to explain it.
>
>> +               ret = -EIO;
>> +               goto gcr_update_err;
>> +       }
>> +
>> +gcr_update_err:
> The keyword  'unlock' is missed in the label name.
"goto" to this label is only used when there is an error in update 
operation. Do you think we should still rename it to gcr_ipc_unlock ?
>
>> +       mutex_unlock(&ipclock);
>> +       return ret;
>> +}
>> +EXPORT_SYMBOL_GPL(intel_pmc_gcr_update);

-- 
Sathyanarayanan Kuppuswamy
Android kernel developer

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2017-04-04 22:11 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-18  2:06 [PATCH v3 1/5] platform/x86: intel_pmc_ipc: fix gcr offset Kuppuswamy Sathyanarayanan
2017-03-18  2:06 ` Kuppuswamy Sathyanarayanan
2017-03-18  2:06 ` [PATCH v3 2/5] platform/x86: intel_pmc_ipc: Add pmc gcr read/write/update api's Kuppuswamy Sathyanarayanan
2017-03-18  2:06   ` Kuppuswamy Sathyanarayanan
2017-03-31 13:47   ` Rajneesh Bhardwaj
2017-03-31 13:47     ` Rajneesh Bhardwaj
2017-03-18  2:06 ` [PATCH v3 3/5] watchdog: iTCO_wdt: Add PMC specific noreboot update api Kuppuswamy Sathyanarayanan
2017-03-18  2:06   ` Kuppuswamy Sathyanarayanan
2017-03-18  2:06   ` Kuppuswamy Sathyanarayanan
2017-03-28  9:12   ` [v3,3/5] " Guenter Roeck
2017-03-28  9:12     ` Guenter Roeck
2017-03-28  9:12     ` Guenter Roeck
2017-03-18  2:06 ` [PATCH v3 4/5] platform/x86: intel_pmc_ipc: Fix iTCO GCS memory mapping failure Kuppuswamy Sathyanarayanan
2017-03-18  2:06   ` Kuppuswamy Sathyanarayanan
2017-03-31 14:01   ` Rajneesh Bhardwaj
2017-03-31 14:01     ` Rajneesh Bhardwaj
2017-03-31 17:22     ` sathyanarayanan kuppuswamy
2017-03-31 17:22       ` sathyanarayanan kuppuswamy
2017-03-31 17:22       ` sathyanarayanan kuppuswamy
2017-03-18  2:06 ` [PATCH v3 5/5] platform/x86: intel_pmc_ipc: use gcr mem base for S0ix counter read Kuppuswamy Sathyanarayanan
2017-03-18  2:06   ` Kuppuswamy Sathyanarayanan
2017-03-18  2:06   ` Kuppuswamy Sathyanarayanan
2017-03-31 13:54   ` Rajneesh Bhardwaj
2017-03-31 13:54     ` Rajneesh Bhardwaj
2017-03-31 13:54     ` Rajneesh Bhardwaj
2017-03-31 15:08   ` Shanth Murthy
2017-03-31 15:08     ` Shanth Murthy
2017-03-31 13:37 ` [PATCH v3 1/5] platform/x86: intel_pmc_ipc: fix gcr offset Rajneesh Bhardwaj
2017-03-31 13:37   ` Rajneesh Bhardwaj
2017-03-31 23:27   ` [PATCH v4 " Kuppuswamy Sathyanarayanan
2017-03-31 23:27     ` Kuppuswamy Sathyanarayanan
2017-03-31 23:27     ` [PATCH v4 2/5] platform/x86: intel_pmc_ipc: Add pmc gcr read/write/update api's Kuppuswamy Sathyanarayanan
2017-03-31 23:27       ` Kuppuswamy Sathyanarayanan
2017-04-02 13:58       ` Andy Shevchenko
2017-04-02 13:58         ` Andy Shevchenko
2017-04-03  1:51         ` Sathyanarayanan Kuppuswamy Natarajan
2017-04-03  1:51           ` Sathyanarayanan Kuppuswamy Natarajan
2017-04-03  1:51           ` Sathyanarayanan Kuppuswamy Natarajan
2017-04-04 13:23           ` Andy Shevchenko
2017-04-04 13:23             ` Andy Shevchenko
2017-04-04 20:14             ` sathyanarayanan kuppuswamy
2017-04-04 20:14               ` sathyanarayanan kuppuswamy
2017-03-31 23:27     ` [PATCH v4 3/5] watchdog: iTCO_wdt: Add PMC specific noreboot update api Kuppuswamy Sathyanarayanan
2017-03-31 23:27       ` Kuppuswamy Sathyanarayanan
2017-03-31 23:27       ` Kuppuswamy Sathyanarayanan
2017-04-02 14:04       ` Andy Shevchenko
2017-04-02 14:04         ` Andy Shevchenko
2017-04-03  1:55         ` Sathyanarayanan Kuppuswamy Natarajan
2017-04-03  1:55           ` Sathyanarayanan Kuppuswamy Natarajan
2017-03-31 23:27     ` [PATCH v4 4/5] platform/x86: intel_pmc_ipc: Fix iTCO GCS memory mapping failure Kuppuswamy Sathyanarayanan
2017-03-31 23:27       ` Kuppuswamy Sathyanarayanan
2017-04-02 14:10       ` Andy Shevchenko
2017-04-02 14:10         ` Andy Shevchenko
2017-04-03  1:53         ` Sathyanarayanan Kuppuswamy Natarajan
2017-04-03  1:53           ` Sathyanarayanan Kuppuswamy Natarajan
2017-04-03  1:53           ` Sathyanarayanan Kuppuswamy Natarajan
2017-03-31 23:27     ` [PATCH v4 5/5] platform/x86: intel_pmc_ipc: use gcr mem base for S0ix counter read Kuppuswamy Sathyanarayanan
2017-03-31 23:27       ` Kuppuswamy Sathyanarayanan
2017-04-02 14:11     ` [PATCH v4 1/5] platform/x86: intel_pmc_ipc: fix gcr offset Andy Shevchenko
2017-04-02 14:11       ` Andy Shevchenko
2017-04-02 14:11       ` Andy Shevchenko
2017-04-03  1:51       ` Sathyanarayanan Kuppuswamy Natarajan
2017-04-03  1:51         ` Sathyanarayanan Kuppuswamy Natarajan
2017-04-03  1:51         ` Sathyanarayanan Kuppuswamy Natarajan
2017-04-04  0:24         ` [PATCH v5 1/6] " Kuppuswamy Sathyanarayanan
2017-04-04  0:24           ` Kuppuswamy Sathyanarayanan
2017-04-04  0:24           ` Kuppuswamy Sathyanarayanan
2017-04-04  0:24           ` [PATCH v5 2/6] platform/x86: intel_pmc_ipc: Add pmc gcr read/write/update api's Kuppuswamy Sathyanarayanan
2017-04-04  0:24             ` Kuppuswamy Sathyanarayanan
2017-04-04 13:53             ` Andy Shevchenko
2017-04-04 13:53               ` Andy Shevchenko
2017-04-04 22:07               ` sathyanarayanan kuppuswamy [this message]
2017-04-04 22:07                 ` sathyanarayanan kuppuswamy
2017-04-04 22:07                 ` sathyanarayanan kuppuswamy
2017-04-04  0:24           ` [PATCH v5 3/6] watchdog: iTCO_wdt: Add PMC specific noreboot update api Kuppuswamy Sathyanarayanan
2017-04-04  0:24             ` Kuppuswamy Sathyanarayanan
2017-04-04 13:48             ` Andy Shevchenko
2017-04-04 13:48               ` Andy Shevchenko
2017-04-04  0:24           ` [PATCH v5 4/6] watchdog: iTCO_wdt: cleanup set/unset no_reboot calls Kuppuswamy Sathyanarayanan
2017-04-04  0:24             ` Kuppuswamy Sathyanarayanan
2017-04-04  3:22             ` Guenter Roeck
2017-04-04  3:22               ` Guenter Roeck
2017-04-04  3:22               ` Guenter Roeck
2017-04-04 13:49             ` Andy Shevchenko
2017-04-04 13:49               ` Andy Shevchenko
2017-04-04  0:24           ` [PATCH v5 5/6] platform/x86: intel_pmc_ipc: Fix iTCO_wdt GCS memory mapping failure Kuppuswamy Sathyanarayanan
2017-04-04  0:24             ` Kuppuswamy Sathyanarayanan
2017-04-04  0:24             ` Kuppuswamy Sathyanarayanan
2017-04-04 13:53             ` Andy Shevchenko
2017-04-04 13:53               ` Andy Shevchenko
2017-04-04  0:24           ` [PATCH v5 6/6] platform/x86: intel_pmc_ipc: use gcr mem base for S0ix counter read Kuppuswamy Sathyanarayanan
2017-04-04  0:24             ` Kuppuswamy Sathyanarayanan
2017-04-04 13:51             ` Andy Shevchenko
2017-04-04 13:51               ` Andy Shevchenko
2017-04-04 22:15               ` sathyanarayanan kuppuswamy
2017-04-04 22:15                 ` sathyanarayanan kuppuswamy
2017-04-04 22:15                 ` sathyanarayanan kuppuswamy
2017-04-04 13:25         ` [PATCH v4 1/5] platform/x86: intel_pmc_ipc: fix gcr offset Andy Shevchenko
2017-04-04 13:25           ` Andy Shevchenko
2017-04-04 21:32           ` sathyanarayanan kuppuswamy
2017-04-04 21:32             ` sathyanarayanan kuppuswamy
2017-04-05 22:54             ` [PATCH v6 1/6] " Kuppuswamy Sathyanarayanan
2017-04-05 22:54               ` Kuppuswamy Sathyanarayanan
2017-04-05 22:54               ` Kuppuswamy Sathyanarayanan
2017-04-05 22:54               ` [PATCH v6 2/6] platform/x86: intel_pmc_ipc: Add pmc gcr read/write/update api's Kuppuswamy Sathyanarayanan
2017-04-05 22:54                 ` Kuppuswamy Sathyanarayanan
2017-04-05 22:54               ` [PATCH v6 3/6] watchdog: iTCO_wdt: cleanup set/unset no_reboot_bit functions Kuppuswamy Sathyanarayanan
2017-04-05 22:54                 ` Kuppuswamy Sathyanarayanan
2017-04-05 22:54               ` [PATCH v6 4/6] watchdog: iTCO_wdt: Add PMC specific noreboot update api Kuppuswamy Sathyanarayanan
2017-04-05 22:54                 ` Kuppuswamy Sathyanarayanan
2017-04-06 11:42                 ` Guenter Roeck
2017-04-06 11:42                   ` Guenter Roeck
2017-04-05 22:54               ` [PATCH v6 5/6] platform/x86: intel_pmc_ipc: Fix iTCO_wdt GCS memory mapping failure Kuppuswamy Sathyanarayanan
2017-04-05 22:54                 ` Kuppuswamy Sathyanarayanan
2017-04-06 21:37                 ` Andy Shevchenko
2017-04-06 21:37                   ` Andy Shevchenko
2017-04-05 22:54               ` [PATCH v6 6/6] platform/x86: intel_pmc_ipc: use gcr mem base for S0ix counter read Kuppuswamy Sathyanarayanan
2017-04-05 22:54                 ` Kuppuswamy Sathyanarayanan
2017-04-06 15:16               ` [PATCH v6 1/6] platform/x86: intel_pmc_ipc: fix gcr offset Rajneesh Bhardwaj
2017-04-06 15:16                 ` Rajneesh Bhardwaj

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=e8e453f6-8920-7081-7cd5-559856a33f6a@linux.intel.com \
    --to=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=andy@infradead.org \
    --cc=david.e.box@linux.intel.com \
    --cc=dvhart@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=qipeng.zha@intel.com \
    --cc=rajneesh.bhardwaj@intel.com \
    --cc=sathyaosid@gmail.com \
    --cc=wim@iguana.be \
    /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.