<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/bcma, branch v3.12.10</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/bcma?h=v3.12.10</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/bcma?h=v3.12.10'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-09-26T18:02:33Z</updated>
<entry>
<title>bcma: make bcma_core_pci_{up,down}() callable from atomic context</title>
<updated>2013-09-26T18:02:33Z</updated>
<author>
<name>Arend van Spriel</name>
<email>arend@broadcom.com</email>
</author>
<published>2013-09-25T10:11:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2bedea8f26c92e2610f2f67889144990749461e0'/>
<id>urn:sha1:2bedea8f26c92e2610f2f67889144990749461e0</id>
<content type='text'>
This patch removes the bcma_core_pci_power_save() call from
the bcma_core_pci_{up,down}() functions as it tries to schedule
thus requiring to call them from non-atomic context. The function
bcma_core_pci_power_save() is now exported so the calling module
can explicitly use it in non-atomic context. This fixes the
'scheduling while atomic' issue reported by Tod Jackson and
Joe Perches.

[   13.210710] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[   13.210718] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[   13.210756] CPU: 2 PID: 1800 Comm: dhcpcd Not tainted 3.11.0-wl #1
[   13.210762] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[   13.210767]  ffff880177c92c40 ffff880170fd1948 ffffffff8169af5b 0000000000000007
[   13.210777]  ffff880170fd1ab0 ffff880170fd1958 ffffffff81697ee2 ffff880170fd19d8
[   13.210785]  ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[   13.210794] Call Trace:
[   13.210813]  [&lt;ffffffff8169af5b&gt;] dump_stack+0x4f/0x84
[   13.210826]  [&lt;ffffffff81697ee2&gt;] __schedule_bug+0x43/0x51
[   13.210837]  [&lt;ffffffff816a19f5&gt;] __schedule+0x6e5/0x810
[   13.210845]  [&lt;ffffffff816a1c34&gt;] schedule+0x24/0x70
[   13.210855]  [&lt;ffffffff816a04fc&gt;] schedule_hrtimeout_range_clock+0x10c/0x150
[   13.210867]  [&lt;ffffffff810684e0&gt;] ? update_rmtp+0x60/0x60
[   13.210877]  [&lt;ffffffff8106915f&gt;] ? hrtimer_start_range_ns+0xf/0x20
[   13.210887]  [&lt;ffffffff816a054e&gt;] schedule_hrtimeout_range+0xe/0x10
[   13.210897]  [&lt;ffffffff8104f6fb&gt;] usleep_range+0x3b/0x40
[   13.210910]  [&lt;ffffffffa00371af&gt;] bcma_pcie_mdio_set_phy.isra.3+0x4f/0x80 [bcma]
[   13.210921]  [&lt;ffffffffa003729f&gt;] bcma_pcie_mdio_write.isra.4+0xbf/0xd0 [bcma]
[   13.210932]  [&lt;ffffffffa0037498&gt;] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x18/0x30 [bcma]
[   13.210942]  [&lt;ffffffffa00374ee&gt;] bcma_core_pci_power_save+0x3e/0x80 [bcma]
[   13.210953]  [&lt;ffffffffa003765d&gt;] bcma_core_pci_up+0x2d/0x60 [bcma]
[   13.210975]  [&lt;ffffffffa03dc17c&gt;] brcms_c_up+0xfc/0x430 [brcmsmac]
[   13.210989]  [&lt;ffffffffa03d1a7d&gt;] brcms_up+0x1d/0x20 [brcmsmac]
[   13.211003]  [&lt;ffffffffa03d2498&gt;] brcms_ops_start+0x298/0x340 [brcmsmac]
[   13.211020]  [&lt;ffffffff81600a12&gt;] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[   13.211030]  [&lt;ffffffff815fa53d&gt;] ? packet_notifier+0xad/0x1d0
[   13.211064]  [&lt;ffffffff81656e75&gt;] ieee80211_do_open+0x325/0xf80
[   13.211076]  [&lt;ffffffff8106ac09&gt;] ? __raw_notifier_call_chain+0x9/0x10
[   13.211086]  [&lt;ffffffff81657b41&gt;] ieee80211_open+0x71/0x80
[   13.211101]  [&lt;ffffffff81526267&gt;] __dev_open+0x87/0xe0
[   13.211109]  [&lt;ffffffff8152650c&gt;] __dev_change_flags+0x9c/0x180
[   13.211117]  [&lt;ffffffff815266a3&gt;] dev_change_flags+0x23/0x70
[   13.211127]  [&lt;ffffffff8158cd68&gt;] devinet_ioctl+0x5b8/0x6a0
[   13.211136]  [&lt;ffffffff8158d5c5&gt;] inet_ioctl+0x75/0x90
[   13.211147]  [&lt;ffffffff8150b38b&gt;] sock_do_ioctl+0x2b/0x70
[   13.211155]  [&lt;ffffffff8150b681&gt;] sock_ioctl+0x71/0x2a0
[   13.211169]  [&lt;ffffffff8114ed47&gt;] do_vfs_ioctl+0x87/0x520
[   13.211180]  [&lt;ffffffff8113f159&gt;] ? ____fput+0x9/0x10
[   13.211198]  [&lt;ffffffff8106228c&gt;] ? task_work_run+0x9c/0xd0
[   13.211202]  [&lt;ffffffff8114f271&gt;] SyS_ioctl+0x91/0xb0
[   13.211208]  [&lt;ffffffff816aa252&gt;] system_call_fastpath+0x16/0x1b
[   13.211217] NOHZ: local_softirq_pending 202

