09 Jan, 2017

1 commit

  • commit 8052d7245b6089992343c80b38b14dbbd8354651 upstream.

    When there is a CRC error in the SPROM read from the device, the code
    attempts to handle a fallback SPROM. When this also fails, the driver
    returns zero rather than an error code.

    Signed-off-by: Larry Finger
    Signed-off-by: Kalle Valo
    Signed-off-by: Greg Kroah-Hartman

    Larry Finger
     

06 Jul, 2016

1 commit


26 Apr, 2016

1 commit


26 Feb, 2016

1 commit

  • Drivers that use the SSB sprom functionality typically 'select SSB_SPROM'
    from Kconfig, but CONFIG_SSB_HOST_SOC misses this, which results in
    a build failure unless at least one of the other drivers that selects
    it is enabled:

    drivers/built-in.o: In function `ssb_host_soc_get_invariants':
    (.text+0x459494): undefined reference to `ssb_fill_sprom_with_fallback'

    This adds the same select statement that is used elsewhere.

    Signed-off-by: Arnd Bergmann
    Fixes: 541c9a84cd85 ("ssb: pick SoC invariants code from MIPS BCM47xx arch")
    Signed-off-by: Kalle Valo

    Arnd Bergmann
     

20 Jan, 2016

1 commit

  • The SoC variant of the ssb code is now optional like the other
    ones, which means we can build the framwork without any
    front-end, but that results in a warning:

    drivers/ssb/main.c:616:12: warning: 'ssb_bus_register' defined but not used [-Wunused-function]

    This annotates the ssb_bus_register function as __maybe_unused to
    shut up the warning. A configuration like this will not work on
    any hardware of course, but we still want this to silently build
    without warnings if the configuration is allowed in the first
    place.

    Signed-off-by: Arnd Bergmann
    Fixes: 845da6e58e19 ("ssb: add Kconfig entry for compiling SoC related code")
    Acked-by: Michael Buesch
    Signed-off-by: Kalle Valo

    Arnd Bergmann
     

16 Dec, 2015

1 commit

  • There is code in ssb fetching "invariants" that is basically a set of
    board specific data. Every host requires its own implementation of
    reading function. In ssb we have support for PCI, PCMCIA & SDIO.
    For some (historical?) reason code reading "invariants" for SoC was
    placed in arch code and provided by a callback. This is not needed
    nowadays, so lets move that into ssb. This way we keep all "invariants"
    functions in a single module making code cleaner.

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

    Rafał Miłecki
     

29 Oct, 2015

3 commits

  • This allows saving a little of space when not using ssb on Broadcom SoC.

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

    Rafał Miłecki
     
  • This cleans main.c a bit and will allow us to compile SoC related code
    conditionally in the future.

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

    Rafał Miłecki
     
  • ssb bus can be found on various "host" devices like PCI/PCMCIA/SDIO.
    Every ssb bus contains cores AKA devices.
    The main idea is to have ssb driver scan/initialize bus and register
    ready-to-use cores. This way ssb drivers can operate on a single core
    mostly ignoring underlaying details.

    For some reason PCMCIA support was split between ssb and b43. We got
    PCMCIA host device probing in b43, then bus scanning in ssb and then
    wireless core probing back in b43. The truth is it's very unlikely we
    will ever see PCMCIA ssb device with no 802.11 core but I still don't
    see any advantage of the current architecture.

    With proposed change we get the same functionality with a simpler
    architecture, less Kconfig symbols, one killed EXPORT and hopefully
    cleaner b43. Since b43 supports both: ssb & bcma I prefer to keep ssb
    specific code in ssb driver.

    This mostly moves code from b43's pcmcia.c to bridge_pcmcia_80211.c. We
    already use similar solution with b43_pci_bridge.c. I didn't use "b43"
    in name of this new file as in theory any driver can operate on wireless
    core.

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

    Rafał Miłecki
     

29 Sep, 2015

4 commits


09 Jun, 2015

