11 Dec, 2016

1 commit

  • The hardware documentation says bit 11:10 are used for the GPE
    frequency selection. Fix the mask in the define to match these bits.

    Signed-off-by: Hauke Mehrtens
    Reported-by: Dan Carpenter
    Reviewed-by: Thomas Langer
    Cc: linux-mips@linux-mips.org
    Cc: john@phrozen.org
    Patchwork: https://patchwork.linux-mips.org/patch/14648/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     

04 Oct, 2016

2 commits

  • The Kconfig currently controlling compilation of this code is:

    arch/mips/lantiq/Kconfig:config XRX200_PHY_FW
    arch/mips/lantiq/Kconfig: bool "XRX200 PHY firmware loader"

    ...meaning that it currently is not being built as a module by anyone.

    Lets remove the couple traces of modular infrastructure use, so that
    when reading the driver there is no doubt it is builtin-only.

    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 doesn't need that.

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

    Paul Gortmaker
     
  • The Makefile entry controlling compilation of this code is:

    arch/mips/lantiq/xway/vmmc.o
    ---> arch/mips/lantiq/xway/Makefile:obj-y += vmmc.o

    ...meaning that it currently is not being built as a module by anyone.

    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 replace module.h with export.h since the file does actually use
    EXPORT_SYMBOL.

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

    Paul Gortmaker
     

03 Aug, 2016

2 commits

  • Ralf Baechle
     
  • Some configs of mips like xway_defconffig are failing with the error:
    arch/mips/lantiq/irq.c:209:2: error: initialization from incompatible
    pointer type [-Werror]
    "icu",
    ^
    arch/mips/lantiq/irq.c:209:2: error: (near initialization for
    'ltq_irq_type.parent_device') [-Werror]
    arch/mips/lantiq/irq.c:219:2: error: initialization from incompatible
    pointer type [-Werror]
    "eiu",
    ^
    arch/mips/lantiq/irq.c:219:2: error: (near initialization for
    'ltq_eiu_type.parent_device') [-Werror]

    The first member of the "struct irq" is no longer a pointer for the
    name.

    Fixes: be45beb2df69 ("genirq: Add runtime power management support for IRQ chips")
    Signed-off-by: Sudip Mukherjee
    Acked-by: John Crispin
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/13684/
    Signed-off-by: Ralf Baechle

    Sudip Mukherjee
     

02 Aug, 2016

1 commit

  • Instead of rewriting the arguments to match the UHI spec, store the
    address of a appended or UHI supplied dtb in fw_supplied_dtb.

    That way the original bootloader arugments are kept intact while still
    making the use of an appended dtb invisible for mach code.

    Mach code can still find out if it is an appended dtb by comparing
    fw_arg1 with fw_supplied_dtb.

    Signed-off-by: Jonas Gorski
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: John Crispin
    Cc: Paul Burton
    Cc: James Hogan
    Cc: Alban Bedel
    Cc: Daniel Gimpelevich
    Cc: Antony Pavlov
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/13699/
    Signed-off-by: Ralf Baechle

    Jonas Gorski
     

24 Jul, 2016

4 commits

  • We used the hardware IRQ number to register the IRQ handler and not the
    virtual one. This probably caused some problems because the hardware
    IRQ numbers are only unique for each IRQ controller and not in the
    system. The virtual IRQ number is managed by Linux and unique in the
    system. This was probably the reason there was a gab of 8 IRQ numbers added
    before the numbers used for the lantiq IRQ controller. With the current
    setup the hardware and the virtual IRQ numbers are the same.

    Reported-by: Thomas Langer
    Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: thomas.langer@intel.com
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/13539/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • We runtime load the available external interrupts into an array and store
    the number inside exin_avail. Some of the code however uses MAX_EIU for
    looping over the array which may partially be 0. This is a cosmetic fix as
    the existing code works as is. It is just nicer to only loop over the array
    elements that were actually populated during probe.

    Signed-off-by: John Crispin
    Cc: Linux-MIPS
    Patchwork: https://patchwork.linux-mips.org/patch/13602/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • Using of_irq_count to load the irq index from the devicetree is incorrect.
    This will cause the kernel to map them regardless, even if they dont
    actually get used. Change the code to use of_property_count_u32_elems()
    instead which is the correct API to use in this case.

    Signed-off-by: John Crispin
    Cc: Linux-MIPS
    Patchwork: https://patchwork.linux-mips.org/patch/13601/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • Using of_irq_count to load the irq index from the devicetree is incorrect.
    This will cause the kernel to map them regardless, even if they dont
    actually get used. Change the code to use of_property_count_u32_elems()
    instead which is the correct API to use in this case.

    Signed-off-by: John Crispin
    Cc: Linux-MIPS
    Patchwork: https://patchwork.linux-mips.org/patch/13601/
    Signed-off-by: Ralf Baechle

    John Crispin
     

