08 Dec, 2018

1 commit

  • commit 7d35baa4e9ec4b717bc0e58a39cdb6a1c50f5465 upstream.

    In case the nd_sd group is set to the sd-card function, Pins 45 + 46 are
    configured as GPIOs. If they are blocked by the sd function, they can't
    be used as GPIOs.

    Reported-by: Kristian Evensen
    Signed-off-by: Mathias Kresin
    Signed-off-by: Paul Burton
    Fixes: f576fb6a0700 ("MIPS: ralink: cleanup the soc specific pinmux data")
    Patchwork: https://patchwork.linux-mips.org/patch/21220/
    Cc: John Crispin
    Cc: Ralf Baechle
    Cc: James Hogan
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org # v3.18+
    Signed-off-by: Greg Kroah-Hartman

    Mathias Kresin
     

29 Mar, 2018

2 commits

  • commit a63d706ea719190a79a6c769e898f70680044d3e upstream.

    Since commit 3af5a67c86a3 ("MIPS: Fix early CM probing") the MT7621 has
    not been able to boot.

    This commit caused mips_cm_probe() to be called before
    mt7621.c::proc_soc_init().

    prom_soc_init() has a comment explaining that mips_cm_probe() "wipes out
    the bootloader config" and means that configuration registers are no
    longer available. It has some code to re-enable this config.

    Before this re-enable code is run, the sysc register cannot be read, so
    when SYSC_REG_CHIP_NAME0 is read, a garbage value is returned and
    panic() is called.

    If we move the config-repair code to the top of prom_soc_init(), the
    registers can be read and boot can proceed.

    Very occasionally, the first register read after the reconfiguration
    returns garbage, so add a call to __sync().

    Fixes: 3af5a67c86a3 ("MIPS: Fix early CM probing")
    Signed-off-by: NeilBrown
    Reviewed-by: Matt Redfearn
    Cc: John Crispin
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: # 4.5+
    Patchwork: https://patchwork.linux-mips.org/patch/18859/
    Signed-off-by: James Hogan
    Signed-off-by: Greg Kroah-Hartman

    NeilBrown
     
  • commit 891731f6a5dbe508d12443175a7e166a2fba616a upstream.

    ralink_halt() does nothing that machine_halt() doesn't already do, so it
    adds no value.

    It actually causes incorrect behaviour due to the "unreachable()" at the
    end. This tells the compiler that the end of the function will never be
    reached, which isn't true. The compiler responds by not adding a
    'return' instruction, so control simply moves on to whatever bytes come
    afterwards in memory. In my tested, that was the ralink_restart()
    function. This means that an attempt to 'halt' the machine would
    actually cause a reboot.

    So remove ralink_halt() so that a 'halt' really does halt.

    Fixes: c06e836ada59 ("MIPS: ralink: adds reset code")
    Signed-off-by: NeilBrown
    Cc: John Crispin
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: # 3.9+
    Patchwork: https://patchwork.linux-mips.org/patch/18851/
    Signed-off-by: James Hogan
    Signed-off-by: Greg Kroah-Hartman

    NeilBrown
     

30 Nov, 2017

2 commits

  • commit 05a67cc258e75ac9758e6f13d26337b8be51162a upstream.

    There is a typo inside the pinmux setup code. The function is called
    refclk and not reclk.

    Fixes: 53263a1c6852 ("MIPS: ralink: add mt7628an support")
    Signed-off-by: Mathias Kresin
    Acked-by: John Crispin
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/16047/
    Signed-off-by: James Hogan
    Signed-off-by: Greg Kroah-Hartman

    Mathias Kresin
     
  • commit 8ef4b43cd3794d63052d85898e42424fd3b14d24 upstream.

    According to the datasheet the REFCLK pin is shared with GPIO#37 and
    the PERST pin is shared with GPIO#36.

    Fixes: 53263a1c6852 ("MIPS: ralink: add mt7628an support")
    Signed-off-by: Mathias Kresin
    Acked-by: John Crispin
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/16046/
    Signed-off-by: James Hogan
    Signed-off-by: Greg Kroah-Hartman

    Mathias Kresin
     

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
     

06 Sep, 2017

1 commit

  • Make the behaviour of clk_get_rate consistent with common clk's
    clk_get_rate by accepting NULL clocks as parameter. Some device
    drivers rely on this, and will cause an OOPS otherwise.

    Fixes: 3f0a06b0368d ("MIPS: ralink: adds clkdev code")
    Reported-by: Mathias Kresin
    Signed-off-by: Jonas Gorski
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/16778/
    Signed-off-by: Ralf Baechle

    Jonas Gorski
     

