13 Sep, 2019

1 commit


03 Sep, 2019

2 commits

  • An earlier commit re-worked the setting of the bitmask and is now
    assigning v with some bit flags rather than bitwise or-ing them
    into v, consequently the earlier bit-settings of v are being lost.
    Fix this by replacing an assignment with the bitwise or instead.

    Addresses-Coverity: ("Unused value")
    Fixes: 2be25cac8402 ("bcma: add constants for PCI and use them")
    Signed-off-by: Colin Ian King
    Signed-off-by: Kalle Valo

    Colin Ian King
     
  • drivers/bcma/driver_mips.c:70:18: warning:
    ipsflag_irq_shift defined but not used [-Wunused-const-variable=]
    drivers/bcma/driver_mips.c:62:18: warning:
    ipsflag_irq_mask defined but not used [-Wunused-const-variable=]

    They are never used, so can be removed.

    Reported-by: Hulk Robot
    Signed-off-by: YueHaibing
    Signed-off-by: Kalle Valo

    YueHaibing
     

06 Aug, 2019

1 commit


10 Jan, 2019

2 commits


18 Jul, 2018

1 commit

  • This allows us to increase compile-test coverage without having to build
    a kernel for MIPS. That's particularly interesting for subsystem
    maintainers that want to test as many drivers as possible in a single
    build.

    We also add a dependency on HAS_IOMEM in BCMA_HOST_SOC to make sure the
    driver is not selected when the arch does not implement IO accessors.

    Signed-off-by: Boris Brezillon
    Acked-by: Kalle Valo
    Signed-off-by: Miquel Raynal

    Boris Brezillon
     

05 Jun, 2018

1 commit

  • Pull dma-mapping updates from Christoph Hellwig:

    - replace the force_dma flag with a dma_configure bus method. (Nipun
    Gupta, although one patch is іncorrectly attributed to me due to a
    git rebase bug)

    - use GFP_DMA32 more agressively in dma-direct. (Takashi Iwai)

    - remove PCI_DMA_BUS_IS_PHYS and rely on the dma-mapping API to do the
    right thing for bounce buffering.

    - move dma-debug initialization to common code, and apply a few
    cleanups to the dma-debug code.

    - cleanup the Kconfig mess around swiotlb selection

    - swiotlb comment fixup (Yisheng Xie)

    - a trivial swiotlb fix. (Dan Carpenter)

    - support swiotlb on RISC-V. (based on a patch from Palmer Dabbelt)

    - add a new generic dma-noncoherent dma_map_ops implementation and use
    it for arc, c6x and nds32.

    - improve scatterlist validity checking in dma-debug. (Robin Murphy)

    - add a struct device quirk to limit the dma-mask to 32-bit due to
    bridge/system issues, and switch x86 to use it instead of a local
    hack for VIA bridges.

    - handle devices without a dma_mask more gracefully in the dma-direct
    code.

    * tag 'dma-mapping-4.18' of git://git.infradead.org/users/hch/dma-mapping: (48 commits)
    dma-direct: don't crash on device without dma_mask
    nds32: use generic dma_noncoherent_ops
    nds32: implement the unmap_sg DMA operation
    nds32: consolidate DMA cache maintainance routines
    x86/pci-dma: switch the VIA 32-bit DMA quirk to use the struct device flag
    x86/pci-dma: remove the explicit nodac and allowdac option
    x86/pci-dma: remove the experimental forcesac boot option
    Documentation/x86: remove a stray reference to pci-nommu.c
    core, dma-direct: add a flag 32-bit dma limits
    dma-mapping: remove unused gfp_t parameter to arch_dma_alloc_attrs
    dma-debug: check scatterlist segments
    c6x: use generic dma_noncoherent_ops
    arc: use generic dma_noncoherent_ops
    arc: fix arc_dma_{map,unmap}_page
    arc: fix arc_dma_sync_sg_for_{cpu,device}
    arc: simplify arc_dma_sync_single_for_{cpu,device}
    dma-mapping: provide a generic dma-noncoherent implementation
    dma-mapping: simplify Kconfig dependencies
    riscv: add swiotlb support
    riscv: only enable ZONE_DMA32 for 64-bit
    ...

    Linus Torvalds
     

12 May, 2018