13 May, 2016

4 commits

  • The old address is no longer valid. Use the my new one instead.

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

    John Crispin
     
  • Now it is possible to build in no device tree at all and depend on the
    boot loader providing one or someone concatenating a device tree to the
    end of the image.

    This was copied from arch/mips/bmips/Kconfig

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

    Hauke Mehrtens
     
  • This fetches the device tree file like it is specified in the MIPS UHI
    interface if one was found. This is also used when the device tree file
    was appended to the kernel image with cat.
    This code is copied from arch/mips/bmips/setup.c.

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

    Hauke Mehrtens
     
  • The reset_ops structure is never modified. Make it const.

    Signed-off-by: Philipp Zabel
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Cc: kernel@pengutronix.de
    Patchwork: https://patchwork.linux-mips.org/patch/12619/
    Signed-off-by: Ralf Baechle

    Philipp Zabel
     

11 Nov, 2015

21 commits

  • Seval of-enabled machines (bmips, lantiq, xlp, pistachio, ralink) copied
    the arguments from dtb to arcs_command_line to prevent the kernel from
    overwriting them.

    Since there is now an option to keep the dtb arguments, default to the
    new option remove the "backup" to arcs_command_line in case of USE_OF is
    enabled, except for those platforms that still take the bootloader
    arguments or do not use any at all.

    Signed-off-by: Jonas Gorski
    Cc: linux-mips@linux-mips.org
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Zubair Lutfullah Kakakhel
    Cc: James Hogan
    Cc: John Crispin
    Cc: Ganesan Ramalingam
    Cc: Jayachandran C
    Cc: Andrew Bresticker
    Cc: James Hartley
    Patchwork: https://patchwork.linux-mips.org/patch/11285/
    Signed-off-by: Ralf Baechle

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

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

    John Crispin
     
  • There is a DWC2 USB core in these SoCs. To make USB work we need to first
    reset and power the state machine. These are SoC specific registers and
    not part of the actual USB core.

    Signed-off-by: Antti Seppälä
    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11449/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • Some configurations of AR9 reported the incorrect speed for the fpi bus.

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

    John Crispin
     
  • request_mem_region() returns a pointer and not an integer with an error
    value. A check for "< 0" on a pointer will cause problems, replace it
    with not null checks instead. This was found with sparse.

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

    Hauke Mehrtens
     
  • Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11394/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11393/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11392/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11391/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11390/
    Patchwork: https://patchwork.linux-mips.org/patch/11399/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11389/
    Patchwork: https://patchwork.linux-mips.org/patch/11398/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11388/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • This adds the PUM bits for USB and SDIO devices

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

    Hauke Mehrtens
     
  • When the SoC starts up most of the devices should be deactivated by the
    PMU, they should be activated when they get used by their drivers. Some
    devices should not get deactivate at startup like the serial, register
    them in a special way.

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

    Hauke Mehrtens
     
  • This add detection of some clocks on the ar10 and grx390.

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

    Hauke Mehrtens
     
  • The vendor code uses different clock values for this clock.

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

    Hauke Mehrtens
     
  • This register is also used on other SoCs.

    Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11383/
    Patchwork: https://patchwork.linux-mips.org/patch/11397/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • This adds support for setting the PMU register on the AR10 and GRX390.

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

    Hauke Mehrtens
     
  • The PMU register are accessed in a non atomic way and they could be
    accessed by different threads simultaneously, which could cause
    problems this patch adds locking around the PMU registers. In
    addition we now also wait till the PMU is actually deactivated.

    [ralf@linux-mips.org: Fix spelling mistake in commit message as noticed
    by Sergei Shtylyov .]

    Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11381/
    Patchwork: https://patchwork.linux-mips.org/patch/11396/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • This adds a basic implementation of clk_round_rate()
    The clk_round_rate() function is called by multiple drivers and
    subsystems now and the lantiq clk driver is supposed to export this,
    but doesn't do so, this causes linking problems like this one:
    ERROR: "clk_round_rate" [drivers/media/v4l2-core/videodev.ko] undefined!

    Signed-off-by: Hauke Mehrtens
    Acked-by: John Crispin
    Cc: # 4.1+
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11358/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     