04 Sep, 2017

1 commit

  • The linux/irqchip/mips-gic.h header is now almost empty. Move the
    declarations of gic_get_c0_compare_int(), gic_get_c0_perfcount_int() &
    gic_get_c0_fdc_int() to asm/mips-gic.h in order to close in on being
    able to delete the former header.

    Signed-off-by: Paul Burton
    Acked-by: Marc Zyngier
    Cc: Jason Cooper
    Cc: Thomas Gleixner
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/17046/
    Signed-off-by: Ralf Baechle

    Paul Burton
     

30 Aug, 2017

2 commits

  • Modify the functions we use to read information about the topology of
    the system (the number of cores, VPs & IOCUs that it contains) in order
    to take into account multiple clusters, and provide a new function to
    determine the number of clusters in the system.

    Users of these functions are modified only such that they continue to
    build successfully - having them actually handle multiple clusters is
    left to further patches.

    Signed-off-by: Paul Burton
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/17016/
    Patchwork: https://patchwork.linux-mips.org/patch/17218/
    Signed-off-by: Ralf Baechle

    Paul Burton
     
  • With Coherence Manager (CM) 3.5 information about the topology of the
    system, which has previously only been available through & accessed from
    the CM, is now also provided by the Cluster Power Controller (CPC). This
    includes a new CPC_CONFIG register mirroring GCR_CONFIG, and similarly a
    new CPC_Cx_CONFIG register mirroring GCR_Cx_CONFIG.

    In preparation for adjusting functions such as mips_cm_numcores(), which
    have previously only needed to access the CM, to also access the CPC
    this patch modifies the way we use the various CPS headers. Rather than
    having users include asm/mips-cm.h or asm/mips-cpc.h individually we
    instead have users include asm/mips-cps.h which in turn includes
    asm/mips-cm.h & asm/mips-cpc.h. This means that users will gain access
    to both CM & CPC registers by including one header, and most importantly
    it makes asm/mips-cps.h an ideal location for helper functions which
    need to access the various components of the CPS.

    Signed-off-by: Paul Burton
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/17015/
    Patchwork: https://patchwork.linux-mips.org/patch/17217/
    Signed-off-by: Ralf Baechle

    Paul Burton
     

29 Aug, 2017

2 commits

  • The Onion Omega2+ is an MT7688A based board that has 128MB RAM and
    multiple peripherals.

    The MT7688A is pin compatible with the MT7628A, although the former
    supports a 1T1R antenna whereas the MT7628A supports a 2R2T antenna.

    Signed-off-by: Harvey Hunt
    Cc: robh+dt@kernel.org
    Cc: mark.rutland@arm.com
    Cc: john@phrozen.org
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/17137/
    Signed-off-by: Ralf Baechle

    Harvey Hunt
     
  • The VoCore2 board is a low cost MT7628A based board with 128MB RAM, 16MB
    flash and multiple external peripherals.

    This initial DTS provides enough support to get to userland and use the USB
    port.

    Signed-off-by: Harvey Hunt
    Cc: robh+dt@kernel.org
    Cc: mark.rutland@arm.com
    Cc: john@phrozen.org
    Cc: linux-kernel@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/17134/
    Signed-off-by: Ralf Baechle

    Harvey Hunt
     

19 Jul, 2017

1 commit

  • Fix a build error caused by not including .

    The following compilation errors are caused by the missing header:

    arch/mips/ralink/mt7620.c: In function ‘mt7620_get_cpu_pll_rate’:
    arch/mips/ralink/mt7620.c:431:2: error: implicit declaration of function ‘WARN_ON’ [-Werror=implicit-function-declaration]
    WARN_ON(div >= ARRAY_SIZE(mt7620_clk_divider));
    ^
    arch/mips/ralink/mt7620.c: In function ‘mt7620_get_sys_rate’:
    arch/mips/ralink/mt7620.c:500:2: error: implicit declaration of function ‘WARN’ [-Werror=implicit-function-declaration]
    if (WARN(!div, "invalid divider for OCP ratio %u", ocp_ratio))
    ^
    arch/mips/ralink/mt7620.c: In function ‘mt7620_dram_init’:
    arch/mips/ralink/mt7620.c:619:3: error: implicit declaration of function ‘BUG’ [-Werror=implicit-function-declaration]
    BUG();
    ^
    cc1: some warnings being treated as errors
    scripts/Makefile.build:302: recipe for target 'arch/mips/ralink/mt7620.o' failed

    Signed-off-by: Harvey Hunt
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/16781/
    Signed-off-by: Ralf Baechle

    Harvey Hunt
     

