Re: [PATCH v2 3/4] watchdog: iTCO_wdt: Fix PMC GCR memory mapping failure

From: sathyanarayanan kuppuswamy
Date: Fri Mar 17 2017 - 14:54:46 EST


Hi Andy,


On 03/17/2017 11:38 AM, Andy Shevchenko wrote:
On Fri, Mar 17, 2017 at 7:37 PM, sathyanarayanan kuppuswamy
<sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> wrote:
On 03/17/2017 07:25 AM, Andy Shevchenko wrote:
On Fri, Mar 17, 2017 at 3:40 PM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
On 03/17/2017 04:43 AM, Rajneesh Bhardwaj wrote:
On Thu, Mar 16, 2017 at 05:41:35PM -0700, Kuppuswamy Sathyanarayanan
wrote:
I already asked once [1] to fix up the mess we have in PDx86 regarding SCU
IPC.
(PMC IPC how it's called is actually just a [main] part of SCU in newer
SoCs).

Rajneesh, Kuppuswamy,
please pay attention on the below.

We have two libraries doing almost the same (basics) one for old
platforms, one for new.

My vision what should be done before we go further is:
1. Split out common part from intel_scu_ipc and intel_pmc_ipc to some
library.
I think we should create MFD driver for PMC and remove the redundant
resource and platform device creation codes.
Yes, there is common code in IPC implementation between scu_ipc and pmc_ipc
code. This needs be modularized.

I can work on it and send a RFC patch for this cleanup. But it could take
more time for merging this cleanup patch.
So I think, in the mean time, we should merge this watchdog fix first to
remove iTCO watchdog device probe issue.
I have heard already such excuses. Let's consider this as a "Last
Chinese Warning".

So, we consider reviewing applying *already floating around* patches
in exchange to looking forward for clean up next.
Do we have a deal?
Deal.

Before you are going to implement anything in the code, please, share
a document (architectural point of view) how you would see things
should be done.
Also consider to address PMC (Atom drivers) and P-Unit drivers which
are related to SCU / IPC to have some structure.
Will send out the design document summarizing the issues we want to solve and a proposed design model.

2. Move headers to linux/platform_data/x86 for sharing with drivers
that are supporting non-Intel / not-newest-Intel hardware.
3. Fix the mess inside the intel_pmc_ipc code (like use devm_()
helpers where it makes sense, no use of global variables, etc)
Agreed.

On top of that
4. Fix up Whiskey Cove PMIC code (See Hans' message [2] for the details)

[1] Oops, it happened on internal mailing list Jan 27. And mentioned
publicly after in a review on some patch here.
[2] http://lkml.iu.edu/hypermail/linux/kernel/1702.3/01408.html

--
Sathyanarayanan Kuppuswamy
Android kernel developer