From: Chase Southwood <chase.southwood@yahoo.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"abbotti@mev.co.uk" <abbotti@mev.co.uk>,
"hsweeten@visionengravers.com" <hsweeten@visionengravers.com>,
"devel@driverdev.osuosl.org" <devel@driverdev.osuosl.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] Staging: comedi: introduce outl_1564_* and inl_1564_* helper functions in hwdrv_apci1564.c
Date: Sat, 1 Mar 2014 16:12:07 -0800 (PST) [thread overview]
Message-ID: <1393719127.24160.YahooMailNeo@web164005.mail.gq1.yahoo.com> (raw)
In-Reply-To: <20140301124418.GT26776@mwanda>
Hi Dan,
>On Saturday, March 1, 2014 6:46 AM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
>>On Sat, Mar 01, 2014 at 04:28:27AM -0600, Chase Southwood wrote:
>> This patch introduces a handful of outl and inl helper functions with the
>> ultimate goal of improving code readability and allowing several lines
>> which violate the character limit to be shortened in a sane way.
>>
>> Cc: Dan Carpenter <dan.carpenter@oracle.com>
>> Signed-off-by: Chase Southwood <chase.southwood@yahoo.com>
>> ---
>> This patchset serves as a replacement to my previous cleanup patchset for
>> hwdrv_apci1564.c
>>
>> Dan,
>> After spending a little bit more time with this and trying out different
>> ways of cleaning this up, I decided that making helper functions for all
>> of the most common register sets would look the best, but I haven't made
>> a helper for a few of the least common inl/outl calls because if I did,
>> the sheer number of helper functions would get quite ridiculous.
>> Let me know if you think my selections of what to make into helper
>> functions seems appropriate.
>>
>
>Yeah. You're right... It's kind of a lot of helper functions.
>
>I wonder if we could just do something like:
>
>static void outl_amcc(struct addi_private *devpriv, unsigned int cmd,
> unsigned int reg)
>{
> outl(cmd, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP + reg);
>}
>
>And then change APCI1564_DIGITAL_IP_INTERRUPT_MODE1 to be:
>
>#define APCI1564_DIGITAL_IP_INTERRUPT_MODE1 (0x4 + 0x4)
>
I like this idea. Just to clarify though, basically all of the macros would
change to something like
#define APCI1564_DIGITAL_IP 0x4 #define APCI1564_DIGITAL_IP_INTERRUPT_MODE1 (0x4 + 0x4) #define APCI1564_DIGITAL_IP_INTERRUPT_MODE2 (0x4 + 0x8) #define APCI1564_DIGITAL_IP_IRQ (0x4 + 0x10) #define APCI1564_DIGITAL_OP 0x18 #define APCI1564_DIGITAL_OP_RW 0x18 #define APCI1564_DIGITAL_OP_INTERRUPT (0x18 + 0x4) #define APCI1564_DIGITAL_OP_IRQ (0x18 + 0xc)
etc... and then we just have the single helper function
(the corrected version from your follow up email) and then
the calls would be something to the effect of:
outl_amcc(devpriv, cmd, APCI1564_DIGITAL_IP_INTERRUPT_MODE1);
or whichever macro is appropriate? It definitely trims down
the length of the function calls by removing the dereference of
devpriv and the addition to get the proper register...I like that.
>
>The only problem with that would be i_APCI1564_Reset(). Is
>i_APCI1564_Reset() buggy? Ian or Hartley might know. Take a look at
>other comedi drivers as well to see what they do.
>
I agree. I'll look into the other addi-data drivers (the layout of each
appears pretty similar) or see if Ian or Hartley can shed more light on the
reset function, because I have a sneaking suspicion that a good few of the lines
in it already are buggy, and it seems like there's a chance that it's not clearing
all of the registers that it should be, either. I could be wrong about that though.
At any rate, I'll see what I can do.
Thanks,
Chase
>
>regards,
>
>dan carpenter
next prev parent reply other threads:[~2014-03-02 0:18 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-28 7:31 [PATCH 1/2] Staging: comedi: addi-data: fix lines that are over 80 characters Chase Southwood
2014-02-28 7:32 ` [PATCH 2/2] Staging: comedi: addi-data: remove unnecessary variable initializations in hwdrv_apci1564.c Chase Southwood
2014-02-28 7:52 ` [PATCH 1/2] Staging: comedi: addi-data: fix lines that are over 80 characters Dan Carpenter
2014-02-28 7:56 ` Dan Carpenter
2014-02-28 8:03 ` Chase Southwood
2014-02-28 9:15 ` [PATCH 1/2 v2] Staging: comedi: " Chase Southwood
2014-02-28 9:42 ` Dan Carpenter
2014-02-28 9:53 ` Chase Southwood
2014-02-28 22:32 ` Greg KH
2014-03-01 5:32 ` Chase Southwood
2014-02-28 9:16 ` [PATCH 2/2 v2] Staging: comedi: addi-data: remove unnecessary variable initializations in hwdrv_apci1564.c Chase Southwood
2014-03-01 10:28 ` [PATCH 1/2] Staging: comedi: introduce outl_1564_* and inl_1564_* helper functions " Chase Southwood
2014-03-01 12:44 ` Dan Carpenter
2014-03-01 12:50 ` Dan Carpenter
2014-03-02 0:12 ` Chase Southwood [this message]
2014-03-02 0:26 ` Chase Southwood
2014-03-03 2:52 ` [PATCH v2 1/2] Staging: comedi: introduce {outl,inl}_amcc() and {outl,inl}_iobase() " Chase Southwood
2014-03-03 9:27 ` Dan Carpenter
2014-03-05 0:39 ` Greg KH
2014-03-05 5:35 ` Chase Southwood
2014-03-03 2:52 ` [PATCH v2 2/2] Staging: comedi: use inl() and outl() helper functions Chase Southwood
2014-03-03 9:40 ` Dan Carpenter
2014-03-03 19:17 ` [PATCH 1/2] Staging: comedi: introduce outl_1564_* and inl_1564_* helper functions in hwdrv_apci1564.c Hartley Sweeten
2014-03-01 10:28 ` [PATCH 2/2] Staging: comedi: use " Chase Southwood
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=1393719127.24160.YahooMailNeo@web164005.mail.gq1.yahoo.com \
--to=chase.southwood@yahoo.com \
--cc=abbotti@mev.co.uk \
--cc=dan.carpenter@oracle.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=hsweeten@visionengravers.com \
--cc=linux-kernel@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).