1 commit

  • Dan Carpenter reported missing brackets which resulted in reading a
    wrong crystalfreq value. I also noticed that the result of this
    function is ignored.

    Reported-By: Dan Carpenter
    Signed-off-by: Hauke Mehrtens
    Signed-off-by: Michael Buesch
    Cc: davem@davemloft.net
    Cc: netdev@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/10536/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     

20 May, 2015

1 commit


18 Apr, 2015

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for MIPS for Linux 4.1. Most
    noteworthy:

    - Add more Octeon-optimized crypto functions
    - Octeon crypto preemption and locking fixes
    - Little endian support for Octeon
    - Use correct CSR to soft reset Octeons
    - Support LEDs on the Octeon-based DSR-1000N
    - Fix PCI interrupt mapping for the Octeon-based DSR-1000N
    - Mark prom_free_prom_memory() as __init for a number of systems
    - Support for Imagination's Pistachio SOC. This includes arch and
    CLK bits. I'd like to merge pinctrl bits later
    - Improve parallelism of csum_partial for certain pipelines
    - Organize DTB files in subdirs like other architectures
    - Implement read_sched_clock for all MIPS platforms other than
    Octeon
    - Massive series of 38 fixes and cleanups for the FPU emulator /
    kernel
    - Further FPU remulator work to support new features. This sits on a
    separate branch which also has been pulled into the 4.1 KVM branch
    - Clean up and fixes for the SEAD3 eval board; remove unused file
    - Various updates for Netlogic platforms
    - A number of small updates for Loongson 3 platforms
    - Increase the memory limit for ATH79 platforms to 256MB
    - A fair number of fixes and updates for BCM47xx platforms
    - Finish the implementation of XPA support
    - MIPS FDC support. No, not floppy controller but Fast Debug Channel :)
    - Detect the R16000 used in SGI legacy platforms
    - Fix Kconfig dependencies for the SSB bus support"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (265 commits)
    MIPS: Makefile: Fix MIPS ASE detection code
    MIPS: asm: elf: Set O32 default FPU flags
    MIPS: BCM47XX: Fix detecting Microsoft MN-700 & Asus WL500G
    MIPS: Kconfig: Disable SMP/CPS for 64-bit
    MIPS: Hibernate: flush TLB entries earlier
    MIPS: smp-cps: cpu_set FPU mask if FPU present
    MIPS: lose_fpu(): Disable FPU when MSA enabled
    MIPS: ralink: add missing symbol for RALINK_ILL_ACC
    MIPS: ralink: Fix bad config symbol in PCI makefile.
    SSB: fix Kconfig dependencies
    MIPS: Malta: Detect and fix bad memsize values
    Revert "MIPS: Avoid pipeline stalls on some MIPS32R2 cores."
    MIPS: Octeon: Delete override of cpu_has_mips_r2_exec_hazard.
    MIPS: Fix cpu_has_mips_r2_exec_hazard.
    MIPS: kernel: entry.S: Set correct ISA level for mips_ihb
    MIPS: asm: spinlock: Fix addiu instruction for R10000_LLSC_WAR case
    MIPS: r4kcache: Use correct base register for MIPS R6 cache flushes
    MIPS: Kconfig: Fix typo for the r2-to-r6 emulator kernel parameter
    MIPS: unaligned: Fix regular load/store instruction emulation for EVA
    MIPS: unaligned: Surround load/store macros in do {} while statements
    ...

    Linus Torvalds
     

13 Apr, 2015

1 commit


10 Apr, 2015

