提交 910cfee3 编写于 作者: L Larry Finger 提交者: John W. Linville

b43legacy: Do not select HW_RANDOM

Auto-depend on HW_RANDOM, rather than "select"ing it.
This way the user has the choice to enable or disable HWRNG support.
Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 66174bbe
...@@ -3,7 +3,6 @@ config B43LEGACY ...@@ -3,7 +3,6 @@ config B43LEGACY
depends on SSB_POSSIBLE && MAC80211 && WLAN_80211 && HAS_DMA depends on SSB_POSSIBLE && MAC80211 && WLAN_80211 && HAS_DMA
select SSB select SSB
select FW_LOADER select FW_LOADER
select HW_RANDOM
---help--- ---help---
b43legacy is a driver for 802.11b devices from Broadcom (BCM4301 and b43legacy is a driver for 802.11b devices from Broadcom (BCM4301 and
BCM4303) and early model 802.11g chips (BCM4306 Ver. 2) used in the BCM4303) and early model 802.11g chips (BCM4306 Ver. 2) used in the
...@@ -51,6 +50,13 @@ config B43LEGACY_RFKILL ...@@ -51,6 +50,13 @@ config B43LEGACY_RFKILL
depends on B43LEGACY && (RFKILL = y || RFKILL = B43LEGACY) && RFKILL_INPUT && (INPUT_POLLDEV = y || INPUT_POLLDEV = B43LEGACY) depends on B43LEGACY && (RFKILL = y || RFKILL = B43LEGACY) && RFKILL_INPUT && (INPUT_POLLDEV = y || INPUT_POLLDEV = B43LEGACY)
default y default y
# This config option automatically enables b43 HW-RNG support,
# if the HW-RNG core is enabled.
config B43LEGACY_HWRNG
bool
depends on B43LEGACY && (HW_RANDOM = y || HW_RANDOM = B43LEGACY)
default y
config B43LEGACY_DEBUG config B43LEGACY_DEBUG
bool "Broadcom 43xx-legacy debugging" bool "Broadcom 43xx-legacy debugging"
depends on B43LEGACY depends on B43LEGACY
......
...@@ -596,9 +596,11 @@ struct b43legacy_wl { ...@@ -596,9 +596,11 @@ struct b43legacy_wl {
/* Stats about the wireless interface */ /* Stats about the wireless interface */
struct ieee80211_low_level_stats ieee_stats; struct ieee80211_low_level_stats ieee_stats;
#ifdef CONFIG_B43LEGACY_HWRNG
struct hwrng rng; struct hwrng rng;
u8 rng_initialized; u8 rng_initialized;
char rng_name[30 + 1]; char rng_name[30 + 1];
#endif
/* The RF-kill button */ /* The RF-kill button */
struct b43legacy_rfkill rfkill; struct b43legacy_rfkill rfkill;
......
...@@ -2297,6 +2297,7 @@ static void b43legacy_security_init(struct b43legacy_wldev *dev) ...@@ -2297,6 +2297,7 @@ static void b43legacy_security_init(struct b43legacy_wldev *dev)
dev->max_nr_keys - 8); dev->max_nr_keys - 8);
} }
#ifdef CONFIG_B43LEGACY_HWRNG
static int b43legacy_rng_read(struct hwrng *rng, u32 *data) static int b43legacy_rng_read(struct hwrng *rng, u32 *data)
{ {
struct b43legacy_wl *wl = (struct b43legacy_wl *)rng->priv; struct b43legacy_wl *wl = (struct b43legacy_wl *)rng->priv;
...@@ -2312,17 +2313,21 @@ static int b43legacy_rng_read(struct hwrng *rng, u32 *data) ...@@ -2312,17 +2313,21 @@ static int b43legacy_rng_read(struct hwrng *rng, u32 *data)
return (sizeof(u16)); return (sizeof(u16));
} }
#endif
static void b43legacy_rng_exit(struct b43legacy_wl *wl) static void b43legacy_rng_exit(struct b43legacy_wl *wl)
{ {
#ifdef CONFIG_B43LEGACY_HWRNG
if (wl->rng_initialized) if (wl->rng_initialized)
hwrng_unregister(&wl->rng); hwrng_unregister(&wl->rng);
#endif
} }
static int b43legacy_rng_init(struct b43legacy_wl *wl) static int b43legacy_rng_init(struct b43legacy_wl *wl)
{ {
int err; int err = 0;
#ifdef CONFIG_B43LEGACY_HWRNG
snprintf(wl->rng_name, ARRAY_SIZE(wl->rng_name), snprintf(wl->rng_name, ARRAY_SIZE(wl->rng_name),
"%s_%s", KBUILD_MODNAME, wiphy_name(wl->hw->wiphy)); "%s_%s", KBUILD_MODNAME, wiphy_name(wl->hw->wiphy));
wl->rng.name = wl->rng_name; wl->rng.name = wl->rng_name;
...@@ -2336,6 +2341,7 @@ static int b43legacy_rng_init(struct b43legacy_wl *wl) ...@@ -2336,6 +2341,7 @@ static int b43legacy_rng_init(struct b43legacy_wl *wl)
"number generator (%d)\n", err); "number generator (%d)\n", err);
} }
#endif
return err; return err;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册