Merge branch '4.14-features' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 16 Sep 2017 03:43:33 +0000 (20:43 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 16 Sep 2017 03:43:33 +0000 (20:43 -0700)
Pull MIPS updates from Ralf Baechle:
 "This is the main pull request for 4.14 for MIPS; below a summary of
  the non-merge commits:

  CM:
   - Rename mips_cm_base to mips_gcr_base
   - Specify register size when generating accessors
   - Use BIT/GENMASK for register fields, order & drop shifts
   - Add cluster & block args to mips_cm_lock_other()

  CPC:
   - Use common CPS accessor generation macros
   - Use BIT/GENMASK for register fields, order & drop shifts
   - Introduce register modify (set/clear/change) accessors
   - Use change_*, set_* & clear_* where appropriate
   - Add CM/CPC 3.5 register definitions
   - Use GlobalNumber macros rather than magic numbers
   - Have asm/mips-cps.h include CM & CPC headers
   - Cluster support for topology functions
   - Detect CPUs in secondary clusters

  CPS:
   - Read GIC_VL_IDENT directly, not via irqchip driver

  DMA:
   - Consolidate coherent and non-coherent dma_alloc code
   - Don't use dma_cache_sync to implement fd_cacheflush

  FPU emulation / FP assist code:
   - Another series of 14 commits fixing corner cases such as NaN
     propgagation and other special input values.
   - Zero bits 32-63 of the result for a CLASS.D instruction.
   - Enhanced statics via debugfs
   - Do not use bools for arithmetic. GCC 7.1 moans about this.
   - Correct user fault_addr type

  Generic MIPS:
   - Enhancement of stack backtraces
   - Cleanup from non-existing options
   - Handle non word sized instructions when examining frame
   - Fix detection and decoding of ADDIUSP instruction
   - Fix decoding of SWSP16 instruction
   - Refactor handling of stack pointer in get_frame_info
   - Remove unreachable code from force_fcr31_sig()
   - Convert to using %pOF instead of full_name
   - Remove the R6000 support.
   - Move FP code from *_switch.S to *_fpu.S
   - Remove unused ST_OFF from r2300_switch.S
   - Allow platform to specify multiple its.S files
   - Add #includes to various files to ensure code builds reliable and
     without warning..
   - Remove __invalidate_kernel_vmap_range
   - Remove plat_timer_setup
   - Declare various variables & functions static
   - Abstract CPU core & VP(E) ID access through accessor functions
   - Store core & VP IDs in GlobalNumber-style variable
   - Unify checks for sibling CPUs
   - Add CPU cluster number accessors
   - Prevent direct use of generic_defconfig
   - Make CONFIG_MIPS_MT_SMP default y
   - Add __ioread64_copy
   - Remove unnecessary inclusions of linux/irqchip/mips-gic.h

  GIC:
   - Introduce asm/mips-gic.h with accessor functions
   - Use new GIC accessor functions in mips-gic-timer
   - Remove counter access functions from irq-mips-gic.c
   - Remove gic_read_local_vp_id() from irq-mips-gic.c
   - Simplify shared interrupt pending/mask reads in irq-mips-gic.c
   - Simplify gic_local_irq_domain_map() in irq-mips-gic.c
   - Drop gic_(re)set_mask() functions in irq-mips-gic.c
   - Remove gic_set_polarity(), gic_set_trigger(), gic_set_dual_edge(),
     gic_map_to_pin() and gic_map_to_vpe() from irq-mips-gic.c.
   - Convert remaining shared reg access, local int mask access and
     remaining local reg access to new accessors
   - Move GIC_LOCAL_INT_* to asm/mips-gic.h
   - Remove GIC_CPU_INT* macros from irq-mips-gic.c
   - Move various definitions to the driver
   - Remove gic_get_usm_range()
   - Remove __gic_irq_dispatch() forward declaration
   - Remove gic_init()
   - Use mips_gic_present() in place of gic_present and remove
     gic_present
   - Move gic_get_c0_*_int() to asm/mips-gic.h
   - Remove linux/irqchip/mips-gic.h
   - Inline __gic_init()
   - Inline gic_basic_init()
   - Make pcpu_masks a per-cpu variable
   - Use pcpu_masks to avoid reading GIC_SH_MASK*
   - Clean up mti, reserved-cpu-vectors handling
   - Use cpumask_first_and() in gic_set_affinity()
   - Let the core set struct irq_common_data affinity

  microMIPS:
   - Fix microMIPS stack unwinding on big endian systems

  MIPS-GIC:
   - SYNC after enabling GIC region

  NUMA:
   - Remove the unused parent_node() macro

  R6:
   - Constify r2_decoder_tables
   - Add accessor & bit definitions for GlobalNumber

  SMP:
   - Constify smp ops
   - Allow boot_secondary SMP op to return errors

  VDSO:
   - Drop gic_get_usm_range() usage
   - Avoid use of linux/irqchip/mips-gic.h

  Platform changes:

  Alchemy:
   - Add devboard machine type to cpuinfo
   - update cpu feature overrides
   - Threaded carddetect irqs for devboards

  AR7:
   - allow NULL clock for clk_get_rate

  BCM63xx:
   - Fix ENETDMA_6345_MAXBURST_REG offset
   - Allow NULL clock for clk_get_rate

  CI20:
   - Enable GPIO and RTC drivers in defconfig
   - Add ethernet and fixed-regulator nodes to DTS

  Generic platform:
   - Move Boston and NI 169445 FIT image source to their own files
   - Include asm/bootinfo.h for plat_fdt_relocated()
   - Include asm/time.h for get_c0_*_int()
   - Include asm/bootinfo.h for plat_fdt_relocated()
   - Include asm/time.h for get_c0_*_int()
   - Allow filtering enabled boards by requirements
   - Don't explicitly disable CONFIG_USB_SUPPORT
   - Bump default NR_CPUS to 16

  JZ4700:
   - Probe the jz4740-rtc driver from devicetree

  Lantiq:
   - Drop check of boot select from the spi-falcon driver.
   - Drop check of boot select from the lantiq-flash MTD driver.
   - Access boot cause register in the watchdog driver through regmap
   - Add device tree binding documentation for the watchdog driver
   - Add docs for the RCU DT bindings.
   - Convert the fpi bus driver to a platform_driver
   - Remove ltq_reset_cause() and ltq_boot_select(
   - Switch to a proper reset driver
   - Switch to a new drivers/soc GPHY driver
   - Add an USB PHY driver for the Lantiq SoCs using the RCU module
   - Use of_platform_default_populate instead of __dt_register_buses
   - Enable MFD_SYSCON to be able to use it for the RCU MFD
   - Replace ltq_boot_select() with dummy implementation.

  Loongson 2F:
   - Allow NULL clock for clk_get_rate

  Malta:
   - Use new GIC accessor functions

  NI 169445:
   - Add support for NI 169445 board.
   - Only include in 32r2el kernels

  Octeon:
   - Add support for watchdog of 78XX SOCs.
   - Add support for watchdog of CN68XX SOCs.
   - Expose support for mips32r1, mips32r2 and mips64r1
   - Enable more drivers in config file
   - Add support for accessing the boot vector.
   - Remove old boot vector code from watchdog driver
   - Define watchdog registers for 70xx, 73xx, 78xx, F75xx.
   - Make CSR functions node aware.
   - Allow access to CIU3 IRQ domains.
   - Misc cleanups in the watchdog driver

  Omega2+:
   - New board, add support and defconfig

  Pistachio:
   - Enable Root FS on NFS in defconfig

  Ralink:
   - Add Mediatek MT7628A SoC
   - Allow NULL clock for clk_get_rate
   - Explicitly request exclusive reset control in the pci-mt7620 PCI driver.

  SEAD3:
   - Only include in 32 bit kernels by default

  VoCore:
   - Add VoCore as a vendor t0 dt-bindings
   - Add defconfig file"

* '4.14-features' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (167 commits)
  MIPS: Refactor handling of stack pointer in get_frame_info
  MIPS: Stacktrace: Fix microMIPS stack unwinding on big endian systems
  MIPS: microMIPS: Fix decoding of swsp16 instruction
  MIPS: microMIPS: Fix decoding of addiusp instruction
  MIPS: microMIPS: Fix detection of addiusp instruction
  MIPS: Handle non word sized instructions when examining frame
  MIPS: ralink: allow NULL clock for clk_get_rate
  MIPS: Loongson 2F: allow NULL clock for clk_get_rate
  MIPS: BCM63XX: allow NULL clock for clk_get_rate
  MIPS: AR7: allow NULL clock for clk_get_rate
  MIPS: BCM63XX: fix ENETDMA_6345_MAXBURST_REG offset
  mips: Save all registers when saving the frame
  MIPS: Add DWARF unwinding to assembly
  MIPS: Make SAVE_SOME more standard
  MIPS: Fix issues in backtraces
  MIPS: jz4780: DTS: Probe the jz4740-rtc driver from devicetree
  MIPS: Ci20: Enable RTC driver
  watchdog: octeon-wdt: Add support for 78XX SOCs.
  watchdog: octeon-wdt: Add support for cn68XX SOCs.
  watchdog: octeon-wdt: File cleaning.
  ...

13 files changed:
1  2 
Documentation/devicetree/bindings/vendor-prefixes.txt
MAINTAINERS
arch/mips/alchemy/devboards/db1200.c
arch/mips/alchemy/devboards/db1300.c
arch/mips/configs/pistachio_defconfig
arch/mips/kernel/smp.c
arch/mips/pci/pci-legacy.c
drivers/irqchip/irq-mips-gic.c
drivers/phy/Kconfig
drivers/phy/Makefile
drivers/reset/Kconfig
drivers/reset/Makefile
drivers/soc/Makefile

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index b3a60da088db4c7e7c17fc31f51445f091e3a2e9,7187af1bea03c3bc0e028709ed33e9d513dbdbfd..6e52a88bbd9e9cc7a832d67b13c717efe5cb039a
@@@ -457,18 -261,16 +261,17 @@@ static int gic_set_affinity(struct irq_
        spin_lock_irqsave(&gic_lock, flags);
  
        /* Re-route this IRQ */
-       gic_map_to_vpe(irq, mips_cm_vp_id(cpu));
+       write_gic_map_vp(irq, BIT(mips_cm_vp_id(cpu)));
  
        /* Update the pcpu_masks */
-       for (i = 0; i < min(gic_vpes, NR_CPUS); i++)
-               clear_bit(irq, pcpu_masks[i].pcpu_mask);
-       set_bit(irq, pcpu_masks[cpu].pcpu_mask);
+       gic_clear_pcpu_masks(irq);
+       if (read_gic_mask(irq))
+               set_bit(irq, per_cpu_ptr(pcpu_masks, cpu));
  
-       cpumask_copy(irq_data_get_affinity_mask(d), cpumask);
 +      irq_data_update_effective_affinity(d, cpumask_of(cpu));
        spin_unlock_irqrestore(&gic_lock, flags);
  
-       return IRQ_SET_MASK_OK_NOCOPY;
+       return IRQ_SET_MASK_OK;
  }
  #endif
  
index 441912c10b82bbeb664b53067ed0e17815a594df,968088ceaeb339520ac58b63b179535279d2c5a4..5c8d452e35e2ea58251ba3160d6b9fef18870f3c
@@@ -44,11 -52,10 +44,12 @@@ source "drivers/phy/allwinner/Kconfig
  source "drivers/phy/amlogic/Kconfig"
  source "drivers/phy/broadcom/Kconfig"
  source "drivers/phy/hisilicon/Kconfig"
+ source "drivers/phy/lantiq/Kconfig"
  source "drivers/phy/marvell/Kconfig"
 +source "drivers/phy/mediatek/Kconfig"
  source "drivers/phy/motorola/Kconfig"
  source "drivers/phy/qualcomm/Kconfig"
 +source "drivers/phy/ralink/Kconfig"
  source "drivers/phy/renesas/Kconfig"
  source "drivers/phy/rockchip/Kconfig"
  source "drivers/phy/samsung/Kconfig"
index 06f3c500030d53866603fb4771057d50d5d2a893,a8b9439a5d8e1b5b7ee8b49000f069ce8ea4ede9..3a52dcb09566822dfeea95988b4811a8d79c9982
@@@ -4,12 -4,12 +4,12 @@@
  
  obj-$(CONFIG_GENERIC_PHY)             += phy-core.o
  obj-$(CONFIG_PHY_LPC18XX_USB_OTG)     += phy-lpc18xx-usb-otg.o
 -obj-$(CONFIG_PHY_MT65XX_USB3)         += phy-mt65xx-usb3.o
  obj-$(CONFIG_PHY_XGENE)                       += phy-xgene.o
  obj-$(CONFIG_PHY_PISTACHIO_USB)               += phy-pistachio-usb.o
  obj-$(CONFIG_ARCH_SUNXI)              += allwinner/
  obj-$(CONFIG_ARCH_MESON)              += amlogic/
+ obj-$(CONFIG_LANTIQ)                  += lantiq/
 +obj-$(CONFIG_ARCH_MEDIATEK)           += mediatek/
  obj-$(CONFIG_ARCH_RENESAS)            += renesas/
  obj-$(CONFIG_ARCH_ROCKCHIP)           += rockchip/
  obj-$(CONFIG_ARCH_TEGRA)              += tegra/
Simple merge
index b62783f50fe5b0c0b29b6152c2ddbd3f5e06cc21,54d8b3f703f2af7dbea0c855b5c43925e428d4ed..d368367110e55780c5154995011cd193c709ab49
@@@ -5,8 -5,9 +5,9 @@@ obj-$(CONFIG_ARCH_TEGRA) += tegra
  obj-$(CONFIG_RESET_A10SR) += reset-a10sr.o
  obj-$(CONFIG_RESET_ATH79) += reset-ath79.o
  obj-$(CONFIG_RESET_BERLIN) += reset-berlin.o
 -obj-$(CONFIG_RESET_GEMINI) += reset-gemini.o
 +obj-$(CONFIG_RESET_HSDK_V1) += reset-hsdk-v1.o
  obj-$(CONFIG_RESET_IMX7) += reset-imx7.o
+ obj-$(CONFIG_RESET_LANTIQ) += reset-lantiq.o
  obj-$(CONFIG_RESET_LPC18XX) += reset-lpc18xx.o
  obj-$(CONFIG_RESET_MESON) += reset-meson.o
  obj-$(CONFIG_RESET_OXNAS) += reset-oxnas.o
index 280a6a91a9e26f1f8aa07b510d07ae698fde07b4,f24d95194ced7b4f83ca20623cff2c92d7b5ac5a..2fcaff8645846ca19202306ecc91f5b37c1bf441
@@@ -9,8 -9,8 +9,9 @@@ obj-$(CONFIG_ARCH_DOVE)          += dove
  obj-$(CONFIG_MACH_DOVE)               += dove/
  obj-y                         += fsl/
  obj-$(CONFIG_ARCH_MXC)                += imx/
+ obj-$(CONFIG_SOC_XWAY)                += lantiq/
  obj-$(CONFIG_ARCH_MEDIATEK)   += mediatek/
 +obj-$(CONFIG_ARCH_MESON)      += amlogic/
  obj-$(CONFIG_ARCH_QCOM)               += qcom/
  obj-y                         += renesas/
  obj-$(CONFIG_ARCH_ROCKCHIP)   += rockchip/