14 Jun, 2017

3 commits

  • The config option name is now renamed to 'TIMER_OF' for consistency with
    the CLOCKSOURCE_OF_DECLARE => TIMER_OF_DECLARE change.

    Signed-off-by: Daniel Lezcano
    Reviewed-by: Linus Walleij

    Daniel Lezcano
     
  • The function name is now renamed to 'timer_probe' for consistency with
    the CLOCKSOURCE_OF_DECLARE => TIMER_OF_DECLARE change.

    Signed-off-by: Daniel Lezcano
    Acked-by: Viresh Kumar
    Acked-by: Heiko Stuebner
    Reviewed-by: Linus Walleij

    Daniel Lezcano
     
  • The CLOCKSOURCE_OF_DECLARE macro is used widely for the timers to declare the
    clocksource at early stage. However, this macro is also used to initialize
    the clockevent if any, or the clockevent only.

    It was originally suggested to declare another macro to initialize a
    clockevent, so in order to separate the two entities even they belong to the
    same IP. This was not accepted because of the impact on the DT where splitting
    a clocksource/clockevent definition does not make sense as it is a Linux
    concept not a hardware description.

    On the other side, the clocksource has not interrupt declared while the
    clockevent has, so it is easy from the driver to know if the description is
    for a clockevent or a clocksource, IOW it could be implemented at the driver
    level.

    So instead of dealing with a named clocksource macro, let's use a more generic
    one: TIMER_OF_DECLARE.

    The patch has not functional changes.

    Signed-off-by: Daniel Lezcano
    Acked-by: Heiko Stuebner
    Acked-by: Neil Armstrong
    Acked-by: Arnd Bergmann
    Acked-by: Matthias Brugger
    Reviewed-by: Linus Walleij

    Daniel Lezcano
     

02 May, 2017

1 commit

  • Pull timer updates from Thomas Gleixner:
    "The timer departement delivers:

    - more year 2038 rework

    - a massive rework of the arm achitected timer

    - preparatory patches to allow NTP correction of clock event devices
    to avoid early expiry

    - the usual pile of fixes and enhancements all over the place"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (91 commits)
    timer/sysclt: Restrict timer migration sysctl values to 0 and 1
    arm64/arch_timer: Mark errata handlers as __maybe_unused
    Clocksource/mips-gic: Remove redundant non devicetree init
    MIPS/Malta: Probe gic-timer via devicetree
    clocksource: Use GENMASK_ULL in definition of CLOCKSOURCE_MASK
    acpi/arm64: Add SBSA Generic Watchdog support in GTDT driver
    clocksource: arm_arch_timer: add GTDT support for memory-mapped timer
    acpi/arm64: Add memory-mapped timer support in GTDT driver
    clocksource: arm_arch_timer: simplify ACPI support code.
    acpi/arm64: Add GTDT table parse driver
    clocksource: arm_arch_timer: split MMIO timer probing.
    clocksource: arm_arch_timer: add structs to describe MMIO timer
    clocksource: arm_arch_timer: move arch_timer_needs_of_probing into DT init call
    clocksource: arm_arch_timer: refactor arch_timer_needs_probing
    clocksource: arm_arch_timer: split dt-only rate handling
    x86/uv/time: Set ->min_delta_ticks and ->max_delta_ticks
    unicore32/time: Set ->min_delta_ticks and ->max_delta_ticks
    um/time: Set ->min_delta_ticks and ->max_delta_ticks
    tile/time: Set ->min_delta_ticks and ->max_delta_ticks
    score/time: Set ->min_delta_ticks and ->max_delta_ticks
    ...

    Linus Torvalds
     

15 Apr, 2017

