From: Roger Quadros <rogerq@ti.com>
To: rabel@cit-ec.uni-bielefeld.de, linux-omap@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, tony@atomide.com, linux@arm.linux.org.uk
Subject: Re: [PATCH 8/8 v2] ARM OMAP2+ GPMC: fix WAITMONITORINGTIME divider bug
Date: Wed, 25 Feb 2015 19:17:57 +0200 [thread overview]
Message-ID: <54EE03C5.2090306@ti.com> (raw)
In-Reply-To: <54EE0138.7020300@cit-ec.uni-bielefeld.de>
Robert,
On 25/02/15 19:07, Robert Abel wrote:
> Hi Roger,
>
> On 25 Feb 2015 17:58, Roger Quadros wrote:
>>> static unsigned int gpmc_ticks_to_ps(unsigned int ticks)
>>> @@ -346,16 +395,22 @@ static void gpmc_cs_bool_timings(int cs, const struct gpmc_bool_timings *p)
>>> * @st_bit Start Bit
>>> * @end_bit End Bit. Must be >= @st_bit.
>>> * @name DTS node name, w/o "gpmc,"
>>> + * @cd Clock Domain of timing parameter.
>>> + * @shift Parameter value left shifts @shift, which is then printed instead of value.
>>> * @raw Raw Format Option.
>>> * raw format: gpmc,name = <value>
>>> * tick format: gpmc,name = <value> /‍* x ticks *‍/
>>> * @noval Parameter values equal to 0 are not printed.
>>> - * @shift Parameter value left shifts @shift, which is then printed instead of value.
>>> *
>>> */
>>> -static int get_gpmc_timing_reg(int cs, int reg, int st_bit, int end_bit,
>>> - bool raw, bool noval, int shift,
>>> - const char *name)
>>> +static int get_gpmc_timing_reg(
>>> + /* timing specifiers */
>>> + int cs, int reg, int st_bit, int end_bit,
>>> + const char *name, const enum gpmc_clk_domain cd,
>>> + /* value transform */
>>> + int shift,
>>> + /* format specifiers */
>>> + bool raw, bool noval)
>> now that you are rearranging the parameters, "name" parameter should probably be
>> at the same position (or last) in get_gpmc_timing_reg() and set_gpmc_timing_reg()?
>> Also clock domain (cd) position could be matched if possible.
> I rearranged them primarily, because I wanted to group the specifiers according to function, because I found it unnatural to add clock domain to the end, when it's "more important" than the format specifiers.
> set_gpmc_timing_reg are fine in that regard as it doesn't have format specifiers.
OK.
>>> +/**
>>> + * set_gpmc_timing_reg - set a single timing parameter for Chip Select Region.
>>> + * @cs Chip Select Region.
>>> + * @reg GPMC_CS_CONFIGn register offset.
>>> + * @st_bit Start Bit
>>> + * @end_bit End Bit. Must be >= @st_bit.
>>> + * @time Timing parameter in ns.
>>> + * @cd Timing parameter clock domain.
>>> + * @name Timing parameter name.
>>> + * @note Caller is expected to have initialized CONFIG1 GPMCFCLKDIVIDER
>> @note is not a parameter.
> Well no, note's a note. This is a doxygen-style comment, so tools should put a note in the created documentation. Doxygen will put a box with yellow background, for instance.
Oh ok.
>>> - pr_err("%s: GPMC error! CS%d: %s: %d ns, %d ticks > %d\n",
>>> + pr_err("%s: GPMC CS%d: %s %d ns, %d ticks > %d ticks\n",
>> any reason for removing the "error!" string?
> It's already pr_err, the "error!" in-between "GPMC CS%d" made it hard to read and there's a WARN after that statement in all cases, because a child _must_ fail if a timing parameter constraint is broken.
How will the user know by looking at the kernel log that it was really an error?
We don't fail probe if set_gpmc_timing_reg() fails so I feel it is necessary to
clearly show an Error message.
You can probably reword it like "%s: Error!! GPMC CS %d..."
cheers,
-roger
WARNING: multiple messages have this Message-ID (diff)
From: Roger Quadros <rogerq@ti.com>
To: <rabel@cit-ec.uni-bielefeld.de>, <linux-omap@vger.kernel.org>
Cc: <linux-kernel@vger.kernel.org>, <tony@atomide.com>,
<linux@arm.linux.org.uk>
Subject: Re: [PATCH 8/8 v2] ARM OMAP2+ GPMC: fix WAITMONITORINGTIME divider bug
Date: Wed, 25 Feb 2015 19:17:57 +0200 [thread overview]
Message-ID: <54EE03C5.2090306@ti.com> (raw)
In-Reply-To: <54EE0138.7020300@cit-ec.uni-bielefeld.de>
Robert,
On 25/02/15 19:07, Robert Abel wrote:
> Hi Roger,
>
> On 25 Feb 2015 17:58, Roger Quadros wrote:
>>> static unsigned int gpmc_ticks_to_ps(unsigned int ticks)
>>> @@ -346,16 +395,22 @@ static void gpmc_cs_bool_timings(int cs, const struct gpmc_bool_timings *p)
>>> * @st_bit Start Bit
>>> * @end_bit End Bit. Must be >= @st_bit.
>>> * @name DTS node name, w/o "gpmc,"
>>> + * @cd Clock Domain of timing parameter.
>>> + * @shift Parameter value left shifts @shift, which is then printed instead of value.
>>> * @raw Raw Format Option.
>>> * raw format: gpmc,name = <value>
>>> * tick format: gpmc,name = <value> /‍* x ticks *‍/
>>> * @noval Parameter values equal to 0 are not printed.
>>> - * @shift Parameter value left shifts @shift, which is then printed instead of value.
>>> *
>>> */
>>> -static int get_gpmc_timing_reg(int cs, int reg, int st_bit, int end_bit,
>>> - bool raw, bool noval, int shift,
>>> - const char *name)
>>> +static int get_gpmc_timing_reg(
>>> + /* timing specifiers */
>>> + int cs, int reg, int st_bit, int end_bit,
>>> + const char *name, const enum gpmc_clk_domain cd,
>>> + /* value transform */
>>> + int shift,
>>> + /* format specifiers */
>>> + bool raw, bool noval)
>> now that you are rearranging the parameters, "name" parameter should probably be
>> at the same position (or last) in get_gpmc_timing_reg() and set_gpmc_timing_reg()?
>> Also clock domain (cd) position could be matched if possible.
> I rearranged them primarily, because I wanted to group the specifiers according to function, because I found it unnatural to add clock domain to the end, when it's "more important" than the format specifiers.
> set_gpmc_timing_reg are fine in that regard as it doesn't have format specifiers.
OK.
>>> +/**
>>> + * set_gpmc_timing_reg - set a single timing parameter for Chip Select Region.
>>> + * @cs Chip Select Region.
>>> + * @reg GPMC_CS_CONFIGn register offset.
>>> + * @st_bit Start Bit
>>> + * @end_bit End Bit. Must be >= @st_bit.
>>> + * @time Timing parameter in ns.
>>> + * @cd Timing parameter clock domain.
>>> + * @name Timing parameter name.
>>> + * @note Caller is expected to have initialized CONFIG1 GPMCFCLKDIVIDER
>> @note is not a parameter.
> Well no, note's a note. This is a doxygen-style comment, so tools should put a note in the created documentation. Doxygen will put a box with yellow background, for instance.
Oh ok.
>>> - pr_err("%s: GPMC error! CS%d: %s: %d ns, %d ticks > %d\n",
>>> + pr_err("%s: GPMC CS%d: %s %d ns, %d ticks > %d ticks\n",
>> any reason for removing the "error!" string?
> It's already pr_err, the "error!" in-between "GPMC CS%d" made it hard to read and there's a WARN after that statement in all cases, because a child _must_ fail if a timing parameter constraint is broken.
How will the user know by looking at the kernel log that it was really an error?
We don't fail probe if set_gpmc_timing_reg() fails so I feel it is necessary to
clearly show an Error message.
You can probably reword it like "%s: Error!! GPMC CS %d..."
cheers,
-roger
next prev parent reply other threads:[~2015-02-25 17:17 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-24 20:05 [PATCH 0/8 v2] ARM OMAP2+ GPMC: fixes and bus children Robert ABEL
2015-02-24 20:05 ` [PATCH 1/8 v2] ARM OMAP2+ GPMC: don't undef DEBUG Robert ABEL
2015-02-24 20:05 ` [PATCH 3/8 v2] ARM OMAP2+ GPMC: add bus children Robert ABEL
2015-02-24 20:05 ` [PATCH 4/8 v2] ARM OMAP2+ GPMC: fix debug output alignment Robert ABEL
2015-02-24 20:05 ` [PATCH 5/8 v2] ARM OMAP2+ GPMC: change get_gpmc_timing_reg output for DTS Robert ABEL
2015-02-24 20:05 ` [PATCH 6/8 v2] ARM OMAP2+ GPMC: always program GPMCFCLKDIVIDER Robert ABEL
2015-02-24 20:05 ` [PATCH 7/8 v2] ARM OMAP2+ GPMC: calculate GPMCFCLKDIVIDER based on WAITMONITORINGTIME Robert ABEL
2015-02-24 20:05 ` [PATCH 8/8 v2] ARM OMAP2+ GPMC: fix WAITMONITORINGTIME divider bug Robert ABEL
2015-02-24 20:05 ` [PATCH 9/8 v2] ARM OMAP2+ GPMC: fix programming/showing reserved timing parameters Robert ABEL
2015-02-25 10:44 ` Roger Quadros
2015-02-25 10:44 ` Roger Quadros
2015-02-25 15:17 ` Robert Abel
2015-02-25 16:09 ` Roger Quadros
2015-02-25 16:09 ` Roger Quadros
2015-02-25 16:58 ` [PATCH 8/8 v2] ARM OMAP2+ GPMC: fix WAITMONITORINGTIME divider bug Roger Quadros
2015-02-25 16:58 ` Roger Quadros
2015-02-25 17:07 ` Robert Abel
2015-02-25 17:17 ` Roger Quadros [this message]
2015-02-25 17:17 ` Roger Quadros
2015-02-25 17:22 ` Robert Abel
2015-02-25 17:27 ` Roger Quadros
2015-02-25 17:27 ` Roger Quadros
2015-02-25 16:33 ` [PATCH 7/8 v2] ARM OMAP2+ GPMC: calculate GPMCFCLKDIVIDER based on WAITMONITORINGTIME Roger Quadros
2015-02-25 16:33 ` Roger Quadros
2015-02-25 17:20 ` Roger Quadros
2015-02-25 17:20 ` Roger Quadros
2015-02-25 17:24 ` Robert Abel
2015-02-25 17:20 ` Robert Abel
2015-02-26 11:34 ` Roger Quadros
2015-02-26 11:34 ` Roger Quadros
2015-02-25 13:31 ` [PATCH 6/8 v2] ARM OMAP2+ GPMC: always program GPMCFCLKDIVIDER Roger Quadros
2015-02-25 13:31 ` Roger Quadros
2015-02-25 13:24 ` [PATCH 5/8 v2] ARM OMAP2+ GPMC: change get_gpmc_timing_reg output for DTS Roger Quadros
2015-02-25 13:24 ` Roger Quadros
2015-02-25 15:23 ` Tony Lindgren
2015-02-25 16:26 ` Robert Abel
2015-02-25 13:05 ` [PATCH 4/8 v2] ARM OMAP2+ GPMC: fix debug output alignment Roger Quadros
2015-02-25 13:05 ` Roger Quadros
2015-02-25 12:02 ` [PATCH 3/8 v2] ARM OMAP2+ GPMC: add bus children Roger Quadros
2015-02-25 12:02 ` Roger Quadros
2015-02-25 15:06 ` Robert Abel
2015-02-25 16:18 ` Roger Quadros
2015-02-25 16:18 ` Roger Quadros
2015-02-25 16:23 ` Robert Abel
2015-02-25 16:26 ` Roger Quadros
2015-02-25 16:26 ` Roger Quadros
2015-02-25 11:01 ` [PATCH 1/8 v2] ARM OMAP2+ GPMC: don't undef DEBUG Roger Quadros
2015-02-25 11:01 ` Roger Quadros
2015-02-24 20:07 ` [PATCH 0/8 v2] ARM OMAP2+ GPMC: fixes and bus children Robert Abel
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=54EE03C5.2090306@ti.com \
--to=rogerq@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=rabel@cit-ec.uni-bielefeld.de \
--cc=tony@atomide.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.