The issue was introduced in v3.11 kernel by following commit:

commit aa51e598d04c6acf5477934cd6383f5a17ce9029
Author: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Date:   Sat Aug 24 00:32:31 2013 +0200

    brcmsmac: use bcma PCIe up and down functions

    replace the calls to bcma_core_pci_extend_L1timer() by calls to the
    newly introduced bcma_core_pci_ip() and bcma_core_pci_down()

    Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
    Cc: Arend van Spriel &lt;arend@broadcom.com&gt;
    Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;

This fix has been discussed with Hauke Mehrtens [1] selection
option 3) and is intended for v3.12.

Ref:
[1] http://mid.gmane.org/5239B12D.3040206@hauke-m.de

Cc: &lt;stable@vger.kernel.org&gt; # 3.11.x
Cc: Tod Jackson &lt;tod.jackson@gmail.com&gt;
Cc: Joe Perches &lt;joe@perches.com&gt;
Cc: Rafal Milecki &lt;zajec5@gmail.com&gt;
Cc: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Reviewed-by: Hante Meuleman &lt;meuleman@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>bcma: fix error code handling on 64 Bit systems</title>
<updated>2013-09-09T18:44:33Z</updated>
<author>
<name>Hauke Mehrtens</name>
<email>hauke@hauke-m.de</email>
</author>
<published>2013-09-07T15:02:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=aaa2ced15ad8dca8048666c9f70736424d696a6b'/>
<id>urn:sha1:aaa2ced15ad8dca8048666c9f70736424d696a6b</id>
<content type='text'>
On most 64 Bit systems unsigned long is 64 bit long and then -MAX_ERRNO
is out of the range of a u32 used to store the error code in.
This patch casts the -MAX_ERRNO to a u32 instead.

This fixes a regression introduced in:
commit fd4edf197544bae1c77d84bad354aa7ce1d08ce1
Author: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Date:   Mon Jul 15 13:15:08 2013 +0200

    bcma: fix handling of big addrl

Reported-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Tested-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>bcma: add bcma_core_pci_power_save()</title>
<updated>2013-08-26T18:09:03Z</updated>
<author>
<name>Hauke Mehrtens</name>
<email>hauke@hauke-m.de</email>
</author>
<published>2013-08-23T22:32:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=521deea64088bc885a76bd174241eaa3d3a6876f'/>
<id>urn:sha1:521deea64088bc885a76bd174241eaa3d3a6876f</id>
<content type='text'>
This enables or disables power saving on the PCIe bus when the wifi is
in operation or not.

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>bcma: do not export bcma_core_pci_extend_L1timer()</title>
<updated>2013-08-26T18:09:03Z</updated>
<author>
<name>Hauke Mehrtens</name>
<email>hauke@hauke-m.de</email>
</author>
<published>2013-08-23T22:32:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=780335acc815802dcee63d75f5589d43c3ccb402'/>
<id>urn:sha1:780335acc815802dcee63d75f5589d43c3ccb402</id>
<content type='text'>
This is not called any more, do not export it.

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>bcma: add method to power up and down the PCIe core by wifi driver</title>
<updated>2013-08-26T18:09:02Z</updated>
<author>
<name>Hauke Mehrtens</name>
<email>hauke@hauke-m.de</email>
</author>
<published>2013-08-23T22:32:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cfe51ec1ae427ec0be5a7670eae815ce5eb30e1c'/>
<id>urn:sha1:cfe51ec1ae427ec0be5a7670eae815ce5eb30e1c</id>
<content type='text'>
The wifi driver should tell the PCIe core that it is now in operation
so that some workarounds can be applied and the power state is changed.
This should replace the call to bcma_core_pci_extend_L1timer by the
brcmsmac driver.

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>bcma: change max PCI read request size to 128</title>
<updated>2013-08-26T18:09:02Z</updated>
<author>
<name>Hauke Mehrtens</name>
<email>hauke@hauke-m.de</email>
</author>
<published>2013-08-23T21:22:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f4a83e578e0011ddcfdbe1c62d0916dadb4802aa'/>
<id>urn:sha1:f4a83e578e0011ddcfdbe1c62d0916dadb4802aa</id>
<content type='text'>
This PCIe controller does not support a max read request size above 128
bytes. The sold card I tested this controller with used 128 as default
value, but some new routers are sold with BCM4331 chips, which have a
default max read request size of 512. This device fails at the first
DMA reqeust whch is bigger than 126 bytes.

