13 Mar, 2015

1 commit


02 Mar, 2015

2 commits


29 Jan, 2015

2 commits


27 Sep, 2013

1 commit

  • 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] [] dump_stack+0x4f/0x84
    [ 13.210826] [] __schedule_bug+0x43/0x51
    [ 13.210837] [] __schedule+0x6e5/0x810
    [ 13.210845] [] schedule+0x24/0x70
    [ 13.210855] [] schedule_hrtimeout_range_clock+0x10c/0x150
    [ 13.210867] [] ? update_rmtp+0x60/0x60
    [ 13.210877] [] ? hrtimer_start_range_ns+0xf/0x20
    [ 13.210887] [] schedule_hrtimeout_range+0xe/0x10
    [ 13.210897] [] usleep_range+0x3b/0x40
    [ 13.210910] [] bcma_pcie_mdio_set_phy.isra.3+0x4f/0x80 [bcma]
    [ 13.210921] [] bcma_pcie_mdio_write.isra.4+0xbf/0xd0 [bcma]
    [ 13.210932] [] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x18/0x30 [bcma]
    [ 13.210942] [] bcma_core_pci_power_save+0x3e/0x80 [bcma]
    [ 13.210953] [] bcma_core_pci_up+0x2d/0x60 [bcma]
    [ 13.210975] [] brcms_c_up+0xfc/0x430 [brcmsmac]
    [ 13.210989] [] brcms_up+0x1d/0x20 [brcmsmac]
    [ 13.211003] [] brcms_ops_start+0x298/0x340 [brcmsmac]
    [ 13.211020] [] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
    [ 13.211030] [] ? packet_notifier+0xad/0x1d0
    [ 13.211064] [] ieee80211_do_open+0x325/0xf80
    [ 13.211076] [] ? __raw_notifier_call_chain+0x9/0x10
    [ 13.211086] [] ieee80211_open+0x71/0x80
    [ 13.211101] [] __dev_open+0x87/0xe0
    [ 13.211109] [] __dev_change_flags+0x9c/0x180
    [ 13.211117] [] dev_change_flags+0x23/0x70
    [ 13.211127] [] devinet_ioctl+0x5b8/0x6a0
    [ 13.211136] [] inet_ioctl+0x75/0x90
    [ 13.211147] [] sock_do_ioctl+0x2b/0x70
    [ 13.211155] [] sock_ioctl+0x71/0x2a0
    [ 13.211169] [] do_vfs_ioctl+0x87/0x520
    [ 13.211180] [] ? ____fput+0x9/0x10
    [ 13.211198] [] ? task_work_run+0x9c/0xd0
    [ 13.211202] [] SyS_ioctl+0x91/0xb0
    [ 13.211208] [] 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
    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
    Cc: Arend van Spriel
    Signed-off-by: John W. Linville

    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: # 3.11.x
    Cc: Tod Jackson
    Cc: Joe Perches
    Cc: Rafal Milecki
    Cc: Hauke Mehrtens
    Reviewed-by: Hante Meuleman
    Signed-off-by: Arend van Spriel
    Signed-off-by: John W. Linville

    Arend van Spriel
     

27 Aug, 2013

3 commits


04 Jan, 2013

1 commit

  • CONFIG_HOTPLUG is going away as an option. As a result, the __dev*
    markings need to be removed.

    This change removes the use of __devinit, __devexit_p, and __devexit
    from these drivers.

    Based on patches originally written by Bill Pemberton, but redone by me
    in order to handle some of the coding style issues better, by hand.

    Cc: Bill Pemberton
    Cc: "Rafał Miłecki"
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

29 Sep, 2012

1 commit


09 Jun, 2012

1 commit

  • pc could be null if hosttype != BCMA_HOSTTYPE_PCI.
    If we are on a device without a pci core this function is called with
    pc = null by b43 and brcmsmac. If the host type is PCI we have a pci
    core as well and pc can not be null.

    Signed-off-by: Hauke Mehrtens
    Signed-off-by: John W. Linville

    Hauke Mehrtens
     

17 May, 2012

3 commits


07 Feb, 2012

4 commits


01 Nov, 2011

1 commit

  • Fix in advance, or we will get things like this:

    drivers/bcma/core.c:20: warning: data definition has no type or storage class
    drivers/bcma/core.c:20: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
    drivers/bcma/core.c:20: warning: parameter names (without types) in function declaration

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

