brcmsmac wireless driver does not have power management enabled and is eating batteries

Bug #867869 reported by fejes
56
This bug affects 11 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

A lot of people have been reporting that the oneiric kernels have been sucking up power (which they were, early on), but a closer look shows that the kernel regressions are mainly all fixed - however, the brcmsmac wireless driver appears to be a main culprit left, sucking up to ~3W of power.

As far as I can tell, the use of the brcmsmac wireless driver co-incided with the use of the introduction of the kernel bug that was making battery life poor for many oneiric users, and I suspect that this is one of the major contributors to that problem. Perhaps the brcmsmac should be rolled back until power management is available, or a push on this driver could possibly enable this feature. Either one would be a good way to extend battery life for laptop users.

I am using: Ubuntu 3.0.0-12.19-generic 3.0.4 (Oneiric, with up to date packages)

The important line from lspci is:
03:00.0 Network controller [0280]: Broadcom Corporation BCM43224 802.11a/b/g/n [14e4:4353] (rev 01)
        Subsystem: Apple Computer Inc. Device [106b:0093]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 256 bytes
        Interrupt: pin A routed to IRQ 17
        Region 0: Memory at c1b00000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=2 PME-
        Capabilities: [58] Vendor Specific Information: Len=78 <?>
        Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000 Data: 0000
        Capabilities: [d0] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us
                        ClockPM+ Surprise- LLActRep+ BwNot-
                LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
        Capabilities: [100 v1] Advanced Error Reporting
                UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta: RxErr+ BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 14, GenCap+ CGenEn- ChkCap+ ChkEn-
        Capabilities: [13c v1] Virtual Channel
                Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
                Arb: Fixed- WRR32- WRR64- WRR128-
                Ctrl: ArbSelect=Fixed
                Status: InProgress-
                VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                        Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                        Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
                        Status: NegoPending- InProgress-
        Capabilities: [160 v1] Device Serial Number 83-c3-dd-ff-ff-b5-10-9a
        Capabilities: [16c v1] Power Budgeting <?>
        Kernel driver in use: brcmsmac
        Kernel modules: wl, bcma, brcmsmac

From powertop:

The battery reports a discharge rate of 16.6 W

Summary: 0.0 wakeups/second, 0.0 GPU ops/second and 0.0 VFS ops/sec

Power est. Usage Events/s Category Description
  2.61 W 100.0% Device Radio device: brcmsmac
  2.35 W 60.0% Device Display backlight
  759 mW 29.5 ms/s 0.0 Process /usr/sbin/macfanctld
  727 mW 20.5% Device Audio codec alsa:hwC0D0: mbp55 (Cirrus Logic)
  564 mW 40.7 pkts/s Device Network interface: wlan0 (brcmsmac)
  469 mW 18.3 ms/s 0.0 Process /usr/bin/knotify4
  279 mW 10.9 ms/s 0.0 Process /usr/lib/firefox-7.0.1/firefox
  260 mW 10.1 ms/s 0.0 Process powertop

and, of course some output from iwconfig:

wlan0 IEEE 802.11abgn ESSID:"XXXXXXXXXX"
          Mode:Managed Frequency:2.462 GHz Access Point: 00:22:B0:B2:6A:80
          Bit Rate=54 Mb/s Tx-Power=19 dBm
          Retry long limit:7 RTS thr:off Fragment thr:off
          Power Management:off
          Link Quality=47/70 Signal level=-63 dBm
          Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
          Tx excessive retries:15 Invalid misc:2221 Missed beacon:0

And finally:

"sudo iwconfig wlan0 power on" gives:

Error for wireless request "Set Power Management" (8B2C) :
    SET failed on device wlan0 ; Operation not supported.

What I expected:
Ubuntu would not use a wireless driver on laptops that eats 3W of power and can't be set to use less power.

What happened:
My batteries are being drained by a wireless card that is constantly hot (I can feel it through the case) for which no option to enable power management exists.

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 867869

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
fejes (anthony-fejes) wrote :

This isn't a software crash, so apport-collect isn't appropriate in this case. Please tell me if I'm wrong.

Changed in linux (Ubuntu):
status: Incomplete → New
Revision history for this message
Brad Figg (brad-figg) wrote :

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 867869

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
fejes (anthony-fejes)
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Benjamin Asbach (m15k) wrote :

Do you need any additional Information? I'm using the same driver and the power consumption is very high and drains my battery. The signal strength is very instable perhaps it's connected to this issue.

Revision history for this message
fejes (anthony-fejes) wrote :

I haven't had any signal strength issues, so it might not be related.

I am aware that this driver still doesn't have the power saving modes implemented, which just makes it insane that they've included it as the default driver for this hardware.

I"m still suffering with it - but hope someone decides to take some action to replace it with a more appropriate driver or gets around to implementing power management for a release in the near future.

Revision history for this message
eug.l (eug-l) wrote :

02:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)

Revision history for this message
devstefano (devstefano) wrote :

Wifi card doesn't work out of box with kernel 3.2.2

Revision history for this message
devstefano (devstefano) wrote :

Wifi card work out of box with ubuntu 12.04 and 3.2.x kernel.

Revision history for this message
fejes (anthony-fejes) wrote :

It works out of the box.... but still draws ridiculous amounts of power, heating up the laptop and draining the battery.

Revision history for this message
DH (dave-higherform) wrote :

I am seeing as much as 5W reported by powertop for just the brcmsmac device line, with just light web browsing in firefox in decent signal wifi. Cannot set power saving mode on BCM43225.

I may try to go back to proprietary broadcom-sta drivers if it keeps eating my battery like this. I used to be able to pull 6+ hours out of my acer 3820t, now I'm lucky to make 3 under Precise...

Revision history for this message
Alberto Ruiz (alberto.ruiz) wrote :

Mine is sucking 13W, it has gotten worse after upgrading from 12.04 to 12.10

Revision history for this message
penalvch (penalvch) wrote :

fejes, this bug was reported a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue? If so, could you please test for this with the latest development release of Ubuntu? ISO images are available from http://cdimage.ubuntu.com/daily-live/current/ .

If it remains an issue, could you please run the following command in the development release from a Terminal (Applications->Accessories->Terminal), as it will automatically gather and attach updated debug information to this report:

apport-collect -p linux <replace-with-bug-number>

Also, could you please test the latest upstream kernel available following https://wiki.ubuntu.com/KernelMainlineBuilds ? It will allow additional upstream developers to examine the issue. Please do not test the daily folder, but the one all the way at the bottom. Once you've tested the upstream kernel, please comment on which kernel version specifically you tested. If this bug is fixed in the mainline kernel, please add the following tags:
kernel-fixed-upstream
kernel-fixed-upstream-VERSION-NUMBER

where VERSION-NUMBER is the version number of the kernel you tested. For example:
kernel-fixed-upstream-v3.11-rc5

This can be done by clicking on the yellow circle with a black pencil icon next to the word Tags located at the bottom of the bug description. As well, please remove the tag:
needs-upstream-testing

If the mainline kernel does not fix this bug, please add the following tags:
kernel-bug-exists-upstream
kernel-bug-exists-upstream-VERSION-NUMBER

As well, please remove the tag:
needs-upstream-testing

Once testing of the upstream kernel is complete, please mark this bug's Status as Confirmed. Please let us know your results. Thank you for your understanding.

tags: added: needs-kernel-logs needs-upstream-testing oneiric
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for linux (Ubuntu) because there has been no activity for 60 days.]

Changed in linux (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.