1 commit

  • Used buffer wasn't big enough to hold whole strings. Example output of
    this function is:
    [ 0.180892] bcma: bus0: core 0x0800, irq: 2(S)* 3 4 5 6 D I
    [ 0.180948] bcma: bus0: core 0x0812, irq: 2(S) 3* 4 5 6 D I
    [ 0.180998] bcma: bus0: core 0x082d, irq: 2(S) 3 4* 5 6 D I
    [ 0.181046] bcma: bus0: core 0x082c, irq: 2(S) 3 4 5 6 D I*
    which means we need to store up to 24 chars.

    Fixes: 758f7e06063a8 ("bcma: Use bcma_debug and not pr_cont in MIPS driver")
    Signed-off-by: Rafał Miłecki
    Cc: stable@vger.kernel.org # v4.15+
    Signed-off-by: Kalle Valo

    Rafał Miłecki
     

03 May, 2018

1 commit

  • With each bus implementing its own DMA configuration callback, there is no
    need for bus to explicitly set the force_dma flag. Modify the
    of_dma_configure function to accept an input parameter which specifies if
    implicit DMA configuration is required when it is not described by the
    firmware.

    Signed-off-by: Nipun Gupta
    Acked-by: Bjorn Helgaas # PCI parts
    Reviewed-by: Rob Herring
    [hch: tweaked the changelog a bit]
    Signed-off-by: Christoph Hellwig

    Christoph Hellwig
     

14 Mar, 2018

1 commit

  • Attempting to build bcma.ko with BCMA_DRIVER_PCI_HOSTMODE=y results in
    a build error due to use of symbols not exported from vmlinux:

    ERROR: "pcibios_enable_device" [drivers/bcma/bcma.ko] undefined!
    ERROR: "register_pci_controller" [drivers/bcma/bcma.ko] undefined!
    make[1]: *** [scripts/Makefile.modpost:92: __modpost] Error 1

    To prevent this, don't allow the host mode feature to be built if
    CONFIG_BCMA=m

    Signed-off-by: Matt Redfearn
    Signed-off-by: Kalle Valo

    Matt Redfearn
     

28 Feb, 2018

1 commit

  • In this laptop we have the following PCI device:
    02:00.0 Network controller [0280]: Broadcom Limited BCM43142 802.11b/g/n [14e4:4365] (rev 01)
    Subsystem: Hewlett-Packard Company BCM43142 802.11b/g/n [103c:804a]
    [...]
    Region 0: Memory at 91000000 (64-bit, non-prefetchable) [size=32K]
    [...]

    With this patch, we can now see its WiFi chip:
    bcma: bus0: Found chip with id 43142, rev 0x01 and package 0x08
    bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x28, class 0x0)
    bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x21, class 0x0)
    bcma: bus0: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x16, class 0x0)
    bcma: bus0: Core 3 found: UNKNOWN (manuf 0x43B, id 0x368, rev 0x00, class 0x0)
    bcma: bus0: Found rev 15 PMU (capabilities 0x518C5E0F)
    bcma: bus0: SPROM offset 0x840
    bcma: bus0: Found SPROM revision 10
    bcma: bus0: Workarounds unknown or not needed for device 0xA886
    bcma: bus0: Bus registered

    But it not yet supported by brcmsmac so it won't work for now:
    brcmsmac bcma0:1: brcms_b_attach wl0: vendor 0x14e4 device 0x4365
    brcmsmac: unknown device id 4365

    Signed-off-by: Denis 'GNUtoo' Carikli
    Signed-off-by: Kalle Valo

    Denis 'GNUtoo' Carikli
     

27 Feb, 2018

1 commit

  • After checking all possible call chains to bcma_pmu_resources_init() here,
    my tool finds that this function is never called in atomic context,
    namely never in an interrupt handler or holding a spinlock.
    Thus mdelay can be replaced with usleep_range to avoid busy wait.

    This is found by a static analysis tool named DCNS written by myself.

    Signed-off-by: Jia-Ju Bai
    Acked-by: Larry Finger
    Signed-off-by: Kalle Valo

    Jia-Ju Bai
     

20 Jan, 2018

1 commit


17 Jan, 2018