1 commit

  • In preparation for making the clockevents core NTP correction aware,
    all clockevent device drivers must set ->min_delta_ticks and
    ->max_delta_ticks rather than ->min_delta_ns and ->max_delta_ns: a
    clockevent device's rate is going to change dynamically and thus, the
    ratio of ns to ticks ceases to stay invariant.

    Make the MIPS arch's clockevent drivers initialize these fields properly.

    This patch alone doesn't introduce any change in functionality as the
    clockevents core still looks exclusively at the (untouched) ->min_delta_ns
    and ->max_delta_ns. As soon as this has changed, a followup patch will
    purge the initialization of ->min_delta_ns and ->max_delta_ns from these
    drivers.

    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Daniel Lezcano
    Cc: Richard Cochran
    Cc: Prarit Bhargava
    Cc: Stephen Boyd
    Cc: Ralf Baechle
    Cc: Keguang Zhang
    Cc: John Crispin
    Acked-by: Ralf Baechle
    Signed-off-by: Nicolai Stange
    Signed-off-by: John Stultz

    Nicolai Stange
     

08 Mar, 2017

1 commit

  • There are two copy & paste errors in the definition of the 5GHz LNA and
    second ethernet pinmux.

    Fixes: f576fb6a0700 ("MIPS: ralink: cleanup the soc specific pinmux data")
    Signed-off-by: John Crispin
    Signed-off-by: Daniel Golle
    Cc: linux-mips@linux-mips.org
    Cc: # 3.19.x-
    Patchwork: https://patchwork.linux-mips.org/patch/15328/
    Signed-off-by: James Hogan

    John Crispin
     

14 Feb, 2017

1 commit

  • Historically a lot of these existed because we did not have
    a distinction between what was modular code and what was providing
    support to modules via EXPORT_SYMBOL and friends. That changed
    when we forked out support for the latter into the export.h file.

    This means we should be able to reduce the usage of module.h
    in code that is obj-y Makefile or bool Kconfig. In the case of
    some code where it is modular, we can extend that to also include
    files that are building basic support functionality but not related
    to loading or registering the final module; such files also have
    no need whatsoever for module.h

    The advantage in removing such instances is that module.h itself
    sources about 15 other headers; adding significantly to what we feed
    cpp, and it can obscure what headers we are effectively using.

    Since module.h might have been the implicit source for init.h
    (for __init) and for export.h (for EXPORT_SYMBOL) we consider each
    instance for the presence of either and replace/add as needed.

    Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.

    Build coverage of all the mips defconfigs revealed the module.h
    header was masking a couple of implicit include instances, so
    we add the appropriate headers there.

    Signed-off-by: Paul Gortmaker
    Cc: David Daney
    Cc: John Crispin
    Cc: Ralf Baechle
    Cc: "Steven J. Hill"
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/15131/
    [james.hogan@imgtec.com: Preserve sort order where it already exists]
    Signed-off-by: James Hogan

    Paul Gortmaker
     

25 Jan, 2017

3 commits

  • All pointers to these functions were removed, so now they produce
    warnings:

    arch/mips/ralink/rt305x.c:92:13: error: 'rt305x_wdt_reset' defined but not used [-Werror=unused-function]

    This removes the functions. If we need them again, the patch can be
    reverted later.

    Fixes: f576fb6a0700 ("MIPS: ralink: cleanup the soc specific pinmux data")
    Signed-off-by: Arnd Bergmann
    Cc: John Crispin
    Cc: Colin Ian King
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/15044/
    Signed-off-by: Ralf Baechle

    Arnd Bergmann
     
  • request_mem_region returns a NULL pointer on error, comparing it
    against a number results in a warning:

    arch/mips/ralink/of.c: In function 'plat_of_remap_node':
    arch/mips/ralink/of.c:45:15: error: ordered comparison of pointer with integer zero [-Werror=extra]
    arch/mips/ralink/irq.c: In function 'intc_of_init':
    arch/mips/ralink/irq.c:167:15: error: ordered comparison of pointer with integer zero [-Werror=extra]

    Signed-off-by: Arnd Bergmann
    Cc: John Crispin
    Cc: Tobias Wolf
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/15045/
    Signed-off-by: Ralf Baechle

    Arnd Bergmann
     
  • The functions were originally used for the module unload path,
    but are not referenced any more and just cause warnings:

    arch/mips/ralink/timer.c:104:13: error: 'rt_timer_disable' defined but not used [-Werror=unused-function]
    arch/mips/ralink/timer.c:74:13: error: 'rt_timer_free' defined but not used [-Werror=unused-function]

    Cc: Paul Gortmaker
    Fixes: 62ee73d284e7 ("MIPS: ralink: Make timer explicitly non-modular")
    Signed-off-by: Arnd Bergmann
    Cc: Paul Gortmaker
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/15041/
    Signed-off-by: Ralf Baechle

    Arnd Bergmann
     

