mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: "barebox@lists.infradead.org" <barebox@lists.infradead.org>
Subject: Re: [PATCH 16/20] e1000: Add functions for register polling
Date: Tue, 19 Jan 2016 10:53:07 -0800	[thread overview]
Message-ID: <CAHQ1cqHB6=OLR0vBNK8UA1ty0t1LpBsoJ95H9m=GqYy7ZKOuNw@mail.gmail.com> (raw)
In-Reply-To: <20160119082149.GJ13058@pengutronix.de>

On Tue, Jan 19, 2016 at 12:21 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Sun, Jan 17, 2016 at 07:52:37PM -0800, Andrey Smirnov wrote:
>> Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
>> ---
>>  drivers/net/e1000/e1000.h | 19 +++++++++++++++++++
>>  1 file changed, 19 insertions(+)
>>
>> diff --git a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h
>> index 291e64d..5e24758 100644
>> --- a/drivers/net/e1000/e1000.h
>> +++ b/drivers/net/e1000/e1000.h
>> @@ -2176,5 +2176,24 @@ static inline uint32_t e1000_read_reg(struct e1000_hw *hw, uint32_t reg)
>>  }
>>
>>
>> +static inline int e1000_poll_reg(struct e1000_hw *hw, uint32_t reg,
>> +                              uint32_t mask, uint32_t value,
>> +                              uint64_t timeout)
>
> We should let the compiler decide whether to inline this or not. Can we
> remove the inline?

In general the reason I put "inline" when defining functions in
headers -- that is not to say that it applies in this case -- is
because that tells the compiler that the code for function doesn't
have to put in the object file if no one is using it. Otherwise when
.c that doesn't reference includes .h with static non-inline function
that nobody uses GCC might emit a warning about unused function.

I am not sure if this is true for given the set of flags BB passes to
GCC, so I'll double check and if it's not the case remove the 'inline'

>
>> +{
>> +     const uint64_t start = get_time_ns();
>> +
>> +     do {
>> +             const uint32_t v = e1000_read_reg(hw, reg);
>> +
>> +             if ((v & mask) == value)
>> +                     return 0;
>> +
>> +     } while (!is_timeout(start, timeout));
>> +
>> +     return -ETIMEDOUT;
>> +}
>> +
>> +#define E1000_POLL_REG(a, reg, mask, value, timeout) \
>> +     e1000_poll_reg((a), E1000_##reg, (mask), (value), (timeout))
>
> Can we drop this define? All it does is to put E1000_ in front of the
> register name which could also be done by the caller.

I'd love to do that. How do you feel about getting rid of
E1000_READ_REG and E1000_WRITE_REG?

Andrey

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2016-01-19 18:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1453089161-6697-1-git-send-email-andrew.smirnov@gmail.com>
2016-01-18  3:52 ` [PATCH 02/20] e1000: Fix a bug in e1000_detect_gig_phy Andrey Smirnov
2016-01-18  3:52 ` [PATCH 03/20] e1000: Remove unnecessary variable Andrey Smirnov
2016-01-18  3:52 ` [PATCH 04/20] e1000: Do not read same register twice Andrey Smirnov
2016-01-18  3:52 ` [PATCH 05/20] e1000: Remove unneeded i210 specific register code Andrey Smirnov
2016-01-18  3:52 ` [PATCH 06/20] e1000: Consolidate register offset fixups Andrey Smirnov
2016-01-18  3:52 ` [PATCH 07/20] e1000: Remove 'use_eewr' parameter Andrey Smirnov
2016-01-18  3:52 ` [PATCH 08/20] e1000: Remove 'page_size' Andrey Smirnov
2016-01-18  3:52 ` [PATCH 09/20] e1000: Simplify EEPROM init for e1000_80003es2lan Andrey Smirnov
2016-01-18  3:52 ` [PATCH 10/20] e1000: Simplify EEPROM init for e1000_igb Andrey Smirnov
2016-01-18  3:52 ` [PATCH 11/20] e1000: Consolidate SPI EEPROM init code Andrey Smirnov
2016-01-18  3:52 ` [PATCH 12/20] e1000: Consolidate Microwire " Andrey Smirnov
2016-01-18  3:52 ` [PATCH 13/20] e1000: Fix a bug in e1000_probe() Andrey Smirnov
2016-01-18  3:52 ` [PATCH 14/20] e1000: Remove unnecessary intialization Andrey Smirnov
2016-01-18  3:52 ` [PATCH 15/20] e1000: Refactor Flash/EEPROM reading code Andrey Smirnov
2016-01-18  3:52 ` [PATCH 16/20] e1000: Add functions for register polling Andrey Smirnov
2016-01-19  8:21   ` Sascha Hauer
2016-01-19 18:53     ` Andrey Smirnov [this message]
2016-01-20  7:32       ` Sascha Hauer
2016-01-18  3:52 ` [PATCH 17/20] e1000: Properly release SW_FW_SYNC semaphore bits Andrey Smirnov
2016-01-18  3:52 ` [PATCH 18/20] e1000: Add EEPROM access locking for i210 Andrey Smirnov
2016-01-18  3:52 ` [PATCH 19/20] e1000: Expose i210's external flash as MTD Andrey Smirnov
2016-01-18  3:52 ` [PATCH 20/20] e1000: Expose i210's iNVM as a cdev Andrey Smirnov

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='CAHQ1cqHB6=OLR0vBNK8UA1ty0t1LpBsoJ95H9m=GqYy7ZKOuNw@mail.gmail.com' \
    --to=andrew.smirnov@gmail.com \
    --cc=barebox@lists.infradead.org \
    --cc=s.hauer@pengutronix.de \
    /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