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
>
next prev parent 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).