03 Jan, 2017

9 commits

  • ralink_soc sould be assigned to RT3883_SOC, replace incorrect
    comparision with assignment.

    Signed-off-by: Colin Ian King
    Fixes: 418d29c87061 ("MIPS: ralink: Unify SoC id handling")
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/14903/
    Signed-off-by: Ralf Baechle

    Colin Ian King
     
  • Over the years the code has been changed various times leading to
    argc/argv being defined in a different function to where we actually
    use the variables. Clean this up by moving them to prom_init_cmdline().

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14902/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • MT7621 has highmem. this was previously not working as the required symbol
    was not selected in the Kconfig file.

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14901/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • As we dont use the common clock api yet we need to add this stub to allow
    building drivers that use the API.

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14900/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • There is a typo inside the pinmux setup code. The function is really
    called utif and not util. This was recently discovered when people were
    trying to make the UTIF interface work.

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14899/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • The mt7620 has a pin that can be used to generate an external reference
    clock. The pinmux setup was missing the definition of said pin. This patch
    adds it.

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14898/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • This patch adds two additional clocks required by the audio interface of
    the SoCs.

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14897/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • The code does not set the SoC type properly. This went unnoticed until now
    as the SoC does not share any of the driver code with the other SoCs, until
    we made the mmc driver work.

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14896/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • This patch adds fw_passed_dtb to arch/mips/ralink to support
    CONFIG_MIPS_RAW_APPENDED_DTB. Furthermore it adds a check that __dtb_start is
    not the same address as __dtb_end.

    Signed-off-by: Tobias Wolf
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14662/
    Signed-off-by: Ralf Baechle

    Tobias Wolf
     

04 Oct, 2016

1 commit

  • The Makefile entry controlling compilation of this code is "obj-y"
    meaning that it currently is not being built as a module by anyone.

    Lets remove the modular code that is essentially orphaned, so that
    when reading the driver there is no doubt it is builtin-only.

    We explicitly disallow a driver unbind, since that doesn't have a
    sensible use case anyway, and it allows us to drop the ".remove"
    code for non-modular drivers.

    Since module_platform_driver() uses the same init level priority as
    builtin_platform_driver() the init ordering remains unchanged with
    this commit.

    Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.

    We also delete the MODULE_LICENSE tag etc. since all that information
    was (or is now) contained at the top of the file in the comments.

    We don't replace module.h with init.h since the file already has that.

    Signed-off-by: Paul Gortmaker
    Cc: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/13931/
    Signed-off-by: Ralf Baechle

    Paul Gortmaker
     

