Skip to content
  1. Oct 06, 2016
    • Paul Burton's avatar
      MIPS: PCI: Use struct list_head lists · 23dac14d
      Paul Burton authored
      
      
      Rather than open-coding a linked list implementation, make use of the
      one in linux/list.h.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/14340/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      23dac14d
    • Marcin Nowakowski's avatar
      MIPS: tracing: disable uprobe/kprobe on compact branch instructions · d05c5130
      Marcin Nowakowski authored
      
      
      Current instruction decoder for uprobe/kprobe handler only handles
      branches with delay slots. For compact branches the behaviour is rather
      unpredictable - and depending on the encoding of a compact branch
      instruction may result in one (or more) of:
      - executing an instruction that follows a branch which wasn't in a delay
        slot and shouldn't have been executed
      - incorrectly emulating a branch leading to a jump to a wrong location
      - unexpected branching out of the single-stepped code and never reaching
        the breakpoint that should terminate the probe handler
      
      Results of these actions are generally unpredictable, but can end up
      with a probed application or kernel crash, so disable placing probes on
      compact branches until they are handled properly.
      
      Signed-off-by: default avatarMarcin Nowakowski <marcin.nowakowski@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/14336/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      d05c5130
    • Marcin Nowakowski's avatar
      MIPS: tracing: move insn_has_delay_slot to a shared header · e3031b32
      Marcin Nowakowski authored
      
      
      Currently both kprobes and uprobes code have definitions of the
      insn_has_delay_slot method. Move it to a separate header as an inline
      method that each probe-specific method can later use.
      No functional change intended, although the methods slightly varied in
      the constraints they set for the methods - the uprobes one was chosen as
      it is slightly more specific when filtering opcode fields.
      
      Signed-off-by: default avatarMarcin Nowakowski <marcin.nowakowski@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/14335/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      e3031b32
    • Jaedon Shin's avatar
      MIPS: BMIPS: Support APPENDED_DTB · d66698e0
      Jaedon Shin authored
      
      
      Use appended DTB when available.
      
      Signed-off-by: default avatarJaedon Shin <jaedon.shin@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/14337/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      d66698e0
    • Jaedon Shin's avatar
      MIPS: BMIPS: Use interrupt-controller node name · a2c510a2
      Jaedon Shin authored
      
      
      Changes node names of the interrupt-controller device nodes to
      interrupt-controller instead of label strings.
      
      Signed-off-by: default avatarJaedon Shin <jaedon.shin@gmail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Jonas Gorski <jonas.gorski@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: devicetree@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14004/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a2c510a2
    • Jaedon Shin's avatar
      MIPS: BMIPS: Add support NAND device nodes · cfc8be04
      Jaedon Shin authored
      
      
      Adds NAND device nodes to BCM7xxx MIPS based SoCs.
      
      Signed-off-by: default avatarJaedon Shin <jaedon.shin@gmail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Jonas Gorski <jonas.gorski@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: devicetree@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14003/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      cfc8be04
    • Jaedon Shin's avatar
      MIPS: BMIPS: Add support SDHCI device nodes · b2420e27
      Jaedon Shin authored
      
      
      Adds SDHCI device nodes to BCM7xxx MIPS based SoCs.
      
      Signed-off-by: default avatarJaedon Shin <jaedon.shin@gmail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Cc: Jonas Gorski <jonas.gorski@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: devicetree@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14002/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      b2420e27
    • Jaedon Shin's avatar
      MIPS: BMIPS: Add support GPIO device nodes · c707844d
      Jaedon Shin authored
      
      
      Adds GPIO device nodes to BCM7xxx MIPS based SoCs.
      
      Signed-off-by: default avatarJaedon Shin <jaedon.shin@gmail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Jonas Gorski <jonas.gorski@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: devicetree@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14001/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      c707844d
    • Jaedon Shin's avatar
      MIPS: BMIPS: Add support PWM device nodes · 7bbe59dd
      Jaedon Shin authored
      
      
      Adds PWM device nodes to BCM7xxx MIPS based SoCs.
      
      Signed-off-by: default avatarJaedon Shin <jaedon.shin@gmail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Cc: Jonas Gorski <jonas.gorski@gmail.com>
      Cc: Kevin Cernekee <cernekee@gmail.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: devicetree@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14000/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      7bbe59dd
    • Paul Burton's avatar
      MIPS: Malta: Remove custom halt implementation · c834469b
      Paul Burton authored
      
      
      The arch code will hang the machine with an infinite loop if the board
      doesn't provide an impelementation of halt - let it, rather than
      duplicating it.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14280/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      c834469b
    • Paul Burton's avatar
      MIPS: Malta: Use syscon-reboot driver to reboot · 10b6ea09
      Paul Burton authored
      
      
      Make use of the generic syscon-reboot driver to reboot the Malta board,
      reducing the amount of platform code it requires.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Stephan Linz <linz@li-pro.net>
      Cc: Jacek Anaszewski <j.anaszewski@samsung.com>
      Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14279/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      10b6ea09
    • Paul Burton's avatar
      MIPS: Malta: Probe pflash via DT · 97af8e1c
      Paul Burton authored
      
      
      Add the DT nodes required to probe the CFI compatible parallel monitor
      flash found on the Malta development board, and remove the platform
      code that was previously doing it. Delete the now-empty malta-platform.c
      file. Adjust the Malta defconfigs that enable MTD & the pflash/CFI
      driver to enable CONFIG_MTD_PHYSMAP_OF rather than CONFIG_MTD_PHYSMAP in
      order to preserve their behaviour.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14278/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      97af8e1c
    • Paul Burton's avatar
      MIPS: Malta: Probe RTC via DT · 0a46ffa3
      Paul Burton authored
      
      
      Add the DT node required to probe the RTC, and remove the platform code
      that was previously doing it.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14277/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      0a46ffa3
    • Paul Burton's avatar
      MIPS: Malta: Remove custom DT match table · eea1645b
      Paul Burton authored
      Since commit 44a7185c
      
       ("of/platform: Add common method to populate
      default bus") the Malta publish_devices initcall has essentially been a
      no-op. Remove it.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14276/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      eea1645b
    • Paul Burton's avatar
      of/platform: Probe "isa" busses by default · ecd76ede
      Paul Burton authored
      Since commit 44a7185c
      
       ("of/platform: Add common method to populate
      default bus") platforms calling of_platform_bus_probe from an initcall
      is either a rather unsafe race with of_platform_default_populate_init or
      a no-op. The MIPS Malta board needs to probe devices under an ISA bus,
      which we do support in the of_busses array but until now haven't
      included in of_default_bus_match_table.
      
      Add an "isa" entry to of_default_bus_match_table such that we can just
      accept use of of_platform_default_populate_init & remove the
      Malta-specific match table in a later patch.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Cc: Frank Rowand <frowand.list@gmail.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14275/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      ecd76ede
    • Paul Burton's avatar
      MIPS: Malta: Probe interrupt controllers via DT · 38ec82fe
      Paul Burton authored
      
      
      Probe the CPU, GIC & i8259 interrupt controllers present in the Malta
      system using device tree. This enables interrupts to be provided to
      devices using device tree as they are moved over to being probed using
      it.
      
      Since Malta is very configurable it's unknown whether a GIC will be
      present at compile time. In order to support both cases the
      malta_dt_shim code is added in order to detect whether a GIC is present,
      adjusting the DT to route interrupts correctly and nop out the GIC node
      if no GIC is found.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Cc: devicetree@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14274/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      38ec82fe
    • Paul Burton's avatar
      MIPS: Malta: Use all available DDR by default · 0051fc2e
      Paul Burton authored
      
      
      Malta boards can have more than 256MB DDR available, but we have
      previously only made use of up to 256MB (ie. the DDR accessible via
      kseg0) by default, without the user manually specifying mem= kernel
      parameters. This patch causes all available DDR, as reported by the
      bootloader via the ememsize or memsize environment variables or
      optionally on the command line, to be used when possible without the
      user needing to manually provide the memory ranges.
      
      Malta now has 2 subtly different memory maps which have to be taken into
      account when setting this up. The original memory map (referred to by
      the code as v1) has up to 2GB of DDR aliased in both the upper & lower
      halves of the 32 bit physical address space, with a 256MB I/O region
      obscuring 0x10000000-0x1fffffff only in the lower alias. The revised v2
      memory map is flat with up to 4GB DDR starting from 0x0, and the I/O
      region obscures 256MB of DDR which becomes inacessible. The memory map
      in use is indicated by a register provided by the rocit2 system
      controller, which is checked in order to set up the kernels memory
      ranges accordingly.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14273/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      0051fc2e
    • Paul Burton's avatar
      MIPS: Malta: Allow PCI devices DMA to lower 2GB physical · 422dd256
      Paul Burton authored
      
      
      Set the PCI_BAR0 register in all configurations such that PCI devices
      can perform DMA to all of the bottom 2GB of the physical address space.
      This is imperfect if we make use of the legacy Malta memory map, but it
      is an improvement on the inconsistent values setup before.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Alexander Sverdlin <alexander.sverdlin@nokia.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14272/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      422dd256
    • Paul Burton's avatar
      irqchip: i8259: Remove unused i8259A_irq_pending · 5d2949ec
      Paul Burton authored
      
      
      The i8259A_irq_pending function is unused. Remove the dead code.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14271/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      5d2949ec
    • Paul Burton's avatar
      irqchip: i8259: Allow platforms to override poll function · 19afc3d2
      Paul Burton authored
      
      
      The default i8259 polling function (i8259_irq) is nicely generic but is
      fairly costly. Platforms often provide an alternative means of polling
      for an i8259 interrupt, and when using the i8259 without device tree
      have typically just chained its parent interrupt to their own handler
      function. In order to allow for platform-specific polling functions to
      be used in cases where the driver is probed via device tree, provide an
      i8259_set_poll function that accepts a pointer to an alternative poll
      function that will override the default.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14270/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      19afc3d2
    • Paul Burton's avatar
      irqchip: i8259: Add domain before mapping parent irq · 690803ac
      Paul Burton authored
      
      
      Mapping the parent IRQ will use a virq number which may conflict with
      the hardcoded I8259A_IRQ_BASE..I8259A_IRQ_BASE+15 range that the i8259
      driver expects to be free. If this occurs then we'll hit errors when
      adding the i8259 IRQ domain, since one of its virq numbers will already
      be in use.
      
      Avoid this by adding the i8259 domain before mapping the parent IRQ,
      such that the i8259 virq numbers become used before the parent interrupt
      controller gets a chance to use any of them.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14269/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      690803ac
    • Paul Burton's avatar
      MIPS: SEAD3: Remove custom read_persistent_clock · e6a54ba3
      Paul Burton authored
      
      
      The SEAD3 board defines a custom implementation of read_persistent_clock
      which does exactly the same dummy operation as the generic weak version.
      Remove the not really implemented custom version.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14064/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      e6a54ba3
    • Paul Burton's avatar
      MIPS: SEAD3: Use img-ascii-lcd driver · 5e189564
      Paul Burton authored
      
      
      Probe the img-ascii-lcd driver using device tree in order to display a
      message on the SEAD3 board's LCD display, and remove the platform code
      that was formerly performing this function. This removes more platform
      code and moves SEAD3 further towards being entirely DT-based.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Jacek Anaszewski <j.anaszewski@samsung.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14063/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      5e189564
    • Paul Burton's avatar
      auxdisplay: img-ascii-lcd: driver for simple ASCII LCD displays · 0cad855f
      Paul Burton authored
      
      
      Add a driver for simple ASCII LCD displays found on the MIPS Boston,
      Malta & SEAD3 development boards. The Boston display is an independent
      memory mapped device with a simple memory mapped 8 byte register space
      containing the 8 ASCII characters to display. The Malta display is
      exposed as part of the Malta board registers, and provides 8 registers
      each of which corresponds to one of the ASCII characters to display. The
      SEAD3 display is slightly more complex, exposing an interface to an
      S6A0069 LCD controller via registers provided by the boards CPLD.
      However although the displays differ in their register interface, we
      require similar functionality on each board so abstracting away the
      differences within a single driver allows us to share a significant
      amount of code & ensure consistent behaviour.
      
      The driver displays the Linux kernel version as the default message, but
      allows the message to be changed via a character device. Messages longer
      then the number of characters that the display can show will scroll.
      
      This provides different behaviour to the existing LCD display code for
      the MIPS Malta or MIPS SEAD3 platforms in the following ways:
      
        - The default string to display is not "LINUX ON MALTA" or "LINUX ON
          SEAD3" but "Linux" followed by the version number of the kernel
          (UTS_RELEASE).
      
        - Since that string tends to be significantly longer it scrolls twice
          as fast, moving every 500ms rather than every 1s.
      
        - The LCD won't be updated until the driver is probed, so it doesn't
          provide the early "LINUX" string.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
      Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14062/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      0cad855f
    • Paul Burton's avatar
      dt-bindings: img-ascii-lcd: Document a binding for simple ASCII LCDs · 8ef3ff27
      Paul Burton authored
      
      
      Add documentation for a devicetree binding for the simple ASCII LCD
      displays found on development boards such as the MIPS Boston, MIPS Malta
      & MIPS SEAD3 from Imagination Technologies.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14061/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      8ef3ff27
    • Paul Burton's avatar
      FBDEV: cobalt_lcdfb: Drop SEAD3 support · eb42d760
      Paul Burton authored
      
      
      The SEAD3 board no longer uses the cobalt_lcdfb driver, so remove the
      SEAD3-specific code from it.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Acked-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Ondrej Zary <linux@rainbow-software.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Robert Jarzmik <robert.jarzmik@free.fr>
      Cc: Maciej W. Rozycki <macro@linux-mips.org>
      Cc: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      Cc: Geert Uytterhoeven <geert+renesas@glider.be>
      Cc: Simon Horman <horms+renesas@verge.net.au>
      Cc: linux-mips@linux-mips.org
      Cc: linux-fbdev@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14060/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      eb42d760
    • Paul Burton's avatar
      MIPS: SEAD3: Drop use of cobalt fbdev driver · ec5218a2
      Paul Burton authored
      
      
      The 2 line * 16 character LCD display on the SEAD3 board has no real use
      as a framebuffer device. It's far too small to produce any meaningful
      output if used as the kernel console, SEAD3 is a development board that
      will essentially always have a far more useful UART connection & the
      code in sead3-display.c will overwrite whatever's on the display every
      second anyway. Remove this unused code.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Jacek Anaszewski <j.anaszewski@samsung.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14059/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      ec5218a2
  2. Oct 05, 2016
    • Paul Burton's avatar
      MIPS: SEAD3: Parse memsize in DT shim · fd4d7404
      Paul Burton authored
      
      
      Parse the memsize argument provided by the bootloader in the DT shim
      code, allowing the user to override it on the command line. This places
      all of the DT manipulation code into sead3-dtshim.c.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Matt Redfearn <matt.redfearn@imgtec.com>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14058/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      fd4d7404
    • Paul Burton's avatar
      MIPS: SEAD3: Use generic restart-poweroff driver · a1ec6003
      Paul Burton authored
      
      
      Remove the custom platform code to restart when instructed to power off,
      instead relying upon the generic restart-poweroff driver probed via DT
      to do the same thing.
      
      Remove also the halt implementation, which is incorrect. The generic
      MIPS version will hang the system as halt should.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Jacek Anaszewski <j.anaszewski@samsung.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14057/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a1ec6003
    • Paul Burton's avatar
      MIPS: SEAD3: Reset via generic syscon-reboot driver & DT · 70bfdcec
      Paul Burton authored
      
      
      Remove the SEAD3 implementation of _machine_restart & instead make use
      of the generic syscon-reboot driver probed via device tree.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14056/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      70bfdcec
    • Paul Burton's avatar
      MIPS: SEAD3: Use register-bit-led driver via DT for LEDs · c764583f
      Paul Burton authored
      
      
      Probe a driver for the PLED & FLED LEDs found on the SEAD3 board using
      the register-bit-led driver via device tree, rather than a custom driver
      via platform code. Enable support for the register-bit-led driver & its
      prerequisite syscon in sead3_defconfig.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Jacek Anaszewski <j.anaszewski@samsung.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14054/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      c764583f
    • Paul Burton's avatar
      MIPS: SEAD3: Probe parallel flash via DT · 3aefc655
      Paul Burton authored
      
      
      Probe the system parallel flash using device tree rather than platform
      code, in order to reduce the amount of the latter.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14053/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      3aefc655
    • Paul Burton's avatar
      USB: host: ehci-sead3: Remove SEAD-3 EHCI code · 63c8d90c
      Paul Burton authored
      
      
      The SEAD-3 board is now probing its EHCI controller using the generic
      EHCI driver & its generic-ehci device tree binding. Remove the unused
      SEAD-3 specific EHCI code.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-usb@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14052/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      63c8d90c
    • Paul Burton's avatar
      MIPS: SEAD3: Probe EHCI controller using DT · 7afd2a5a
      Paul Burton authored
      
      
      Probe the SEAD3 EHCI controller using the generic-ehci driver & device
      tree rather than platform code, in order to reduce the amount of the
      latter.
      
      Now that no devices probed from platform code require interrupts, remove
      the retrieval of the IRQ domain & sead3int.h.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14051/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      7afd2a5a
    • Paul Burton's avatar
      MIPS: SEAD3: Probe ethernet controller using DT · a34e9388
      Paul Burton authored
      
      
      Probe the smsc911x ethernet controller using device tree rather than
      platform code, reducing the amount of the latter.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14050/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a34e9388
    • Paul Burton's avatar
      MIPS: SEAD3: Use generic ns16550a earlycon support · 53f37d1d
      Paul Burton authored
      
      
      Stop selecting SYS_HAS_EARLY_PRINTK & remove the custom support for
      early output to the ns16550a UARTs, instead relying upon generic
      ns16550a earlycon support. This reduces the amount of platform code
      required for SEAD3 without losing any functionality.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Jacek Anaszewski <j.anaszewski@samsung.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14049/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      53f37d1d
    • Paul Burton's avatar
      MIPS: SEAD3: Probe UARTs using DT · c11e3b48
      Paul Burton authored
      
      
      Probe the UARTs on SEAD3 boards using device tree rather than platform
      code, in order to reduce the amount of the latter. This requires that
      CONFIG_SERIAL_OF_PLATFORM be enabled, so enable it in sead3_defconfig.
      The SEAD3 DT shim code is extended to read bootloader environment
      variables to determine the appropriate UART & mode for kernel console
      output & set the stdout-path property of the chosen node accordingly.
      
      In contrast to the old platform code, which appears to have only ever
      set "console=ttyS0,38400n8r" with the code in console_config never
      having an effect, this will honor the "yamontty" environment variable to
      select between the 2 UARTs on the board and then check the "modetty0" or
      "modetty1" variable as appropriate to determine the UART configuration.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14048/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      c11e3b48
    • Paul Burton's avatar
      MIPS: SEAD3: Probe interrupt controllers using DT · b6d5e47e
      Paul Burton authored
      
      
      Probe the CPU interrupt controller & optional Global Interrupt
      Controller (GIC) using devicetree rather than platform code. Because the
      bootloader on SEAD3 does not provide a device tree to the kernel & the
      device tree is always built in, we patch out the GIC node during boot if
      we detect that a GIC is not present in the system.
      
      The appropriate IRQ domain is discovered by platform code setting up
      device IRQ numbers temporarily. It will be removed by further patches
      which move the devices towards being probed via device tree.
      
      No behavioural change is intended by this patch.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Matt Redfearn <matt.redfearn@imgtec.com>
      Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
      Cc: Jacek Anaszewski <j.anaszewski@samsung.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14047/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      b6d5e47e
    • Paul Burton's avatar
      MIPS: SEAD3: Split obj-y entries across lines · 0a152736
      Paul Burton authored
      
      
      Split the obj-y entries for SEAD3 onto a line each, so that they're more
      independent & can be modified more clearly by later commits.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Jacek Anaszewski <j.anaszewski@samsung.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14046/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      0a152736
    • Paul Burton's avatar
      MIPS: pm-cps: Generate idle state entry code when CPUs are onlined · ba750502
      Paul Burton authored
      
      
      The MIPS Coherent Processing System (CPS) power management code has
      previously generated code used to enter low power idle states once
      during boot for all CPUs. This has the drawback that if a CPU is present
      in the system but not being used (for example due to the maxcpus kernel
      parameter) then we encounter problems due to not having probed that CPU
      for information about its type & properties. The result of this is that
      we generate entry code which is both unused, potentially entirely
      invalid & likely to be unsuitable for the CPU in question anyway.
      
      Avoid this by generating idle state entry code only when a CPU is
      brought online. This way we only ever generate code for CPUs that we
      know we've probed the properties of, and that will actually be used.
      
      [ralf@linux-mips.org: Resolve merge conflict.]
      
      Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Adam Buchbinder <adam.buchbinder@gmail.com>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Markos Chandras <markos.chandras@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14259/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      ba750502