10 Aug, 2011

1 commit


09 Aug, 2011

2 commits

  • This patch adds support for using bcma on a Broadcom SoC as the system
    bus. An SoC like the bcm4716 could register this bus and use it to
    searches for the bcma cores and register the devices on this bus.

    BCMA_HOSTTYPE_NONE was intended for SoCs at first but BCMA_HOSTTYPE_SOC
    is a better name.

    Acked-by: Rafał Miłecki
    Signed-off-by: Hauke Mehrtens
    Acked-by: Ralf Baechle
    Signed-off-by: John W. Linville

    Hauke Mehrtens
     
  • The chip common and mips core have to be setup early in the boot
    process to get the cpu clock.
    bcma_bus_early_register() gets pointers to some space to store the core
    data and searches for the chip common and mips core and initializes
    chip common. After that was done and the kernel is out of early boot we
    just have to run bcma_bus_register() and it will search for the other
    cores, initialize and register them.
    The cores are getting the same numbers as before.

    Acked-by: Rafał Miłecki
    Signed-off-by: Hauke Mehrtens
    Acked-by: Ralf Baechle
    Signed-off-by: John W. Linville

    Hauke Mehrtens
     

26 Jul, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    fs: Merge split strings
    treewide: fix potentially dangerous trailing ';' in #defined values/expressions
    uwb: Fix misspelling of neighbourhood in comment
    net, netfilter: Remove redundant goto in ebt_ulog_packet
    trivial: don't touch files that are removed in the staging tree
    lib/vsprintf: replace link to Draft by final RFC number
    doc: Kconfig: `to be' -> `be'
    doc: Kconfig: Typo: square -> squared
    doc: Konfig: Documentation/power/{pm => apm-acpi}.txt
    drivers/net: static should be at beginning of declaration
    drivers/media: static should be at beginning of declaration
    drivers/i2c: static should be at beginning of declaration
    XTENSA: static should be at beginning of declaration
    SH: static should be at beginning of declaration
    MIPS: static should be at beginning of declaration
    ARM: static should be at beginning of declaration
    rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check
    Update my e-mail address
    PCIe ASPM: forcedly -> forcibly
    gma500: push through device driver tree
    ...

    Fix up trivial conflicts:
    - arch/arm/mach-ep93xx/dma-m2p.c (deleted)
    - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)
    - drivers/net/r8169.c (just context changes)

    Linus Torvalds
     

23 Jul, 2011

1 commit


08 Jul, 2011

1 commit


07 Jul, 2011

1 commit


21 Jun, 2011

1 commit

  • Function managing IRQs is needed for external drivers like b43.
    On the other side we do not expect writing any hosts drivers outside of
    bcma, so this is safe to do not export functions related to this.

    Signed-off-by: Rafał Miłecki
    Signed-off-by: John W. Linville

    Rafał Miłecki
     

02 Jun, 2011

1 commit


13 May, 2011

1 commit


11 May, 2011

1 commit

  • Broadcom has released cards based on a new AMBA-based bus type. From a
    programming point of view, this new bus type differs from AMBA and does
    not use AMBA common registers. It also differs enough from SSB. We
    decided that a new bus driver is needed to keep the code clean.

    In its current form, the driver detects devices present on the bus and
    registers them in the system. It allows registering BCMA drivers for
    specified bus devices and provides them basic operations. The bus driver
    itself includes two important bus managing drivers: ChipCommon core
    driver and PCI(c) core driver. They are early used to allow correct
    initialization.

    Currently code is limited to supporting buses on PCI(e) devices, however
    the driver is designed to be used also on other hosts. The host
    abstraction layer is implemented and already used for PCI(e).

    Support for PCI(e) hosts is working and seems to be stable (access to
    80211 core was tested successfully on a few devices). We can still
    optimize it by using some fixed windows, but this can be done later
    without affecting any external code. Windows are just ranges in MMIO
    used for accessing cores on the bus.

    Cc: Greg KH
    Cc: Michael Büsch
    Cc: Larry Finger
    Cc: George Kashperko
    Cc: Arend van Spriel
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: Russell King
    Cc: Arnd Bergmann
    Cc: Andy Botting
    Cc: linuxdriverproject
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Rafał Miłecki
    Signed-off-by: John W. Linville

    Rafał Miłecki