06 Aug, 2016

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for MIPS for 4.8. Also includes is a
    minor SSB cleanup as SSB code traditionally is merged through the MIPS
    tree:

    ATH25:
    - MIPS: Add default configuration for ath25

    Boot:
    - For zboot, copy appended dtb to the end of the kernel
    - store the appended dtb address in a variable

    BPF:
    - Fix off by one error in offset allocation

    Cobalt code:
    - Fix typos

    Core code:
    - debugfs_create_file returns NULL on error, so don't use IS_ERR for
    testing for errors.
    - Fix double locking issue in RM7000 S-cache code. This would only
    affect RM7000 ARC systems on reboot.
    - Fix page table corruption on THP permission changes.
    - Use compat_sys_keyctl for 32 bit userspace on 64 bit kernels.
    David says, there are no compatibility issues raised by this fix.
    - Move some signal code around.
    - Rewrite r4k count/compare clockevent device registration such that
    min_delta_ticks/max_delta_ticks files are guaranteed to be
    initialized.
    - Only register r4k count/compare as clockevent device if we can
    assume the clock to be constant.
    - Fix MSA asm warnings in control reg accessors
    - uasm and tlbex fixes and tweaking.
    - Print segment physical address when EU=1.
    - Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO.
    - CP: Allow booting by VP other than VP 0
    - Cache handling fixes and optimizations for r4k class caches
    - Add hotplug support for R6 processors
    - Cleanup hotplug bits in kconfig
    - traps: return correct si code for accessing nonmapped addresses
    - Remove cpu_has_safe_index_cacheops

    Lantiq:
    - Register IRQ handler for virtual IRQ number
    - Fix EIU interrupt loading code
    - Use the real EXIN count
    - Fix build error.

    Loongson 3:
    - Increase HPET_MIN_PROG_DELTA and decrease HPET_MIN_CYCLES

    Octeon:
    - Delete built-in DTB pruning code for D-Link DSR-1000N.
    - Clean up GPIO definitions in dlink_dsr-1000n.dts.
    - Add more LEDs to the DSR-100n DTS
    - Fix off by one in octeon_irq_gpio_map()
    - Typo fixes
    - Enable SATA by default in cavium_octeon_defconfig
    - Support readq/writeq()
    - Remove forced mappings of USB interrupts.
    - Ensure DMA descriptors are always in the low 4GB
    - Improve USB reset code for OCTEON II.

    Pistachio:
    - Add maintainers entry for pistachio SoC Support
    - Remove plat_setup_iocoherency

    Ralink:
    - Fix pwm UART in spis group pinmux.

    SSB:
    - Change bare unsigned to unsigned int to suit coding style

    Tools:
    - Fix reloc tool compiler warnings.

    Other:
    - Delete use of ARCH_WANT_OPTIONAL_GPIOLIB"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (61 commits)
    MIPS: mm: Fix definition of R6 cache instruction
    MIPS: tools: Fix relocs tool compiler warnings
    MIPS: Cobalt: Fix typo
    MIPS: Octeon: Fix typo
    MIPS: Lantiq: Fix build failure
    MIPS: Use CPHYSADDR to implement mips32 __pa
    MIPS: Octeon: Dlink_dsr-1000n.dts: add more leds.
    MIPS: Octeon: Clean up GPIO definitions in dlink_dsr-1000n.dts.
    MIPS: Octeon: Delete built-in DTB pruning code for D-Link DSR-1000N.
    MIPS: store the appended dtb address in a variable
    MIPS: ZBOOT: copy appended dtb to the end of the kernel
    MIPS: ralink: fix spis group pinmux
    MIPS: Factor o32 specific code into signal_o32.c
    MIPS: non-exec stack & heap when non-exec PT_GNU_STACK is present
    MIPS: Use per-mm page to execute branch delay slot instructions
    MIPS: Modify error handling
    MIPS: c-r4k: Use SMP calls for CM indexed cache ops
    MIPS: c-r4k: Avoid small flush_icache_range SMP calls
    MIPS: c-r4k: Local flush_icache_range cache op override
    MIPS: c-r4k: Split r4k_flush_kernel_vmap_range()
    ...

    Linus Torvalds
     

02 Aug, 2016

1 commit

  • pwm function for spis conflicts with uart2 and uart1, fix this by changing it
    to pwm_uart2, which reflects the real use of these pins with these pinmux
    (2 for pwm and 2 for uart).

    Signed-off-by: Álvaro Fernández Rojas
    Cc: john@phrozen.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/13369/
    Signed-off-by: Ralf Baechle

    Álvaro Fernández Rojas
     

28 Jun, 2016

2 commits

  • All the clocksource drivers's init function are now converted to return
    an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
    clksrc-of table.

    Let's convert back the names:
    - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
    - clksrc-of-ret => clksrc-of

    Signed-off-by: Daniel Lezcano

    For exynos_mct and samsung_pwm_timer:
    Acked-by: Krzysztof Kozlowski

    For arch/arc:
    Acked-by: Vineet Gupta

    For mediatek driver:
    Acked-by: Matthias Brugger

    For the Rockchip-part
    Acked-by: Heiko Stuebner

    For STi :
    Acked-by: Patrice Chotard

    For the mps2-timer.c and versatile.c changes:
    Acked-by: Liviu Dudau

    For the OXNAS part :
    Acked-by: Neil Armstrong

    For LPC32xx driver:
    Acked-by: Sylvain Lemieux

    For Broadcom Kona timer change:
    Acked-by: Ray Jui

    For Sun4i and Sun5i:
    Acked-by: Chen-Yu Tsai

    For Meson6:
    Acked-by: Carlo Caione

    For Keystone:
    Acked-by: Santosh Shilimkar

    For NPS:
    Acked-by: Noam Camus

    For bcm2835:
    Acked-by: Eric Anholt

    Daniel Lezcano
     
  • The init functions do not return any error. They behave as the following:

    - panic, thus leading to a kernel crash while another timer may work and
    make the system boot up correctly

    or

    - print an error and let the caller unaware if the state of the system

    Change that by converting the init functions to return an error conforming
    to the CLOCKSOURCE_OF_RET prototype.

    Proper error handling (rollback, errno value) will be changed later case
    by case, thus this change just return back an error or success in the init
    function.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano
     

28 May, 2016

3 commits