1 commit

  • The commit 21400f252a97 ("MIPS: BCM47XX: Make ssb init NVRAM instead of
    bcm47xx polling it") introduces a dependency to SSB_SFLASH but did not
    add it to the Kconfig.

    drivers/ssb/driver_mipscore.c:216:36: error: 'struct ssb_mipscore' has no
    member named 'sflash'
    struct ssb_sflash *sflash = &mcore->sflash;
    ^
    drivers/ssb/driver_mipscore.c:249:12: error: dereferencing pointer to
    incomplete type
    if (sflash->present) {
    ^

    Signed-off-by: Adrien Schildknecht
    Cc: m@bues.ch
    Cc: zajec5@gmail.com
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/9598/
    Signed-off-by: Ralf Baechle

    Adrien Schildknecht
     

08 Apr, 2015

1 commit


01 Apr, 2015

1 commit

  • There are two reasons for having this header in the common place:
    1) Simplifying drivers that read NVRAM entries. We will be able to
    safely call bcm47xx_nvram_* functions without #ifdef-s.
    2) Getting NVRAM driver out of MIPS arch code. This is needed to support
    BCM5301X arch which also requires this NVRAM driver. Patch for that
    will follow once we get is reviewed.

    Signed-off-by: Rafał Miłecki
    Acked-by: Hauke Mehrtens
    Cc: linux-mips@linux-mips.org
    Cc: Arnd Bergmann
    Cc: Paul Walmsley
    Cc: linux-soc@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/8619/
    Signed-off-by: Ralf Baechle

    Rafał Miłecki
     

03 Mar, 2015

1 commit

  • When using a BCM4318 in a PCMCIA format, I get a startup message that the
    device uses backplane revision 0xF000000. Next a WARNING is logged. Despite
    the message, the device works fine, This patch silences the warning.

    Cc: Rafał Miłecki
    Signed-off-by: Larry Finger
    Signed-off-by: Kalle Valo

    Larry Finger
     

12 Feb, 2015

1 commit


29 Jan, 2015

1 commit

  • This change fixes below sparse error:
    drivers/ssb/main.c:94:16: warning: symbol 'ssb_sdio_func_to_bus'
    was not declared. Should it be static?

    Acked-by: Michael Buesch
    Signed-off-by: Pramod Gurav
    Signed-off-by: Kalle Valo

    Pramod Gurav
     