1 commit

  • Mips builds with BCMA host mode enabled fail in mainline and -next
    with:

    In file included from include/linux/bcma/bcma.h:10:0,
    from drivers/bcma/bcma_private.h:9,
    from drivers/bcma/main.c:8:
    include/linux/bcma/bcma_driver_pci.h:218:24: error:
    field 'pci_controller' has incomplete type

    Bisect points to commit d41e6858ba58c ("MIPS: Kconfig: Set default MIPS
    system type as generic") as the culprit. Analysis shows that the commmit
    changes PCI configuration and enables PCI_DRIVERS_GENERIC. This in turn
    disables PCI_DRIVERS_LEGACY. 'struct pci_controller' is, however, only
    defined if PCI_DRIVERS_LEGACY is enabled.

    Ultimately that means that BCMA_DRIVER_PCI_HOSTMODE depends on
    PCI_DRIVERS_LEGACY. Add the missing dependency.

    Fixes: d41e6858ba58c ("MIPS: Kconfig: Set default MIPS system type as ...")
    Cc: Matt Redfearn
    Cc: James Hogan
    Signed-off-by: Guenter Roeck
    Reviewed-by: James Hogan
    Signed-off-by: Kalle Valo

    Guenter Roeck
     

07 Dec, 2017

1 commit


16 Nov, 2017

1 commit

  • Pull networking updates from David Miller:
    "Highlights:

    1) Maintain the TCP retransmit queue using an rbtree, with 1GB
    windows at 100Gb this really has become necessary. From Eric
    Dumazet.

    2) Multi-program support for cgroup+bpf, from Alexei Starovoitov.

    3) Perform broadcast flooding in hardware in mv88e6xxx, from Andrew
    Lunn.

    4) Add meter action support to openvswitch, from Andy Zhou.

    5) Add a data meta pointer for BPF accessible packets, from Daniel
    Borkmann.

    6) Namespace-ify almost all TCP sysctl knobs, from Eric Dumazet.

    7) Turn on Broadcom Tags in b53 driver, from Florian Fainelli.

    8) More work to move the RTNL mutex down, from Florian Westphal.

    9) Add 'bpftool' utility, to help with bpf program introspection.
    From Jakub Kicinski.

    10) Add new 'cpumap' type for XDP_REDIRECT action, from Jesper
    Dangaard Brouer.

    11) Support 'blocks' of transformations in the packet scheduler which
    can span multiple network devices, from Jiri Pirko.

    12) TC flower offload support in cxgb4, from Kumar Sanghvi.

    13) Priority based stream scheduler for SCTP, from Marcelo Ricardo
    Leitner.

    14) Thunderbolt networking driver, from Amir Levy and Mika Westerberg.

    15) Add RED qdisc offloadability, and use it in mlxsw driver. From
    Nogah Frankel.

    16) eBPF based device controller for cgroup v2, from Roman Gushchin.

    17) Add some fundamental tracepoints for TCP, from Song Liu.

    18) Remove garbage collection from ipv6 route layer, this is a
    significant accomplishment. From Wei Wang.

    19) Add multicast route offload support to mlxsw, from Yotam Gigi"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2177 commits)
    tcp: highest_sack fix
    geneve: fix fill_info when link down
    bpf: fix lockdep splat
    net: cdc_ncm: GetNtbFormat endian fix
    openvswitch: meter: fix NULL pointer dereference in ovs_meter_cmd_reply_start
    netem: remove unnecessary 64 bit modulus
    netem: use 64 bit divide by rate
    tcp: Namespace-ify sysctl_tcp_default_congestion_control
    net: Protect iterations over net::fib_notifier_ops in fib_seq_sum()
    ipv6: set all.accept_dad to 0 by default
    uapi: fix linux/tls.h userspace compilation error
    usbnet: ipheth: prevent TX queue timeouts when device not ready
    vhost_net: conditionally enable tx polling
    uapi: fix linux/rxrpc.h userspace compilation errors
    net: stmmac: fix LPI transitioning for dwmac4
    atm: horizon: Fix irq release error
    net-sysfs: trigger netlink notification on ifalias change via sysfs
    openvswitch: Using kfree_rcu() to simplify the code
    openvswitch: Make local function ovs_nsh_key_attr_size() static
    openvswitch: Fix return value check in ovs_meter_cmd_features()
    ...

    Linus Torvalds
     

15 Nov, 2017

