All of lore.kernel.org
 help / color / mirror / Atom feed
From: sathyanarayanan kuppuswamy  <sathyanarayanan.kuppuswamy@linux.intel.com>
To: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Cc: andy@infradead.org, qipeng.zha@intel.com, dvhart@infradead.org,
	david.e.box@linux.intel.com, platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org, shanth.murthy@intel.com
Subject: Re: [PATCH v2 2/4] platform/x86: intel_pmc_ipc: Add pmc gcr read/write api's
Date: Fri, 17 Mar 2017 10:11:59 -0700	[thread overview]
Message-ID: <878415e5-7731-1dd8-8609-6d59daef5e15@linux.intel.com> (raw)
In-Reply-To: <20170317112633.GD24582@rajaneesh-OptiPlex-9010>

Hi,


On 03/17/2017 04:26 AM, Rajneesh Bhardwaj wrote:
> On Thu, Mar 16, 2017 at 05:41:34PM -0700, Kuppuswamy Sathyanarayanan wrote:
>> This patch adds API's to read/write 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.
>>
>> Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
>> ---
>>   arch/x86/include/asm/intel_pmc_ipc.h | 16 ++++++++++++++++
>>   drivers/platform/x86/intel_pmc_ipc.c | 14 ++++++++++++++
>>   2 files changed, 30 insertions(+)
>>
>> diff --git a/arch/x86/include/asm/intel_pmc_ipc.h b/arch/x86/include/asm/intel_pmc_ipc.h
>> index 4291b6a..017429d 100644
>> --- a/arch/x86/include/asm/intel_pmc_ipc.h
>> +++ b/arch/x86/include/asm/intel_pmc_ipc.h
>> @@ -23,6 +23,10 @@
>>   #define IPC_ERR_EMSECURITY		6
>>   #define IPC_ERR_UNSIGNEDKERNEL		7
>>   
>> +/* GCR reg offsets from gcr base*/
>> +#define PMC_GCR_PRSTS_REG		0x00
> remove.
Will remove it in next series.
>
>> +#define PMC_GCR_PMC_CFG_REG		0x08
>> +
>>   #if IS_ENABLED(CONFIG_INTEL_PMC_IPC)
>>   
>>   int intel_pmc_ipc_simple_command(int cmd, int sub);
>> @@ -31,6 +35,8 @@ int intel_pmc_ipc_raw_cmd(u32 cmd, u32 sub, u8 *in, u32 inlen,
>>   int intel_pmc_ipc_command(u32 cmd, u32 sub, u8 *in, u32 inlen,
>>   		u32 *out, u32 outlen);
>>   int intel_pmc_s0ix_counter_read(u64 *data);
>> +u32 intel_pmc_gcr_read(u32 offset);
> consider changing the signature to read data as out param and use return
> value for better error handling since exported API can be called from
> anywhere in the kernel.
I can add check to make sure offset is within GCR range.
>
>> +void intel_pmc_gcr_write(u32 offset, u32 data);
> ditto.
Same as above.
>
>>   
>>   #else
>>   
>> @@ -56,6 +62,16 @@ static inline int intel_pmc_s0ix_counter_read(u64 *data)
>>   	return -EINVAL;
>>   }
>>   
>> +static inline u32 intel_pmc_gcr_read(u32 offset)
>> +{
>> +	return -EINVAL;
>> +}
>> +
> samew as above.
Same as above.
>
>> +static inline void intel_pmc_gcr_write(u32 offset, u32 data)
>> +{
>> +	return;
>> +}
>> +
> ditto.
Same as above.
>
>>   #endif /*CONFIG_INTEL_PMC_IPC*/
>>   
>>   #endif
>> diff --git a/drivers/platform/x86/intel_pmc_ipc.c b/drivers/platform/x86/intel_pmc_ipc.c
>> index 0a33592..12018f3 100644
>> --- 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;
>>   	bool has_gcr_regs;
>>   
>> @@ -199,6 +200,18 @@ static inline u64 gcr_data_readq(u32 offset)
>>   	return readq(ipcdev.ipc_base + offset);
>>   }
>>   
>> +u32 intel_pmc_gcr_read(u32 offset)
>> +{
>> +	return readl(ipcdev.gcr_mem_base + offset);
>> +}
> what happens when this is called with a wrong offset on IPC enabled
> platforms?
>
>> +EXPORT_SYMBOL_GPL(intel_pmc_gcr_read);
>> +
>> +void intel_pmc_gcr_write(u32 offset, u32 data)
>> +{
>> +	writel(data, ipcdev.gcr_mem_base + offset);
>> +}
> same as above.
>
>> +EXPORT_SYMBOL_GPL(intel_pmc_gcr_write);
>> +
>>   static int intel_pmc_ipc_check_status(void)
>>   {
>>   	int status;
>> @@ -747,6 +760,7 @@ static int ipc_plat_get_res(struct platform_device *pdev)
>>   	ipcdev.ipc_base = addr;
>>   
>>   	ipcdev.gcr_base = res->start + PLAT_RESOURCE_GCR_OFFSET;
>> +	ipcdev.gcr_mem_base = addr + PLAT_RESOURCE_GCR_OFFSET;
>>   	ipcdev.gcr_size = PLAT_RESOURCE_GCR_SIZE;
>>   	dev_info(&pdev->dev, "ipc res: %pR\n", res);
>>   
>> -- 
>> 2.7.4
>>

-- 
Sathyanarayanan Kuppuswamy
Android kernel developer

  reply	other threads:[~2017-03-17 17:36 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-16  3:32 [PATCH v1 1/1] platform/x86: intel_pmc_ipc: fix io mem mapping size Kuppuswamy Sathyanarayanan
2017-03-16  3:32 ` Kuppuswamy Sathyanarayanan
2017-03-16 14:52 ` Rajneesh Bhardwaj
2017-03-16 14:52   ` Rajneesh Bhardwaj
2017-03-16 16:05   ` Andy Shevchenko
2017-03-16 16:05     ` Andy Shevchenko
2017-03-16 18:13     ` Rajneesh Bhardwaj
2017-03-16 18:13       ` Rajneesh Bhardwaj
2017-03-16 20:12       ` Andy Shevchenko
2017-03-16 20:12         ` Andy Shevchenko
2017-03-16 21:15         ` sathyanarayanan kuppuswamy
2017-03-16 21:15           ` sathyanarayanan kuppuswamy
2017-03-16 18:50   ` sathyanarayanan kuppuswamy
2017-03-16 18:50     ` sathyanarayanan kuppuswamy
2017-03-16 19:20     ` Rajneesh Bhardwaj
2017-03-16 19:20       ` Rajneesh Bhardwaj
2017-03-16 21:05       ` sathyanarayanan kuppuswamy
2017-03-16 21:05         ` sathyanarayanan kuppuswamy
2017-03-17  0:41       ` [PATCH v2 1/4] platform/x86: intel_pmc_ipc: fix gcr offset Kuppuswamy Sathyanarayanan
2017-03-17  0:41         ` Kuppuswamy Sathyanarayanan
2017-03-17  0:41         ` [PATCH v2 2/4] platform/x86: intel_pmc_ipc: Add pmc gcr read/write api's Kuppuswamy Sathyanarayanan
2017-03-17  0:41           ` Kuppuswamy Sathyanarayanan
2017-03-17 11:26           ` Rajneesh Bhardwaj
2017-03-17 11:26             ` Rajneesh Bhardwaj
2017-03-17 17:11             ` sathyanarayanan kuppuswamy [this message]
2017-03-17 17:11               ` sathyanarayanan kuppuswamy
2017-03-17  0:41         ` [PATCH v2 3/4] watchdog: iTCO_wdt: Fix PMC GCR memory mapping failure Kuppuswamy Sathyanarayanan
2017-03-17  0:41           ` Kuppuswamy Sathyanarayanan
2017-03-17 11:43           ` Rajneesh Bhardwaj
2017-03-17 11:43             ` Rajneesh Bhardwaj
2017-03-17 11:43             ` Rajneesh Bhardwaj
2017-03-17 13:40             ` Guenter Roeck
2017-03-17 13:40               ` Guenter Roeck
2017-03-17 13:40               ` Guenter Roeck
2017-03-17 14:05               ` Rajneesh Bhardwaj
2017-03-17 14:05                 ` Rajneesh Bhardwaj
2017-03-17 14:05                 ` Rajneesh Bhardwaj
2017-03-17 14:25               ` Andy Shevchenko
2017-03-17 14:25                 ` Andy Shevchenko
2017-03-17 14:25                 ` Andy Shevchenko
2017-03-17 17:37                 ` sathyanarayanan kuppuswamy
2017-03-17 17:37                   ` sathyanarayanan kuppuswamy
2017-03-17 18:38                   ` Andy Shevchenko
2017-03-17 18:38                     ` Andy Shevchenko
2017-03-17 18:38                     ` Andy Shevchenko
2017-03-17 18:50                     ` sathyanarayanan kuppuswamy
2017-03-17 18:50                       ` sathyanarayanan kuppuswamy
2017-03-17 17:24               ` sathyanarayanan kuppuswamy
2017-03-17 17:24                 ` sathyanarayanan kuppuswamy
2017-03-17 17:50                 ` Guenter Roeck
2017-03-17 17:50                   ` Guenter Roeck
2017-03-17 18:39                   ` sathyanarayanan kuppuswamy
2017-03-17 18:39                     ` sathyanarayanan kuppuswamy
2017-03-17 17:15             ` sathyanarayanan kuppuswamy
2017-03-17 17:15               ` sathyanarayanan kuppuswamy
2017-03-17 17:15               ` sathyanarayanan kuppuswamy
2017-03-20  2:52           ` kbuild test robot
2017-03-20  2:52             ` kbuild test robot
2017-03-17  0:41         ` [PATCH v2 4/4] platform/x86: intel_pmc_ipc: remove iTCO GCR mem resource Kuppuswamy Sathyanarayanan
2017-03-17  0:41           ` Kuppuswamy Sathyanarayanan
2017-03-17 11:47           ` Rajneesh Bhardwaj
2017-03-17 11:47             ` Rajneesh Bhardwaj
2017-03-17 11:13         ` [PATCH v2 1/4] platform/x86: intel_pmc_ipc: fix gcr offset Rajneesh Bhardwaj
2017-03-17 11:13           ` Rajneesh Bhardwaj
2017-03-17 17:06           ` sathyanarayanan kuppuswamy
2017-03-17 17:06             ` sathyanarayanan kuppuswamy

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=878415e5-7731-1dd8-8609-6d59daef5e15@linux.intel.com \
    --to=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=andy@infradead.org \
    --cc=david.e.box@linux.intel.com \
    --cc=dvhart@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=qipeng.zha@intel.com \
    --cc=rajneesh.bhardwaj@intel.com \
    --cc=shanth.murthy@intel.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 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.