Linux Power Management development
 help / color / mirror / Atom feed
From: Julia Lawall <julia.lawall@lip6.fr>
To: Liam Breck <liam@networkimprov.net>
Cc: "Sebastian Reichel" <sebastian.reichel@collabora.co.uk>,
	"Gilles Muller" <Gilles.Muller@lip6.fr>,
	"Nicolas Palix" <nicolas.palix@imag.fr>,
	"Michal Marek" <mmarek@suse.com>,
	cocci@systeme.lip6.fr, "Andrew F. Davis" <afd@ti.com>,
	"Pali Rohár" <pali.rohar@gmail.com>,
	"Linux PM mailing list" <linux-pm@vger.kernel.org>
Subject: Re: [PATCH v3 0/5] bq27xxx_battery data memory update
Date: Thu, 31 Aug 2017 13:33:25 +0200 (CEST)	[thread overview]
Message-ID: <alpine.DEB.2.20.1708311330570.3243@hadrien> (raw)
In-Reply-To: <CAKvHMgSkuzi_BuicT7edYrM8Q87pnPJcgHRMDJEB21wdNKf8ow@mail.gmail.com>



On Thu, 31 Aug 2017, Liam Breck wrote:

> On Thu, Aug 31, 2017 at 2:54 AM, Julia Lawall <julia.lawall@lip6.fr> wrote:
> >
> >
> > On Tue, 29 Aug 2017, Liam Breck wrote:
> >
> >> Coccinelle folks,
> >>
> >> On Tue, Aug 29, 2017 at 5:29 PM, Sebastian Reichel
> >> <sebastian.reichel@collabora.co.uk> wrote:
> >> > Hi,
> >> >
> >> > On Tue, Aug 29, 2017 at 04:07:12PM -0700, Liam Breck wrote:
> >> >> I don't see a Julia in CC list...
> >> >
> >> > <_< let's try that again.
> >> >
> >> >> On Tue, Aug 29, 2017 at 2:22 PM, Sebastian Reichel
> >> >> <sebastian.reichel@collabora.co.uk> wrote:
> >> >> > [adding Julia to Cc for Coccinelle question]
> >> >> >
> >> >> > Hi,
> >> >> >
> >> >> > On Tue, Aug 29, 2017 at 10:31:57AM -0500, Andrew F. Davis wrote:
> >> >> >> On 08/29/2017 05:54 AM, Sebastian Reichel wrote:
> >> >> >> > On Wed, Aug 23, 2017 at 08:36:12PM -0700, Liam Breck wrote:
> >> >> >> >> Overview:
> >> >> >> >> * Reorganizes chip data definitions
> >> >> >> >> * Enables features landed in these patches:
> >> >> >> >>   dt-bindings: power: supply: bq27xxx: Add monitored-battery documentation
> >> >> >> >>   power: supply: bq27xxx: Add chip data memory read/write support
> >> >> >> >>   power: supply: bq27xxx: Add power_supply_battery_info support
> >> >> >> >> * Supports the following chips (only BQ27425 is active)
> >> >> >> >>   BQ27500, 545, 425, 421, 441, 621
> >> >> >> >>
> >> >> >> >> Changes in v3:
> >> >> >> >> * BQ27425 tested; workaround minor chip bug
> >> >> >> >> * Dropped driver_version
> >> >> >> >> * Fixed dbg_dupes logic for .props & .dm_regs
> >> >> >> >> * Dropped two props array dupes
> >> >> >> >>
> >> >> >> >> Changes in v2:
> >> >> >> >> * Added di->opts flags for remaining chip features
> >> >> >> >> * Commented out untested bq27xxx_dm_regs parameters
> >> >> >> >> * Changed dbg_dupes to run only once
> >> >> >> >>
> >> >> >> >> Notes on v1:
> >> >> >> >> * Not fully tested (hence RFC tag)
> >> >> >> >
> >> >> >> > Thanks, full series queued.
> >> >> >> >
> >> >> >> > -- Sebastian
> >> >> >>
> >> >> >> Anyway, I've not got the time to fight these changes anymore, but at
> >> >> >> very least could you drop 4/5, it's static analysis code made into a
> >> >> >> runtime check built into a kernel driver, if not at least add my
> >> >> >> nacked-by. :)
> >> >> >
> >> >> > Since it's not critical at all and nobody depends on it, I dropped 4/5
> >> >> > for now. I agree, that checking it at runtime is not nice. On the other
> >> >> > hand I do think a duplication check makes sense. Doing a static
> >> >> > check should be possible, but I have no idea how to implement this
> >> >> > (without much effort). I suspect Coccinelle can do it, so I added
> >> >> > Julia.
> >> >> >
> >> >> > For reference this is the runtime check:
> >> >> > https://patchwork.kernel.org/patch/9918953/
> >>
> >> The data structures being checked start here:
> >> https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git/tree/drivers/power/supply/bq27xxx_battery.c?h=for-next#n138
> >>
> >> And are aggregated here:
> >> https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git/tree/drivers/power/supply/bq27xxx_battery.c?h=for-next#n743
> >
> > I worked a bit on this, but unfortunately there is a major parsing
> > problem, and most of the definitions are ignored.  Specifically, the
> > definitions of the regs variables are interspersed with eg:
> >
> > #define bq27510g1_regs bq27500_regs
>
> You can transform the macros with sed to either of:
>
> static u8 *bq27510g1_regs = 0 // skip comparison if x == 0
>
> static u8 bq27510g1_regs[BQ27XXX_REG_MAX] = { 0xFF } // skip
> comparison if x[0] == 0xff
>
> Does that help?