12 Dec, 2014

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is an unusually large pull request for MIPS - in parts because
    lots of patches missed the 3.18 deadline but primarily because some
    folks opened the flood gates.

    - Retire the MIPS-specific phys_t with the generic phys_addr_t.
    - Improvments for the backtrace code used by oprofile.
    - Better backtraces on SMP systems.
    - Cleanups for the Octeon platform code.
    - Cleanups and fixes for the Loongson platform code.
    - Cleanups and fixes to the firmware library.
    - Switch ATH79 platform to use the firmware library.
    - Grand overhault to the SEAD3 and Malta interrupt code.
    - Move the GIC interrupt code to drivers/irqchip
    - Lots of GIC cleanups and updates to the GIC code to use modern IRQ
    infrastructures and features of the kernel.
    - OF documentation updates for the GIC bindings
    - Move GIC clocksource driver to drivers/clocksource
    - Merge GIC clocksource driver with clockevent driver.
    - Further updates to bring the GIC clocksource driver up to date.
    - R3000 TLB code cleanups
    - Improvments to the Loongson 3 platform code.
    - Convert pr_warning to pr_warn.
    - Merge a bunch of small lantiq and ralink fixes that have been
    staged/lingering inside the openwrt tree for a while.
    - Update archhelp for IP22/IP32
    - Fix a number of issues for Loongson 1B.
    - New clocksource and clockevent driver for Loongson 1B.
    - Further work on clk handling for Loongson 1B.
    - Platform work for Broadcom BMIPS.
    - Error handling cleanups for TurboChannel.
    - Fixes and optimization to the microMIPS support.
    - Option to disable the FTLB.
    - Dump more relevant information on machine check exception
    - Change binfmt to allow arch to examine PT_*PROC headers
    - Support for new style FPU register model in O32
    - VDSO randomization.
    - BCM47xx cleanups
    - BCM47xx reimplement the way the kernel accesses NVRAM information.
    - Random cleanups
    - Add support for ATH25 platforms
    - Remove pointless locking code in some PCI platforms.
    - Some improvments to EVA support
    - Minor Alchemy cleanup"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (185 commits)
    MIPS: Add MFHC0 and MTHC0 instructions to uasm.
    MIPS: Cosmetic cleanups of page table headers.
    MIPS: Add CP0 macros for extended EntryLo registers
    MIPS: Remove now unused definition of phys_t.
    MIPS: Replace use of phys_t with phys_addr_t.
    MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT
    PCMCIA: Alchemy Don't select 64BIT_PHYS_ADDR in Kconfig.
    MIPS: lib: memset: Clean up some MIPS{EL,EB} ifdefery
    MIPS: iomap: Use __mem_{read,write}{b,w,l} for MMIO
    MIPS: fix indentation.
    MAINTAINERS: Add entry for BMIPS multiplatform kernel
    MIPS: Enable VDSO randomization
    MIPS: Remove a temporary hack for debugging cache flushes in SMTC configuration
    MIPS: Remove declaration of obsolete arch_init_clk_ops()
    MIPS: atomic.h: Reformat to fit in 79 columns
    MIPS: Apply `.insn' to fixup labels throughout
    MIPS: Fix microMIPS LL/SC immediate offsets
    MIPS: Kconfig: Only allow 32-bit microMIPS builds
    MIPS: signal.c: Fix an invalid cast in ISA mode bit handling
    MIPS: mm: Only build one microassembler that is suitable
    ...

    Linus Torvalds
     

05 Dec, 2014

1 commit

  • Wake On Lan was not working on laptop DELL Vostro 1500.
    If WOL was turned on, BCM4401 was powered up in suspend mode. LEDs blinked.
    But the laptop could not be woken up with the Magic Packet. The reason for
    that was that PCIE was not enabled as a system wakeup source and
    therefore the host PCI bridge was not powered up in suspend mode.
    PCIE was not enabled in suspend by PM because no child devices were
    registered as wakeup source during suspend process.
    On laptop BCM4401 is connected through the SSB bus, that is connected to the
    PCI-Express bus. SSB and B44 did not use standard PM wakeup functions
    and did not forward wakeup settings to their parents.
    To fix that B44 driver enables PM wakeup and registers new wakeup source
    using device_set_wakeup_enable(). Wakeup is automatically reported to the parent SSB
    bus via power.wakeup_path. SSB bus enables wakeup for the parent PCI bridge, if there is any
    child devices with enabled wakeup functionality. All other steps are
    done by PM core code.

    Signed-off-by: Andrey Skvortsov
    Signed-off-by: Michael Buesch
    Signed-off-by: John W. Linville

    Andrey Skvortsov
     

24 Nov, 2014

1 commit


10 Oct, 2014

1 commit

  • Pull GPIO changes from Linus Walleij:
    "This is the bulk of GPIO changes for the v3.18 development cycle:

    - Increase the default ARCH_NR_GPIO from 256 to 512. This was done
    to avoid having a custom header for the x86
    architecture - GPIO is custom and complicated enough as it is
    already! We want to move to a radix to store the descriptors going
    forward, and finally get rid of this fixed array size altogether.

    - Endgame patching of the gpio_remove() semantics initiated by
    Abdoulaye Berthe. It is not accepted by the system that the
    removal of a GPIO chip fails during eg reboot or shutdown, and
    therefore the return value has now painfully been refactored away.
    For special cases like GPIO expanders on a hot-pluggable bus like
    USB, we may later add some gpiochip_try_remove() call, but for the
    cases we have now, return values are moot.

    - Some incremental refactoring of the gpiolib core and ACPI GPIO
    library for more descriptor usage.

    - Refactor the chained IRQ handler set-up method to handle also
    threaded, nested interrupts and set up the parent IRQ correctly.
    Switch STMPE and TC3589x drivers to use this registration method.

    - Add a .irq_not_threaded flag to the struct gpio_chip, so that also
    GPIO expanders that block but are still not using threaded IRQ
    handlers.

    - New drivers for the ARM64 X-Gene SoC GPIO controller.

    - The syscon GPIO driver has been improved to handle the "DSP GPIO"
    found on the TI Keystone 2 SoC:s.

    - ADNP driver switched to use gpiolib irqchip helpers.

    - Refactor the DWAPB driver to support being instantiated from and
    MFD cell (platform device).

    - Incremental feature improvement in the Zynq, MCP23S08, DWAPB, OMAP,
    Xilinx and Crystalcove drivers.

    - Various minor fixes"

    * tag 'gpio-v3.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (52 commits)
    gpio: pch: Build context save/restore only for PM
    pinctrl: abx500: get rid of unused variable
    gpio: ks8695: fix 'else should follow close brace '}''
    gpio: stmpe: add verbose debug code
    gpio: stmpe: fix up interrupt enable logic
    gpio: staticize xway_stp_init()
    gpio: handle also nested irqchips in the chained handler set-up
    gpio: set parent irq on chained handlers
    gpiolib: irqchip: use irq_find_mapping while removing irqchip
    gpio: crystalcove: support virtual GPIO
    pinctrl: bcm281xx: make Kconfig dependency more strict
    gpio: kona: enable only on BCM_MOBILE or for compile testing
    gpio, bcm-kona, LLVMLinux: Remove use of __initconst
    gpio: Fix ngpio in gpio-xilinx driver
    gpio: dwapb: fix pointer to integer cast
    gpio: xgene: Remove unneeded #ifdef CONFIG_OF guard
    gpio: xgene: Remove unneeded forward declation for struct xgene_gpio
    gpio: xgene: Fix missing spin_lock_init()
    gpio: ks8695: fix switch case indentation
    gpiolib: add irq_not_threaded flag to gpio_chip
    ...

    Linus Torvalds
     

19 Sep, 2014

1 commit


26 Aug, 2014

1 commit


19 Jul, 2014

1 commit


16 Jul, 2014

2 commits


31 Jan, 2014

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "The most notable new addition inside this pull request is the support
    for MIPS's latest and greatest core called "inter/proAptiv". The
    patch series describes this core as follows.

    "The interAptiv is a power-efficient multi-core microprocessor
    for use in system-on-chip (SoC) applications. The interAptiv combines
    a multi-threading pipeline with a coherence manager to deliver improved
    computational throughput and power efficiency. The interAptiv can
    contain one to four MIPS32R3 interAptiv cores, system level
    coherence manager with L2 cache, optional coherent I/O port,
    and optional floating point unit."

    The platform specific patches touch all 3 Broadcom families. It adds
    support for the new Broadcom/Netlogix XLP9xx Soc, building a common
    BCM63XX SMP kernel for all BCM63XX SoCs regardless of core type/count
    and full gpio button/led descriptions for BCM47xx.

    The rest of the series are cleanups and bug fixes that are MIPS
    generic and consist largely of changes that Imgtec/MIPS had published
    in their linux-mti-3.10.git stable tree. Random other cleanups and
    patches preparing code to be merged in 3.15"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (139 commits)
    mips: select ARCH_MIGHT_HAVE_PC_SERIO
    mips: delete non-required instances of include
    MIPS: KVM: remove shadow_tlb code
    MIPS: KVM: use common EHINV aware UNIQUE_ENTRYHI
    mips/ide: flush dcache also if icache does not snoop dcache
    MIPS: BCM47XX: fix position of cpu_wait disabling
    MIPS: BCM63XX: select correct MIPS_L1_CACHE_SHIFT value
    MIPS: update MIPS_L1_CACHE_SHIFT based on MIPS_L1_CACHE_SHIFT_
    MIPS: introduce MIPS_L1_CACHE_SHIFT_
    MIPS: ZBOOT: gather string functions into string.c
    arch/mips/pci: don't check resource with devm_ioremap_resource
    arch/mips/lantiq/xway: don't check resource with devm_ioremap_resource
    bcma: gpio: don't cast u32 to unsigned long
    ssb: gpio: add own IRQ domain
    MIPS: BCM47XX: fix sparse warnings in board.c
    MIPS: BCM47XX: add board detection for Linksys WRT54GS V1
    MIPS: BCM47XX: fix detection for some boards
    MIPS: BCM47XX: Enable buttons support on SSB
    MIPS: BCM47XX: Convert WNDR4500 to new syntax
    MIPS: BCM47XX: Use "timer" trigger for status LEDs
    ...

    Linus Torvalds
     

25 Jan, 2014

1 commit


04 Jan, 2014

1 commit

  • CHECK drivers/ssb/driver_chipcommon_sflash.c
    drivers/ssb/driver_chipcommon_sflash.c:40:11: warning: Using plain integer as NULL pointer
    drivers/ssb/driver_chipcommon_sflash.c:58:11: warning: Using plain integer as NULL pointer
    drivers/ssb/driver_chipcommon_sflash.c:69:11: warning: Using plain integer as NULL pointer

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

    Hauke Mehrtens
     

17 Oct, 2013

1 commit


02 Aug, 2013

1 commit


14 Jul, 2013

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "MIPS updates:

    - All the things that didn't make 3.10.
    - Removes the Windriver PPMC platform. Nobody will miss it.
    - Remove a workaround from kernel/irq/irqdomain.c which was there
    exclusivly for MIPS. Patch by Grant Likely.
    - More small improvments for the SEAD 3 platform
    - Improvments on the BMIPS / SMP support for the BCM63xx series.
    - Various cleanups of dead leftovers.
    - Platform support for the Cavium Octeon-based EdgeRouter Lite.

    Two large KVM patchsets didn't make it for this pull request because
    their respective authors are vacationing"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (124 commits)
    MIPS: Kconfig: Add missing MODULES dependency to VPE_LOADER
    MIPS: BCM63xx: CLK: Add dummy clk_{set,round}_rate() functions
    MIPS: SEAD3: Disable L2 cache on SEAD-3.
    MIPS: BCM63xx: Enable second core SMP on BCM6328 if available
    MIPS: BCM63xx: Add SMP support to prom.c
    MIPS: define write{b,w,l,q}_relaxed
    MIPS: Expose missing pci_io{map,unmap} declarations
    MIPS: Malta: Update GCMP detection.
    Revert "MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET"
    MIPS: APSP: Remove
    SSB: Kconfig: Amend SSB_EMBEDDED dependencies
    MIPS: microMIPS: Fix improper definition of ISA exception bit.
    MIPS: Don't try to decode microMIPS branch instructions where they cannot exist.
    MIPS: Declare emulate_load_store_microMIPS as a static function.
    MIPS: Fix typos and cleanup comment
    MIPS: Cleanup indentation and whitespace
    MIPS: BMIPS: support booting from physical CPU other than 0
    MIPS: Only set cpu_has_mmips if SYS_SUPPORTS_MICROMIPS
    MIPS: GIC: Fix gic_set_affinity infinite loop
    MIPS: Don't save/restore OCTEON wide multiplier state on syscalls.
    ...

    Linus Torvalds
     

01 Jul, 2013

1 commit

  • SSB_EMBEDDED needs functions from driver_pcicore which are only
    available if SSD_DRIVER_HOSTMODE is selected so make it
    depend on that symbol.

    Fixes the following linking problem:

    drivers/ssb/embedded.c:202:
    undefined reference to `ssb_pcicore_plat_dev_init'
    drivers/built-in.o: In function `ssb_pcibios_map_irq':
    drivers/ssb/embedded.c:247:
    undefined reference to `ssb_pcicore_pcibios_map_irq'

    Signed-off-by: Markos Chandras
    Acked-by: Steven J. Hill
    Cc: sibyte-users@bitmover.com
    Cc: netdev@vger.kernel.org
    Cc: Michael Buesch
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5484/
    Acked-by: Florian Fainelli
    Signed-off-by: Ralf Baechle

    Markos Chandras
     

29 Jun, 2013

1 commit