This patch changes the max read request size to 128 for every device on
the PCIe link.

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>bcma: fix handling of big addrl</title>
<updated>2013-07-22T20:54:40Z</updated>
<author>
<name>Hauke Mehrtens</name>
<email>hauke@hauke-m.de</email>
</author>
<published>2013-07-15T11:15:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fd4edf197544bae1c77d84bad354aa7ce1d08ce1'/>
<id>urn:sha1:fd4edf197544bae1c77d84bad354aa7ce1d08ce1</id>
<content type='text'>
The return value of bcma_erom_get_addr_desc() is a unsigned value and it
could wrap around in the two complement writing. This happens for one
core in the BCM4708 SoC.

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>bcma: return correct error code when bus scan failed</title>
<updated>2013-07-22T20:54:40Z</updated>
<author>
<name>Hauke Mehrtens</name>
<email>hauke@hauke-m.de</email>
</author>
<published>2013-07-15T11:15:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1cabf7dba57011339d7e5a44b2c9829305936372'/>
<id>urn:sha1:1cabf7dba57011339d7e5a44b2c9829305936372</id>
<content type='text'>
It is better to return the actual error code than just -1.

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>bcma: make it possible to select SoC support without mips</title>
<updated>2013-07-22T20:54:39Z</updated>
<author>
<name>Hauke Mehrtens</name>
<email>hauke@hauke-m.de</email>
</author>
<published>2013-07-15T11:15:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6ffdead8027cad2c9aac95d8d53152ca7d7421c8'/>
<id>urn:sha1:6ffdead8027cad2c9aac95d8d53152ca7d7421c8</id>
<content type='text'>
To make it possible to use the SoC host interface with ARM SoCs do not
depend on the MIPS driver any more.

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>bcma: add some more core names</title>
<updated>2013-07-22T20:54:39Z</updated>
<author>
<name>Hauke Mehrtens</name>
<email>hauke@hauke-m.de</email>
</author>
<published>2013-07-15T11:15:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bb4997a1afbff61084b243d62aaaf23ea38a290e'/>
<id>urn:sha1:bb4997a1afbff61084b243d62aaaf23ea38a290e</id>
<content type='text'>
These cores were found on a BCM4708 (chipid 53010), this is a ARM SoC
with two Cortex A9 cores.

bcma: bus0: Found chip with id 0xCF12, rev 0x00 and package 0x02
bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2A, class 0x0)
bcma: bus0: Core 1 found: DMA (manuf 0x4BF, id 0x502, rev 0x01, class 0x0)
bcma: bus0: Core 2 found: GBit MAC (manuf 0x4BF, id 0x82D, rev 0x04, class 0x0)
bcma: bus0: Core 3 found: GBit MAC (manuf 0x4BF, id 0x82D, rev 0x04, class 0x0)
bcma: bus0: Core 4 found: GBit MAC (manuf 0x4BF, id 0x82D, rev 0x04, class 0x0)
bcma: bus0: Core 5 found: GBit MAC (manuf 0x4BF, id 0x82D, rev 0x04, class 0x0)
bcma: bus0: Core 6 found: PCIe Gen 2 (manuf 0x4BF, id 0x501, rev 0x01, class 0x0)
bcma: bus0: Core 7 found: PCIe Gen 2 (manuf 0x4BF, id 0x501, rev 0x01, class 0x0)
bcma: bus0: Core 8 found: ARM Cortex A9 core (ihost) (manuf 0x4BF, id 0x510, rev 0x01, class 0x0)
bcma: bus0: Core 9 found: USB 2.0 (manuf 0x4BF, id 0x504, rev 0x01, class 0x0)
bcma: bus0: Core 10 found: USB 3.0 (manuf 0x4BF, id 0x505, rev 0x01, class 0x0)
bcma: bus0: Core 11 found: SDIO3 (manuf 0x4BF, id 0x503, rev 0x01, class 0x0)
bcma: bus0: Core 12 found: ARM Cortex A9 JTAG (manuf 0x4BF, id 0x506, rev 0x01, class 0x0)
bcma: bus0: Core 13 found: Denali DDR2/DDR3 memory controller (manuf 0x4BF, id 0x507, rev 0x01, class 0x0)
bcma: bus0: Core 14 found: ROM (manuf 0x4BF, id 0x508, rev 0x01, class 0x0)
bcma: bus0: Core 15 found: NAND flash controller (manuf 0x4BF, id 0x509, rev 0x01, class 0x0)
bcma: bus0: Core 16 found: SPI flash controller (manuf 0x4BF, id 0x50A, rev 0x01, class 0x0)

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
</feed>