Not quite, because it's really a list of variable declarations, like

int a, b, c, d;

The following could be fine:

*bq27510g1_regs = 0,

julia



>
> > I'm not sure whether this would be convenient to fix, since parsing is
> > rather delicate.  Coccinelle doesn't run cpp first.  It tries to parse
> > macros definitions so that their code can be transformed as needed t the
> > place of the definition.
>

  reply	other threads:[~2017-08-31 11:33 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-24  3:36 [PATCH v3 0/5] bq27xxx_battery data memory update Liam Breck
2017-08-24  3:36 ` [PATCH v3 1/5] power: supply: bq27xxx: Create single chip data table Liam Breck
2017-08-24  3:36 ` [PATCH v3 2/5] power: supply: bq27xxx: Add chip IDs for previously shadowed chips Liam Breck
2017-08-24  3:36 ` [PATCH v3 3/5] power: supply: bq27xxx: Enable data memory update for certain chips Liam Breck
2017-08-24  3:36 ` [PATCH v3 4/5] power: supply: bq27xxx: Flag identical chip data when in debug mode Liam Breck
2017-08-24  3:36 ` [PATCH v3 5/5] power: supply: bq27xxx: Remove duplicate chip data arrays Liam Breck
2017-08-29 10:54 ` [PATCH v3 0/5] bq27xxx_battery data memory update Sebastian Reichel
2017-08-29 15:31   ` Andrew F. Davis
2017-08-29 21:22     ` Sebastian Reichel
2017-08-29 23:07       ` Liam Breck
2017-08-30  0:29         ` Sebastian Reichel
2017-08-30  1:14           ` Liam Breck
2017-08-30  6:01             ` Julia Lawall
2017-08-31  9:54             ` Julia Lawall
2017-08-31 11:01               ` Liam Breck
2017-08-31 11:33                 ` Julia Lawall [this message]
2017-08-31 11:43                   ` Liam Breck
2017-09-05 19:15                     ` Liam Breck
2017-09-05 20:14                       ` Julia Lawall
2017-09-18  0:45                         ` Liam Breck
2017-09-18  5:33                           ` Julia Lawall
2017-09-19 21:47                             ` Liam Breck
2017-09-19 22:00                               ` Julia Lawall
2017-09-19 22:36                                 ` Liam Breck
2017-09-20  9:14                                   ` Julia Lawall
2017-09-20  9:41                                     ` Liam Breck
2017-09-20  9:45                                       ` Julia Lawall
2017-09-20  9:57                                         ` Liam Breck
2017-09-27 10:02                                       ` Julia Lawall
2017-09-27 12:02                                         ` Liam Breck
2017-09-27 12:16                                           ` Julia Lawall
2017-09-27 12:46                                             ` Liam Breck
2017-10-01 11:59                                               ` Julia Lawall
2017-09-27 13:12                                         ` Liam Breck
2017-09-27 13:25                                           ` Julia Lawall
2017-09-27 13:25                                           ` Julia Lawall
2017-08-29 22:29     ` Liam Breck

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=alpine.DEB.2.20.1708311330570.3243@hadrien \
    --to=julia.lawall@lip6.fr \
    --cc=Gilles.Muller@lip6.fr \
    --cc=afd@ti.com \
    --cc=cocci@systeme.lip6.fr \
    --cc=liam@networkimprov.net \
    --cc=linux-pm@vger.kernel.org \
    --cc=mmarek@suse.com \
    --cc=nicolas.palix@imag.fr \
    --cc=pali.rohar@gmail.com \
    --cc=sebastian.reichel@collabora.co.uk \
    /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