Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 255431
b: refs/heads/master
c: 4da909e
h: refs/heads/master
i:
  255429: 39e46b3
  255427: 349325b
  255423: 34c408d
v: v3
  • Loading branch information
Rafał Miłecki authored and John W. Linville committed Jun 3, 2011
1 parent 3d2aa09 commit 1363bb7
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5a6f78afdabeb8b8e0811547fb98813323abf888
refs/heads/master: 4da909e7b572b561d8150f9d41b04bcfff386222
25 changes: 11 additions & 14 deletions trunk/drivers/net/wireless/b43/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1144,11 +1144,14 @@ void b43_power_saving_ctl_bits(struct b43_wldev *dev, unsigned int ps_flags)
}
}

static void b43_ssb_wireless_core_reset(struct b43_wldev *dev, u32 flags)
static void b43_ssb_wireless_core_reset(struct b43_wldev *dev, bool gmode)
{
struct ssb_device *sdev = dev->dev->sdev;
u32 tmslow;
u32 flags = 0;

if (gmode)
flags |= B43_TMSLOW_GMODE;
flags |= B43_TMSLOW_PHYCLKEN;
flags |= B43_TMSLOW_PHYRESET;
if (dev->phy.type == B43_PHYTYPE_N)
Expand All @@ -1169,11 +1172,11 @@ static void b43_ssb_wireless_core_reset(struct b43_wldev *dev, u32 flags)
msleep(1);
}

void b43_wireless_core_reset(struct b43_wldev *dev, u32 flags)
void b43_wireless_core_reset(struct b43_wldev *dev, bool gmode)
{
u32 macctl;

b43_ssb_wireless_core_reset(dev, flags);
b43_ssb_wireless_core_reset(dev, gmode);

/* Turn Analog ON, but only if we already know the PHY-type.
* This protects against very early setup where we don't know the
Expand All @@ -1184,7 +1187,7 @@ void b43_wireless_core_reset(struct b43_wldev *dev, u32 flags)

macctl = b43_read32(dev, B43_MMIO_MACCTL);
macctl &= ~B43_MACCTL_GMODE;
if (flags & B43_TMSLOW_GMODE)
if (gmode)
macctl |= B43_MACCTL_GMODE;
macctl |= B43_MACCTL_IHR_ENABLED;
b43_write32(dev, B43_MMIO_MACCTL, macctl);
Expand Down Expand Up @@ -4328,17 +4331,14 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
struct b43_phy *phy = &dev->phy;
int err;
u64 hf;
u32 tmp;

B43_WARN_ON(b43_status(dev) != B43_STAT_UNINIT);

err = b43_bus_powerup(dev, 0);
if (err)
goto out;
if (!b43_device_is_enabled(dev)) {
tmp = phy->gmode ? B43_TMSLOW_GMODE : 0;
b43_wireless_core_reset(dev, tmp);
}
if (!b43_device_is_enabled(dev))
b43_wireless_core_reset(dev, phy->gmode);

/* Reset all data structures. */
setup_struct_wldev_for_init(dev);
Expand Down Expand Up @@ -4747,7 +4747,6 @@ static int b43_wireless_core_attach(struct b43_wldev *dev)
struct pci_dev *pdev = (bus->bustype == SSB_BUSTYPE_PCI) ? bus->host_pci : NULL;
int err;
bool have_2ghz_phy = 0, have_5ghz_phy = 0;
u32 tmp;

/* Do NOT do any device initialization here.
* Do it in wireless_core_init() instead.
Expand All @@ -4773,8 +4772,7 @@ static int b43_wireless_core_attach(struct b43_wldev *dev)

dev->phy.gmode = have_2ghz_phy;
dev->phy.radio_on = 1;
tmp = dev->phy.gmode ? B43_TMSLOW_GMODE : 0;
b43_wireless_core_reset(dev, tmp);
b43_wireless_core_reset(dev, dev->phy.gmode);

err = b43_phy_versioning(dev);
if (err)
Expand Down Expand Up @@ -4822,8 +4820,7 @@ static int b43_wireless_core_attach(struct b43_wldev *dev)
goto err_powerdown;

dev->phy.gmode = have_2ghz_phy;
tmp = dev->phy.gmode ? B43_TMSLOW_GMODE : 0;
b43_wireless_core_reset(dev, tmp);
b43_wireless_core_reset(dev, dev->phy.gmode);

err = b43_validate_chipaccess(dev);
if (err)
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/b43/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ void b43_hf_write(struct b43_wldev *dev, u64 value);

void b43_dummy_transmission(struct b43_wldev *dev, bool ofdm, bool pa_on);

void b43_wireless_core_reset(struct b43_wldev *dev, u32 flags);
void b43_wireless_core_reset(struct b43_wldev *dev, bool gmode);

void b43_controller_restart(struct b43_wldev *dev, const char *reason);

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/b43/phy_g.c
Original file line number Diff line number Diff line change
Expand Up @@ -2535,7 +2535,7 @@ static int b43_gphy_op_prepare_hardware(struct b43_wldev *dev)
b43_wireless_core_reset(dev, 0);
b43_phy_initg(dev);
phy->gmode = 1;
b43_wireless_core_reset(dev, B43_TMSLOW_GMODE);
b43_wireless_core_reset(dev, 1);
}

return 0;
Expand Down

0 comments on commit 1363bb7

Please sign in to comment.