linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org, gregory.greenman@intel.com,
	Johannes Berg <johannes.berg@intel.com>
Subject: Re: [RFC] mac80211: convert HW flags to unsigned long bitmap
Date: Tue, 02 Jun 2015 23:35:12 -0700	[thread overview]
Message-ID: <1433313312.4861.119.camel@perches.com> (raw)
In-Reply-To: <1433273994-14430-1-git-send-email-johannes@sipsolutions.net>

On Tue, 2015-06-02 at 21:39 +0200, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
> 
> As we're running out of hardware capability flags pretty quickly,
> convert them to use the regular test_bit() style unsigned long
> bitmaps.

I think this is nice, thanks.

> diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c
[]
> @@ -1369,9 +1369,9 @@ static void adm8211_configure_filter(struct ieee80211_hw *dev,
[]
> -		dev->flags |= IEEE80211_HW_RX_INCLUDES_FCS;
> +		ieee80211_hw_set(dev, RX_INCLUDES_FCS);
[]
> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
[]
> @@ -1889,35 +1889,38 @@ struct ieee80211_txq {
[]
>  enum ieee80211_hw_flags {
> -	IEEE80211_HW_HAS_RATE_CONTROL			= 1<<0,
> -	IEEE80211_HW_RX_INCLUDES_FCS			= 1<<1,
[]
> +	IEEE80211_HW_HAS_RATE_CONTROL,
> +	IEEE80211_HW_RX_INCLUDES_FCS,

It may be nicer to use specified bit numbers here.

It may make compatibility easier and maybe it should be
written down that new entries are only to be added at
the bottom of the enum and not inserted in the middle.

[]

> +static inline bool _ieee80211_hw_check(struct ieee80211_hw *hw,
> +				       enum ieee80211_hw_flags flg)
> +{
> +	return test_bit(flg, hw->flags);
> +}
> +#define ieee80211_hw_check(hw, flg)	_ieee80211_hw_check(hw, IEEE80211_HW_##flg)
> +
> +static inline void _ieee80211_hw_set(struct ieee80211_hw *hw,
> +				     enum ieee80211_hw_flags flg)
> +{
> +	return __set_bit(flg, hw->flags);
> +}

This is similar to the broadcom tg3 driver, but a little different.

The mechanism in tg3 compared to ieee80211_hw is
	tg3_flag	ieee80211_hw_check
	tg3_flag_set	ieee80211_hw_set
	tg3_flag_clear	?

Would a ieee80211_hw_clear be useful?
Would it be clearer without the _check?

>  static ssize_t hwflags_read(struct file *file, char __user *user_buf,
>  			    size_t count, loff_t *ppos)
>  {
[]
> +	for (i = 0; i < NUM_IEEE80211_HW_FLAGS; i++) {
> +		if (test_bit(i, local->hw.flags))

Maybe use the ieee80211_hw_check() function?



  parent reply	other threads:[~2015-06-03  6:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-02 19:39 [RFC] mac80211: convert HW flags to unsigned long bitmap Johannes Berg
2015-06-03  0:57 ` Julian Calaby
2015-06-03  7:02   ` Johannes Berg
2015-06-03  7:16     ` Julian Calaby
2015-06-03  6:35 ` Joe Perches [this message]
2015-06-03  7:04   ` Johannes Berg

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=1433313312.4861.119.camel@perches.com \
    --to=joe@perches.com \
    --cc=gregory.greenman@intel.com \
    --cc=johannes.berg@intel.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@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).