1 commit

  • Pull GPIO updates from Linus Walleij:
    "This is the bulk of GPIO changes for the v4.15 kernel cycle:

    Core:

    - Fix the semantics of raw GPIO to actually be raw. No inversion
    semantics as before, but also no open draining, and allow the raw
    operations to affect lines used for interrupts as the caller
    supposedly knows what they are doing if they are getting the big
    hammer.

    - Rewrote the __inner_function() notation calls to names that make
    more sense. I just find this kind of code disturbing.

    - Drop the .irq_base() field from the gpiochip since now all IRQs are
    mapped dynamically. This is nice.

    - Support for .get_multiple() in the core driver API. This allows us
    to read several GPIO lines with a single register read. This has
    high value for some usecases: it can be used to create
    oscilloscopes and signal analyzers and other things that rely on
    reading several lines at exactly the same instant. Also a generally
    nice optimization. This uses the new assign_bit() macro from the
    bitops lib that was ACKed by Andrew Morton and is implemented for
    two drivers, one of them being the generic MMIO driver so everyone
    using that will be able to benefit from this.

    - Do not allow requests of Open Drain and Open Source setting of a
    GPIO line simultaneously. If the hardware actually supports
    enabling both at the same time the electrical result would be
    disastrous.

    - A new interrupt chip core helper. This will be helpful to deal with
    "banked" GPIOs, which means GPIO controllers with several logical
    blocks of GPIO inside them. This is several gpiochips per device in
    the device model, in contrast to the case when there is a 1-to-1
    relationship between a device and a gpiochip.

    New drivers:

    - Maxim MAX3191x industrial serializer, a very interesting piece of
    professional I/O hardware.

    - Uniphier GPIO driver. This is the GPIO block from the recent
    Socionext (ex Fujitsu and Panasonic) platform.

    - Tegra 186 driver. This is based on the new banked GPIO
    infrastructure.

    Other improvements:

    - Some documentation improvements.

    - Wakeup support for the DesignWare DWAPB GPIO controller.

    - Reset line support on the DesignWare DWAPB GPIO controller.

    - Several non-critical bug fixes and improvements for the Broadcom
    BRCMSTB driver.

    - Misc non-critical bug fixes like exotic errorpaths, removal of dead
    code etc.

    - Explicit comments on fall-through switch() statements"

    * tag 'gpio-v4.15-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (65 commits)
    gpio: tegra186: Remove tegra186_gpio_lock_class
    gpio: rcar: Add r8a77995 (R-Car D3) support
    pinctrl: bcm2835: Fix some merge fallout
    gpio: Fix undefined lock_dep_class
    gpio: Automatically add lockdep keys
    gpio: Introduce struct gpio_irq_chip.first
    gpio: Disambiguate struct gpio_irq_chip.nested
    gpio: Add Tegra186 support
    gpio: Export gpiochip_irq_{map,unmap}()
    gpio: Implement tighter IRQ chip integration
    gpio: Move lock_key into struct gpio_irq_chip
    gpio: Move irq_valid_mask into struct gpio_irq_chip
    gpio: Move irq_nested into struct gpio_irq_chip
    gpio: Move irq_chained_parent to struct gpio_irq_chip
    gpio: Move irq_default_type to struct gpio_irq_chip
    gpio: Move irq_handler to struct gpio_irq_chip
    gpio: Move irqdomain into struct gpio_irq_chip
    gpio: Move irqchip into struct gpio_irq_chip
    gpio: Introduce struct gpio_irq_chip
    pinctrl: armada-37xx: remove unused variable
    ...

    Linus Torvalds
     

08 Nov, 2017

1 commit


04 Nov, 2017

2 commits


02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

27 Oct, 2017