03 Aug, 2015

2 commits

  • get_c0_perfcount_int is tested from oprofile code. If oprofile is
    compiled as module, get_c0_perfcount_int needs to be exported, otherwise
    it cannot be resolved.

    Fixes: a669efc4a3b4 ("MIPS: Add hook to get C0 performance counter interrupt")
    Cc: stable@vger.kernel.org # v3.19+
    Signed-off-by: Felix Fietkau
    Cc: linux-mips@linux-mips.org
    Cc: abrestic@chromium.org
    Patchwork: https://patchwork.linux-mips.org/patch/10763/
    Signed-off-by: Ralf Baechle

    Felix Fietkau
     
  • The majority of SMP platforms handle their IPIs through do_IRQ()
    which calls irq_{enter/exit}(). When a call function IPI is received,
    smp_call_function_interrupt() is called which also calls
    irq_{enter,exit}(), meaning irq_count is raised twice.

    When tick broadcasting is used (which is implemented via a call
    function IPI), this incorrectly causes all CPU idle time on the core
    receiving broadcast ticks to be accounted as time spent servicing
    IRQs, as account_process_tick() will account as such if irq_count is
    greater than 1. This results in 100% CPU usage being reported on a
    core which receives its ticks via broadcast.

    This patch removes the SMP smp_call_function_interrupt() wrapper which
    calls irq_{enter,exit}(). Platforms which handle their IPIs through
    do_IRQ() now call generic_smp_call_function_interrupt() directly to
    avoid incrementing irq_count a second time. Platforms which don't
    (loongson, sgi-ip27, sibyte) call generic_smp_call_function_interrupt()
    wrapped in irq_{enter,exit}().

    Signed-off-by: Alex Smith
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/10770/
    Signed-off-by: Ralf Baechle

    Alex Smith
     

01 Apr, 2015

2 commits


15 Dec, 2014

1 commit

  • Pull driver core update from Greg KH:
    "Here's the set of driver core patches for 3.19-rc1.

    They are dominated by the removal of the .owner field in platform
    drivers. They touch a lot of files, but they are "simple" changes,
    just removing a line in a structure.

    Other than that, a few minor driver core and debugfs changes. There
    are some ath9k patches coming in through this tree that have been
    acked by the wireless maintainers as they relied on the debugfs
    changes.

    Everything has been in linux-next for a while"

    * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits)
    Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries"
    fs: debugfs: add forward declaration for struct device type
    firmware class: Deletion of an unnecessary check before the function call "vunmap"
    firmware loader: fix hung task warning dump
    devcoredump: provide a one-way disable function
    device: Add dev__once variants
    ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
    ath: use seq_file api for ath9k debugfs files
    debugfs: add helper function to create device related seq_file
    drivers/base: cacheinfo: remove noisy error boot message
    Revert "core: platform: add warning if driver has no owner"
    drivers: base: support cpu cache information interface to userspace via sysfs
    drivers: base: add cpu_device_create to support per-cpu devices
    topology: replace custom attribute macros with standard DEVICE_ATTR*
    cpumask: factor out show_cpumap into separate helper function
    driver core: Fix unbalanced device reference in drivers_probe
    driver core: fix race with userland in device_add()
    sysfs/kernfs: make read requests on pre-alloc files use the buffer.
    sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
    fs: sysfs: return EGBIG on write if offset is larger than file size
    ...

    Linus Torvalds