1. 21 Sep, 2016 1 commit
    • Arnd Bergmann's avatar
      Merge tag 'imx-legacy-4.9' of... · b315dac3
      Arnd Bergmann authored
      Merge tag 'imx-legacy-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/soc
      
      Pull "i.MX legacy board file changes for 4.9" from Shawn Guo:
      
      It includes a patch series that moves registrations and initializations
      of all peripherals which are GPIO line consumers for all legacy boards
      from .init_machine to .init_late init level. This is needed to
      proactively prevent boot time issues on the legacy boards due to the
      deprioritized init level of the GPIO controller driver (set lower than
      IOMUX controller driver init level), which is shared among all i.MX
      SoCs.
      
      * tag 'imx-legacy-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
        ARM: imx legacy: pca100: move peripheral initialization to .init_late
        ARM: imx legacy: mx27ads: move peripheral initialization to .init_late
        ARM: imx legacy: mx21ads: move peripheral initialization to .init_late
        ARM: imx legacy: pcm043: move peripheral initialization to .init_late
        ARM: imx legacy: mx35-3ds: move peripheral initialization to .init_late
        ARM: imx legacy: mx27-3ds: move peripheral initialization to .init_late
        ARM: imx legacy: imx27-visstrim-m10: move peripheral initialization to .init_late
        ARM: imx legacy: vpr200: move peripheral initialization to .init_late
        ARM: imx legacy: mx31moboard: move peripheral initialization to .init_late
        ARM: imx legacy: armadillo5x0: move peripheral initialization to .init_late
        ARM: imx legacy: qong: move peripheral initialization to .init_late
        ARM: imx legacy: mx31-3ds: move peripheral initialization to .init_late
        ARM: imx legacy: pcm037: move peripheral initialization to .init_late
        ARM: imx legacy: mx31lilly: move peripheral initialization to .init_late
        ARM: imx legacy: mx31ads: move peripheral initialization to .init_late
        ARM: imx legacy: mx31lite: move peripheral initialization to .init_late
        ARM: imx legacy: kzm: move peripheral initialization to .init_late
      b315dac3
  2. 20 Sep, 2016 17 commits
  3. 19 Sep, 2016 3 commits
  4. 14 Sep, 2016 5 commits
  5. 09 Sep, 2016 5 commits
    • Robert Jarzmik's avatar
      ARM: pxa: pxa_cplds: fix interrupt handling · 9ba63e3c
      Robert Jarzmik authored
      Since its initial commit, the driver is buggy for multiple interrupts
      handling. The translation from the former lubbock.c file was not
      complete, and might stall all interrupt handling when multiple
      interrupts occur.
      
      This is especially true when inside the interrupt handler and if a new
      interrupt comes and is not handled, leaving the output line still held,
      and not creating a transition as the GPIO block behind would expect to
      trigger another cplds_irq_handler() call.
      
      For the record, the hardware is working as follows.
      
      The interrupt mechanism relies on :
       - one status register
       - one mask register
      
      Let's suppose the input irq lines are called :
       - i_sa1111
       - i_lan91x
       - i_mmc_cd
      Let's suppose the status register for each irq line is called :
       - status_sa1111
       - status_lan91x
       - status_mmc_cd
      Let's suppose the interrupt mask for each irq line is called :
       - irqen_sa1111
       - irqen_lan91x
       - irqen_mmc_cd
      Let's suppose the output irq line, connected to GPIO0 is called :
       - o_gpio0
      
      The behavior is as follows :
       - o_gpio0 = not((status_sa1111 & irqen_sa1111) |
      		 (status_lan91x & irqen_lan91x) |
      		 (status_mmc_cd & irqen_mmc_cd))
         => this is a N-to-1 NOR gate and multiple AND gates
       - irqen_* is exactly as programmed by a write to the FPGA
       - status_* behavior is governed by a bi-stable D flip-flop
         => on next FPGA clock :
           - if i_xxx is high, status_xxx becomes 1
           - if i_xxx is low, status_xxx remains as it is
           - if software sets status_xxx to 0, the D flip-flop is reset
             => status_xxx becomes 0
             => on next FPGA clock cycle, if i_xxx is high, status_xxx becomes
      	  1 again
      
      Fixes: fc9e38c0 ("ARM: pxa: lubbock: use new pxa_cplds driver")
      Reported-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      9ba63e3c
    • Robert Jarzmik's avatar
      ARM: pxa: remove irq init from dt machines · 32f17997
      Robert Jarzmik authored
      The init_irq and handle_irq can be declared through standard irqchip
      declaration and are not necessary in machine descriptions.
      
      This is another step towards the generic kernel for the pxa
      architecture.
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      32f17997
    • Markus Elfring's avatar
      ARM: pxa: Use kmalloc_array() in pxa_pm_init() · 85711105
      Markus Elfring authored
      * A multiplication for the size determination of a memory allocation
        indicated that an array data structure should be processed.
        Thus use the corresponding function "kmalloc_array".
      
        This issue was detected by using the Coccinelle software.
      
      * Replace the specification of a data type by a pointer dereference
        to make the corresponding size determination a bit safer according to
        the Linux coding style convention.
      Signed-off-by: default avatarMarkus Elfring <elfring@users.sourceforge.net>
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      85711105
    • Petr Cvek's avatar
      ARM: pxa: magician: Remove duplicated I2C pins declaration · e572f649
      Petr Cvek authored
      Magician has GPIO117_I2C_SCL and GPIO118_I2C_SDA pins declared twice.
      Signed-off-by: default avatarPetr Cvek <petr.cvek@tul.cz>
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      e572f649
    • Robert Jarzmik's avatar
      ARM: pxa: fix GPIO double shifts · ca26475b
      Robert Jarzmik authored
      The commit 9bf448c6 ("ARM: pxa: use generic gpio operation instead of
      gpio register") from Oct 17, 2011, leads to the following static checker
      warning:
        arch/arm/mach-pxa/spitz_pm.c:172 spitz_charger_wakeup()
        warn: double left shift '!gpio_get_value(SPITZ_GPIO_KEY_INT)
              << (1 << ((SPITZ_GPIO_KEY_INT) & 31))'
      
      As Dan reported, the value is shifted three times :
       - once by gpio_get_value(), which returns either 0 or BIT(gpio)
       - once by the shift operation '<<'
       - a last time by GPIO_bit(gpio) which is BIT(gpio)
      
      Therefore the calculation lead to a chained or operator of :
       - (1 << gpio) << (1 << gpio) = (2^gpio)^gpio = 2 ^ (gpio * gpio)
      
      It is be sheer luck the former statement works, only because each gpio
      used is strictly smaller than 6, and therefore 2^(gpio^2) never
      overflows a 32 bits value, and because it is used as a boolean value to
      check a gpio activation.
      
      As the xxx_charger_wakeup() functions are used as a true/false detection
      mechanism, take that opportunity to change their prototypes from integer
      return value to boolean one.
      
      Fixes: 9bf448c6 ("ARM: pxa: use generic gpio operation instead of
      gpio register")
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Cc: Joe Perches <joe@perches.com>
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      ca26475b
  6. 08 Sep, 2016 2 commits
  7. 02 Sep, 2016 2 commits
  8. 29 Aug, 2016 3 commits
  9. 28 Aug, 2016 2 commits
    • Linus Torvalds's avatar
      Linux 4.8-rc4 · 3eab887a
      Linus Torvalds authored
      3eab887a
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-4.8-rc4' of git://people.freedesktop.org/~airlied/linux · 25d0d91a
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A bunch of fixes covering i915, amdgpu, one tegra and some core DRM
        ones.  Nothing too strange at this point"
      
      * tag 'drm-fixes-for-4.8-rc4' of git://people.freedesktop.org/~airlied/linux: (21 commits)
        drm/atomic: Don't potentially reset color_mgmt_changed on successive property updates.
        drm: Protect fb_defio in drivers with CONFIG_KMS_FBDEV_EMULATION
        drm/amdgpu: skip TV/CV in display parsing
        drm/amdgpu: avoid a possible array overflow
        drm/amdgpu: fix lru size grouping v2
        drm/tegra: dsi: Enhance runtime power management
        drm/i915: Fix botched merge that downgrades CSR versions.
        drm/i915/skl: Ensure pipes with changed wms get added to the state
        drm/i915/gen9: Only copy WM results for changed pipes to skl_hw
        drm/i915/skl: Add support for the SAGV, fix underrun hangs
        drm/i915/gen6+: Interpret mailbox error flags
        drm/i915: Reattach comment, complete type specification
        drm/i915: Unconditionally flush any chipset buffers before execbuf
        drm/i915/gen9: Drop invalid WARN() during data rate calculation
        drm/i915/gen9: Initialize intel_state->active_crtcs during WM sanitization (v2)
        drm: Reject page_flip for !DRIVER_MODESET
        drm/amdgpu: fix timeout value check in amd_sched_job_recovery
        drm/amdgpu: fix sdma_v2_4_ring_test_ib
        drm/amdgpu: fix amdgpu_move_blit on 32bit systems
        drm/radeon: fix radeon_move_blit on 32bit systems
        ...
      25d0d91a