1 commit

  • Commit 66cc04424960 ("bcma: use bcma_debug and pr_cont in MIPS driver")
    converted a printk(KERN_DEBUG to bcma_debug.

    bcma_debug is guarded by a #define DEBUG via pr_debug.

    This means that the bcma_debug will generally not be emitted
    but any pr_cont following the bcma_debug will be emitted.

    Correct this by removing the uses of pr_cont by using a temporary.

    Signed-off-by: Joe Perches
    Signed-off-by: Kalle Valo

    Joe Perches
     

17 Oct, 2017

1 commit


13 Oct, 2017

1 commit

  • Use "if BCMA"/"endif" around all Kconfig symbols so that they are
    kept together in *config menus instead of showing up in unexpected
    places. Also remove "depends on BCMA" since this is handled by the
    "if BCMA" addition.

    Tested with ARCH={x86_64,MIPS} using make {n,menu,g,x}config.

    Signed-off-by: Randy Dunlap
    Cc: Rafał Miłecki
    Signed-off-by: Kalle Valo

    Randy Dunlap
     

08 Aug, 2017

1 commit


27 Jul, 2017

1 commit


21 Mar, 2017

3 commits


08 Mar, 2017

1 commit


03 Feb, 2017

1 commit


31 Jan, 2017

2 commits


17 Jan, 2017

1 commit

  • This reverts commit 4c81acab3816 ("bcma: init serial console directly
    from ChipCommon code") as it broke IRQ assignment. Getting IRQ with
    bcma_core_irq helper on SoC requires MIPS core to be set. It happens
    *after* ChipCommon initialization so we can't do this so early.

    This fixes a user reported regression. It wasn't critical as serial was
    still somehow working but lack of IRQs was making in unreliable.

    Fixes: 4c81acab3816 ("bcma: init serial console directly from ChipCommon code")
    Reported-by: Felix Fietkau
    Cc: stable@vger.kernel.org # 4.6+
    Signed-off-by: Rafał Miłecki
    Signed-off-by: Kalle Valo

    Rafał Miłecki
     

29 Nov, 2016

1 commit

  • This is what is in the laptop:
    01:00.0 Network controller [0280]: Broadcom Limited BCM43142 802.11b/g/n [14e4:4365] (rev 01)
    Subsystem: Dell Device [1028:0018]
    Flags: bus master, fast devsel, latency 0, IRQ 18
    Memory at b0400000 (64-bit, non-prefetchable) [size=32K]
    Capabilities: [40] Power Management version 3
    Capabilities: [58] Vendor Specific Information: Len=78
    Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [d0] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [13c] Virtual Channel
    Capabilities: [160] Device Serial Number 00-00-9a-ff-ff-f3-40-b8
    Capabilities: [16c] Power Budgeting

    With the patch, I can see:
    bcma: bus0: Found chip with id 43142, rev 0x01 and package 0x08
    bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x28, class 0x0)
    bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x21, class 0x0)
    bcma: bus0: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x16, class 0x0)
    bcma: bus0: Core 3 found: UNKNOWN (manuf 0x43B, id 0x368, rev 0x00, class 0x0)
    bcma: bus0: Bus registered

    The wifi is not currently supported by brcmsmac yet:
    brcmsmac bcma1:1: mfg 4bf core 812 rev 33 class 0 irq 18
    brcmsmac: unknown device id 4365

    So don't expect a working wifi from this patch :).

    Signed-off-by: Jiri Slaby
    Cc: Rafał Miłecki
    Cc:
    Signed-off-by: Kalle Valo

    Jiri Slaby
     

09 Sep, 2016

1 commit

  • While fixing another bug, I noticed that bcma manually sets up
    a dma_mask pointer for its child devices. We have a generic
    helper for that now, which should be able to cope better with
    any variations that might be needed to deal with cache coherency,
    unusual DMA address offsets, iommus, or limited DMA masks, none
    of which are currently handled here.

    This changes the core to use the of_dma_configure(), like
    we do for platform devices that are probed directly from
    DT.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Kalle Valo

    Arnd Bergmann
     

03 Sep, 2016

1 commit

  • BCM53573 seems to be the first series of Northstar family with wireless
    on the chip. The base models are BCM53573-s (A0, A1) and there is also
    BCM47189B0 which seems to be some small modification.

    The only problem with these chipsets seems to be watchdog. It's totally
    unavailable on 53573A0 / 53573A1 and preferable PMU watchdog is broken
    on 53573B0 / 53573B1.

    Signed-off-by: Rafał Miłecki
    Signed-off-by: Kalle Valo

    Rafał Miłecki
     

26 Jul, 2016

1 commit

  • …ub/scm/linux/kernel/git/kvalo/wireless-drivers-next

    Kalle Valo says:

    ====================
    pull-request: wireless-drivers-next 2016-07-22

    I'm sick so I have to keep this short, but here's the last pull request
    to net-next. This time there's a trivial conflict with mtd tree:

    http://lkml.kernel.org/g/20160720123133.44dab209@canb.auug.org.au

    We concluded with Brian (CCed) that it's best that we ask Linus to fix
    this. The patches have been in linux-next for a couple of days. This
    time I haven't done any merge tests so I don't know if there are any
    other conflicts etc.

    Please let me know if there are any problems.

    wireless-drivers-next patches for 4.8

    Major changes:

    wl18xx

    * add initial mesh support

    bcma

    * serial flash support on non-MIPS SoCs

    ath10k

    * enable support for QCA9888
    * disable wake_tx_queue() mac80211 op for older devices to workaround
    throughput regression

    ath9k

    * implement temperature compensation support for AR9003+
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     

20 Jul, 2016

1 commit