linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Brian Norris <briannorris@chromium.org>
To: yhchuang@realtek.com
Cc: kvalo@codeaurora.org, Larry.Finger@lwfinger.net,
	tehuang@realtek.com, sgruszka@redhat.com,
	linux-wireless@vger.kernel.org
Subject: Re: [PATCH 24/24] rtw88: 8822b: turn rtw_write32s_mask into macro
Date: Thu, 31 Jan 2019 17:24:48 -0800	[thread overview]
Message-ID: <20190201012446.GA103846@google.com> (raw)
In-Reply-To: <1548937297-14660-25-git-send-email-yhchuang@realtek.com>

Hi,

On Thu, Jan 31, 2019 at 08:21:37PM +0800, yhchuang@realtek.com wrote:
> From: Yan-Hsuan Chuang <yhchuang@realtek.com>
> 
> The inlined rtw_write32s_mask has to check range of addr with
> BUILD_BUG_ON. But with some variants of gcc version the function might
> not get inlined, and it will have no idea to know how to do, then
> results in a compile error. Turn it into a macro to make sure the values
> are known when compile time.
> 
> Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com>
> ---
>  drivers/net/wireless/realtek/rtw88/rtw8822b.c | 10 ----------
>  drivers/net/wireless/realtek/rtw88/rtw8822b.h | 15 +++++++++++++++
>  2 files changed, 15 insertions(+), 10 deletions(-)
> 
...
> diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.h b/drivers/net/wireless/realtek/rtw88/rtw8822b.h
> index 311fe8a..4cf193b1 100644
> --- a/drivers/net/wireless/realtek/rtw88/rtw8822b.h
> +++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.h
> @@ -97,6 +97,21 @@ struct rtw8822b_efuse {
>  	};
>  };
>  
> +static inline void
> +_rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
> +{
> +	rtw_write32_mask(rtwdev, addr, mask, data);
> +	rtw_write32_mask(rtwdev, addr + 0x200, mask, data);
> +}
> +
> +/* 0xC00-0xCFF and 0xE00-0xEFF have the same layout */

Feels like this belongs with _rtw_write32s_mask() now, not here?

> +#define rtw_write32s_mask(rtwdev, addr, mask, data)			       \
> +	do {								       \
> +		BUILD_BUG_ON(addr < 0xC00 || addr >= 0xD00);		       \

You probably want parentheses around the 'addr'. You *probably* won't
run into trouble with this particular macro, but if the caller is doing
the wrong kinds of comparisons or arithmetic, this might not work they
way you want.

Brian

> +									       \
> +		_rtw_write32s_mask(rtwdev, addr, mask, data);		       \
> +	} while (0)
> +
>  /* phy status page0 */
>  #define GET_PHY_STAT_P0_PWDB(phy_stat)                                         \
>  	le32_get_bits(*((__le32 *)(phy_stat) + 0x00), GENMASK(15, 8))
> -- 
> 2.7.4
> 

  reply	other threads:[~2019-02-01  1:24 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-31 12:21 [PATCH 00/24] rtw88: major fixes for 8822c to have stable functionalities yhchuang
2019-01-31 12:21 ` [PATCH 01/24] rtw88: report correct tx status if mac80211 requested one yhchuang
2019-02-09  3:08   ` Brian Norris
2019-02-11  4:31     ` Tony Chuang
2019-02-11 19:21       ` Brian Norris
2019-01-31 12:21 ` [PATCH 02/24] rtw88: add get_c2h_from_skb for extracting c2h commands yhchuang
2019-01-31 12:21 ` [PATCH 03/24] rtw88: can not support vif beacon filter actually yhchuang
2019-01-31 12:21 ` [PATCH 04/24] rtw88: fix incorrect bit definition for RF mode yhchuang
2019-01-31 12:21 ` [PATCH 05/24] rtw88: add a delay after writing a rf register yhchuang
2019-01-31 12:21 ` [PATCH 06/24] rtw88: 8822c: correct crystal setting yhchuang
2019-01-31 12:21 ` [PATCH 07/24] rtw88: 8822c: update efuse table as released yhchuang
2019-02-01  2:26   ` Brian Norris
2019-01-31 12:21 ` [PATCH 08/24] rtw88: 8822c: update pwr_seq to v12 yhchuang
2019-01-31 12:21 ` [PATCH 09/24] rtw88: 8822c: update phy parameter to v27 yhchuang
2019-01-31 12:21 ` [PATCH 10/24] rtw88: 8822c: update channel setting yhchuang
2019-01-31 12:21 ` [PATCH 11/24] rtw88: 8822c: update trx mode setting yhchuang
2019-01-31 12:21 ` [PATCH 12/24] rtw88: add module param to switch lps supportability yhchuang
2019-01-31 12:21 ` [PATCH 13/24] rtw88: add 8822c tx power index table parsing support yhchuang
2019-01-31 12:21 ` [PATCH 14/24] rtw88: add 8822c tx agc support yhchuang
2019-01-31 12:21 ` [PATCH 15/24] rtw88: extract utility functions into util.c yhchuang
2019-01-31 12:21 ` [PATCH 16/24] rtw88: 8822c: add support for DACK yhchuang
2019-01-31 12:21 ` [PATCH 17/24] rtw88: 8822c: fix RSC setting yhchuang
2019-01-31 12:21 ` [PATCH 18/24] rtw88: 8822c: set ack timeout yhchuang
2019-01-31 12:21 ` [PATCH 19/24] rtw88: 8822c: do not reset MAC Rx before sending CCK packet yhchuang
2019-01-31 12:21 ` [PATCH 20/24] rtw88: 8822c: parse packet by sigb length yhchuang
2019-01-31 12:21 ` [PATCH 21/24] rtw88: do not count dummy tail into rx counter yhchuang
2019-01-31 12:21 ` [PATCH 22/24] rtw88: set OFDM ctx to receive ack after cts2self yhchuang
2019-01-31 12:21 ` [PATCH 23/24] rtw88: fix slot time value yhchuang
2019-01-31 12:21 ` [PATCH 24/24] rtw88: 8822b: turn rtw_write32s_mask into macro yhchuang
2019-02-01  1:24   ` Brian Norris [this message]
2019-02-11  2:29     ` Tony Chuang
2019-02-01  2:40 ` [PATCH 00/24] rtw88: major fixes for 8822c to have stable functionalities Brian Norris
2019-02-11  2:30   ` Tony Chuang

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=20190201012446.GA103846@google.com \
    --to=briannorris@chromium.org \
    --cc=Larry.Finger@lwfinger.net \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=sgruszka@redhat.com \
    --cc=tehuang@realtek.com \
    --cc=yhchuang@realtek.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 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).