Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 290654 Details for
Bug 384981
b43legacy hangs with BCM4303 (rev 02)
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
patch to 2.6.23.8-63 kernel adding copious printks to b43legacy and ssb module loading
linux-2.6-printk-b43legacy-to-death-debuggingssb.patch (text/x-patch), 10.56 KB, created by
Oliver Henshaw
on 2008-01-02 14:18:32 UTC
(
hide
)
Description:
patch to 2.6.23.8-63 kernel adding copious printks to b43legacy and ssb module loading
Filename:
MIME Type:
Creator:
Oliver Henshaw
Created:
2008-01-02 14:18:32 UTC
Size:
10.56 KB
patch
obsolete
>diff -uNrp linux-2.6.23.i386/drivers/net/wireless/b43legacy/main.c ../kernel-2.6.23.new/linux-2.6.23.i386/drivers/net/wireless/b43legacy/main.c >--- linux-2.6.23.i386/drivers/net/wireless/b43legacy/main.c 2007-12-22 13:22:35.000000000 +0000 >+++ ../kernel-2.6.23.new/linux-2.6.23.i386/drivers/net/wireless/b43legacy/main.c 2007-12-28 22:15:00.000000000 +0000 >@@ -1,3 +1,4 @@ >+ > /* > * > * Broadcom B43legacy wireless driver >@@ -697,25 +698,35 @@ void b43legacy_wireless_core_reset(struc > > flags |= B43legacy_TMSLOW_PHYCLKEN; > flags |= B43legacy_TMSLOW_PHYRESET; >+ >+ printk(KERN_INFO "b43wireless_core_reset: At start of function\n"); > ssb_device_enable(dev->dev, flags); >+ printk(KERN_INFO "b43wireless_core_reset: After ssb_device_enable\n"); > msleep(2); /* Wait for the PLL to turn on. */ >- >+ > /* Now take the PHY out of Reset again */ > tmslow = ssb_read32(dev->dev, SSB_TMSLOW); >+ printk(KERN_INFO "b43wireless_core_reset: After ssb_read32\n"); > tmslow |= SSB_TMSLOW_FGC; > tmslow &= ~B43legacy_TMSLOW_PHYRESET; > ssb_write32(dev->dev, SSB_TMSLOW, tmslow); >+ printk(KERN_INFO "b43wireless_core_reset: After ssb_write32\n"); > ssb_read32(dev->dev, SSB_TMSLOW); /* flush */ >+ printk(KERN_INFO "b43wireless_core_reset: After ssb_read32\n"); > msleep(1); > tmslow &= ~SSB_TMSLOW_FGC; > ssb_write32(dev->dev, SSB_TMSLOW, tmslow); >+ printk(KERN_INFO "b43wireless_core_reset: After ssb_write32\n"); > ssb_read32(dev->dev, SSB_TMSLOW); /* flush */ >+ printk(KERN_INFO "b43wireless_core_reset: After ssb_read32\n"); > msleep(1); >- >+ > /* Turn Analog ON */ > b43legacy_switch_analog(dev, 1); >- >+ printk(KERN_INFO "b43wireless_core_reset: After b43legacy_switch_analog\n"); >+ > macctl = b43legacy_read32(dev, B43legacy_MMIO_MACCTL); >+ printk(KERN_INFO "b43wireless_core_reset: After b43legacy_read32\n"); > macctl &= ~B43legacy_MACCTL_GMODE; > if (flags & B43legacy_TMSLOW_GMODE) { > macctl |= B43legacy_MACCTL_GMODE; >@@ -724,6 +735,7 @@ void b43legacy_wireless_core_reset(struc > dev->phy.gmode = 0; > macctl |= B43legacy_MACCTL_IHR_ENABLED; > b43legacy_write32(dev, B43legacy_MMIO_MACCTL, macctl); >+ printk(KERN_INFO "b43wireless_core_reset: After b43legacy_write32\n"); > } > > static void handle_irq_transmit_status(struct b43legacy_wldev *dev) >@@ -3406,29 +3418,40 @@ static int b43legacy_wireless_core_attac > * have that in core_init(), too. > */ > >+ printk(KERN_INFO "b43wireless_core_attach: At start of function\n"); > err = ssb_bus_powerup(bus, 0); >+ printk(KERN_INFO "b43wireless_core_attach: After ssb_bus_powerup\n"); > if (err) { >+ printk(KERN_INFO "b43wireless_core_attach: inside if (err) block\n"); > b43legacyerr(wl, "Bus powerup failed\n"); > goto out; > } > /* Get the PHY type. */ > if (dev->dev->id.revision >= 5) { >+ printk(KERN_INFO "b43wireless_core_attach: inside if (dev->dev->id.revision >= 5) block\n"); > u32 tmshigh; > > tmshigh = ssb_read32(dev->dev, SSB_TMSHIGH); >+ printk(KERN_INFO "b43wireless_core_attach: After ssb_read32\n"); > have_gphy = !!(tmshigh & B43legacy_TMSHIGH_GPHY); >- if (!have_gphy) >+ if (!have_gphy) { >+ printk(KERN_INFO "b43wireless_core_attach: inside if (!have_gphy) block\n"); > have_bphy = 1; >- } else if (dev->dev->id.revision == 4) >+ } >+ } else if (dev->dev->id.revision == 4) { >+ printk(KERN_INFO "b43wireless_core_attach: inside if (dev->dev->id.revision == 4) block\n"); > have_gphy = 1; >- else >+ } else { >+ printk(KERN_INFO "b43wireless_core_attach: inside else block\n"); > have_bphy = 1; >- >+ } > dev->phy.gmode = (have_gphy || have_bphy); >+ printk(KERN_INFO "b43wireless_core_attach: have_gphy=%d, have_bphy=%d, B43legacy_TMSLOW_GMODE=%d, dev->dev->id.revision=%d\n", have_gphy, have_bphy, B43legacy_TMSLOW_GMODE, dev->dev->id.revision); > tmp = dev->phy.gmode ? B43legacy_TMSLOW_GMODE : 0; > b43legacy_wireless_core_reset(dev, tmp); >- >+ printk(KERN_INFO "b43wireless_core_attach: After b43legacy_wireless_core_reset\n"); > err = b43legacy_phy_versioning(dev); >+ printk(KERN_INFO "b43wireless_core_attach: After b43legacy_phy_versioning\n"); > if (err) > goto err_powerdown; > /* Check if this device supports multiband. */ >@@ -3453,11 +3476,14 @@ static int b43legacy_wireless_core_attac > dev->phy.gmode = (have_gphy || have_bphy); > tmp = dev->phy.gmode ? B43legacy_TMSLOW_GMODE : 0; > b43legacy_wireless_core_reset(dev, tmp); >+ printk(KERN_INFO "b43wireless_core_attach: After b43_wireless_core_reset\n"); > > err = b43legacy_validate_chipaccess(dev); >+ printk(KERN_INFO "b43wireless_core_attach: After b43legacy_validate_chipaccess\n"); > if (err) > goto err_powerdown; > err = b43legacy_setup_modes(dev, have_bphy, have_gphy); >+ printk(KERN_INFO "b43wireless_core_attach: After b43legacy_setup_modes\n"); > if (err) > goto err_powerdown; > >@@ -3465,17 +3491,25 @@ static int b43legacy_wireless_core_attac > if (!wl->current_dev) > wl->current_dev = dev; > INIT_WORK(&dev->restart_work, b43legacy_chip_reset); >+ printk(KERN_INFO "b43wireless_core_attach: After INIT_WORK\n"); > > b43legacy_radio_turn_off(dev, 1); >+ printk(KERN_INFO "b43wireless_core_attach: After b43legacy_radio_turn_off\n"); > b43legacy_switch_analog(dev, 0); >+ printk(KERN_INFO "b43wireless_core_attach: After b43legacy_switch_analog\n"); > ssb_device_disable(dev->dev, 0); >+ printk(KERN_INFO "b43wireless_core_attach: After ssb_device_disable\n"); > ssb_bus_may_powerdown(bus); >+ printk(KERN_INFO "b43wireless_core_attach: After ssb_bus_may_powerdown\n"); > > out: >+ printk(KERN_INFO "b43wireless_core_attach: ... out\n"); > return err; > > err_powerdown: >+ printk(KERN_INFO "b43wireless_core_attach: ... err_powerdown\n"); > ssb_bus_may_powerdown(bus); >+ printk(KERN_INFO "b43wireless_core_attach: After ssb_bus_may_powerdown\n"); > return err; > } > >diff -uNrp linux-2.6.23.i386/drivers/ssb/main.c ../kernel-2.6.23.new/linux-2.6.23.i386/drivers/ssb/main.c >--- linux-2.6.23.i386/drivers/ssb/main.c 2007-12-22 13:22:51.000000000 +0000 >+++ ../kernel-2.6.23.new/linux-2.6.23.i386/drivers/ssb/main.c 2007-12-29 11:58:35.000000000 +0000 >@@ -877,24 +877,31 @@ EXPORT_SYMBOL(ssb_clockspeed); > > static u32 ssb_tmslow_reject_bitmask(struct ssb_device *dev) > { >+ printk(KERN_INFO "ssb_tmslow_reject_bitmask: At start of function\n"); > u32 rev = ssb_read32(dev, SSB_IDLOW) & SSB_IDLOW_SSBREV; >+ printk(KERN_INFO "ssb_tmslow_reject_bitmask: After ssb_read32\n"); > >+ printk(KERN_INFO "ssb_tmslow_reject_bitmask: Backplane Revision 0x%.8X\n", rev); > /* The REJECT bit changed position in TMSLOW between > * Backplane revisions. */ > switch (rev) { > case SSB_IDLOW_SSBREV_22: >+ printk(KERN_INFO "ssb_tmslow_reject_bitmask: ... return SSB_TMSLOW_REJECT_22\n"); > return SSB_TMSLOW_REJECT_22; > case SSB_IDLOW_SSBREV_23: >+ printk(KERN_INFO "ssb_tmslow_reject_bitmask: ... return SSB_TMSLOW_REJECT_23\n"); > return SSB_TMSLOW_REJECT_23; > case SSB_IDLOW_SSBREV_24: /* TODO - find the proper REJECT bits */ > case SSB_IDLOW_SSBREV_25: /* same here */ > case SSB_IDLOW_SSBREV_26: /* same here */ > case SSB_IDLOW_SSBREV_27: /* same here */ >+ printk(KERN_INFO "ssb_tmslow_reject_bitmask: ... return SSB_TMSLOW_REJECT_23\n"); > return SSB_TMSLOW_REJECT_23; /* this is a guess */ > default: > printk(KERN_INFO "ssb: Backplane Revision 0x%.8X\n", rev); > WARN_ON(1); > } >+ printk(KERN_INFO "ssb_tmslow_reject_bitmask: ... return SSB_TMSLOW_REJECT_22 | SSB_TMSLOW_REJECT_23\n"); > return (SSB_TMSLOW_REJECT_22 | SSB_TMSLOW_REJECT_23); > } > >@@ -927,30 +934,46 @@ void ssb_device_enable(struct ssb_device > { > u32 val; > >+ printk(KERN_INFO "ssb_device_enable: At start of function\n"); > ssb_device_disable(dev, core_specific_flags); >+ printk(KERN_INFO "ssb_device_enable: After ssb_device_disable\n"); > ssb_write32(dev, SSB_TMSLOW, > SSB_TMSLOW_RESET | SSB_TMSLOW_CLOCK | > SSB_TMSLOW_FGC | core_specific_flags); >+ printk(KERN_INFO "ssb_device_enable: After ssb_write_32\n"); > ssb_flush_tmslow(dev); >+ printk(KERN_INFO "ssb_device_enable: After ssb_flush_tmslow\n"); > > /* Clear SERR if set. This is a hw bug workaround. */ >- if (ssb_read32(dev, SSB_TMSHIGH) & SSB_TMSHIGH_SERR) >+ if (ssb_read32(dev, SSB_TMSHIGH) & SSB_TMSHIGH_SERR) { >+ printk(KERN_INFO "ssb_device_enable: Inside if (ssb_read32\n"); > ssb_write32(dev, SSB_TMSHIGH, 0); >+ printk(KERN_INFO "ssb_device_enable: After ssb_write_32\n"); >+ } > > val = ssb_read32(dev, SSB_IMSTATE); >+ printk(KERN_INFO "ssb_device_enable: After ssb_read32\n"); > if (val & (SSB_IMSTATE_IBE | SSB_IMSTATE_TO)) { >+ printk(KERN_INFO "ssb_device_enable: Inside if (val)\n"); > val &= ~(SSB_IMSTATE_IBE | SSB_IMSTATE_TO); > ssb_write32(dev, SSB_IMSTATE, val); >+ printk(KERN_INFO "ssb_device_enable: After ssb_write32\n"); > } > > ssb_write32(dev, SSB_TMSLOW, > SSB_TMSLOW_CLOCK | SSB_TMSLOW_FGC | > core_specific_flags); >+ printk(KERN_INFO "ssb_device_enable: After ssb_write32\n"); > ssb_flush_tmslow(dev); >+ printk(KERN_INFO "ssb_device_enable: After ssb_flush_tmslow\n"); > > ssb_write32(dev, SSB_TMSLOW, SSB_TMSLOW_CLOCK | > core_specific_flags); >+ printk(KERN_INFO "ssb_device_enable: After ssb_write32\n"); > ssb_flush_tmslow(dev); >+ printk(KERN_INFO "ssb_device_enable: After ssb_flush_tmslow\n"); >+ >+ printk(KERN_INFO "ssb_device_enable: At end of function\n"); > } > EXPORT_SYMBOL(ssb_device_enable); > >@@ -984,23 +1007,36 @@ void ssb_device_disable(struct ssb_devic > { > u32 reject; > >- if (ssb_read32(dev, SSB_TMSLOW) & SSB_TMSLOW_RESET) >+ printk(KERN_INFO "ssb_device_disable: At start of function\n"); >+ if (ssb_read32(dev, SSB_TMSLOW) & SSB_TMSLOW_RESET) { >+ printk(KERN_INFO "ssb_device_disable: Inside if (ssb_read32) -> return \n"); > return; >+ } > > reject = ssb_tmslow_reject_bitmask(dev); >+ printk(KERN_INFO "ssb_device_disable: After ssb_tmslow_reject_bitmask\n"); > ssb_write32(dev, SSB_TMSLOW, reject | SSB_TMSLOW_CLOCK); >+ printk(KERN_INFO "ssb_device_disable: After ssb_write32\n"); > ssb_wait_bit(dev, SSB_TMSLOW, reject, 1000, 1); >+ printk(KERN_INFO "ssb_device_disable: After ssb_wait_bit\n"); > ssb_wait_bit(dev, SSB_TMSHIGH, SSB_TMSHIGH_BUSY, 1000, 0); >+ printk(KERN_INFO "ssb_device_disable: After ssb_wait_bit\n"); > ssb_write32(dev, SSB_TMSLOW, > SSB_TMSLOW_FGC | SSB_TMSLOW_CLOCK | > reject | SSB_TMSLOW_RESET | > core_specific_flags); >+ printk(KERN_INFO "ssb_device_disable: After ssb_write32\n"); > ssb_flush_tmslow(dev); >+ printk(KERN_INFO "ssb_device_disable: After ssb_flush_tmslow\n"); > > ssb_write32(dev, SSB_TMSLOW, > reject | SSB_TMSLOW_RESET | > core_specific_flags); >+ printk(KERN_INFO "ssb_device_disable: After ssb_write32\n"); > ssb_flush_tmslow(dev); >+ printk(KERN_INFO "ssb_device_disable: After ssb_flush_tmslow\n"); >+ >+ printk(KERN_INFO "ssb_device_disable: At end of function\n"); > } > EXPORT_SYMBOL(ssb_device_disable); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 384981
:
260051
|
285841
|
289736
|
289737
|
289739
|
290296
|
290653
| 290654 |
290662
|
293058
|
293059
|
298154
|
298194
|
298210
|
298595
|
301430
|
301806
|
301817
|
302013
|
302273
|
308869