1. 24 10月, 2013 2 次提交
    • G
      of/irq: Replace of_irq with of_phandle_args · 530210c7
      Grant Likely 提交于
      struct of_irq and struct of_phandle_args are exactly the same structure.
      This patch makes the kernel use of_phandle_args everywhere. This in
      itself isn't a big deal, but it makes some follow-on patches simpler.
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      Acked-by: NMichal Simek <monstr@monstr.eu>
      Acked-by: NTony Lindgren <tony@atomide.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      530210c7
    • G
      of/irq: Rename of_irq_map_* functions to of_irq_parse_* · 0c02c800
      Grant Likely 提交于
      The OF irq handling code has been overloading the term 'map' to refer to
      both parsing the data in the device tree and mapping it to the internal
      linux irq system. This is probably because the device tree does have the
      concept of an 'interrupt-map' function for translating interrupt
      references from one node to another, but 'map' is still confusing when
      the primary purpose of some of the functions are to parse the DT data.
      
      This patch renames all the of_irq_map_* functions to of_irq_parse_*
      which makes it clear that there is a difference between the parsing
      phase and the mapping phase. Kernel code can make use of just the
      parsing or just the mapping support as needed by the subsystem.
      
      The patch was generated mechanically with a handful of sed commands.
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      Acked-by: NMichal Simek <monstr@monstr.eu>
      Acked-by: NTony Lindgren <tony@atomide.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      0c02c800
  2. 16 10月, 2013 4 次提交
    • T
      of/irq: Pass trigger type in IRQ resource flags · 4a43d686
      Tomasz Figa 提交于
      Some drivers might rely on availability of trigger flags in IRQ
      resource, for example to configure the hardware for particular interrupt
      type. However current code creating IRQ resources from data in device
      tree does not configure trigger flags in resulting resources.
      
      This patch tries to solve the problem, based on the fact that
      irq_of_parse_and_map() configures the trigger based on DT interrupt
      specifier and IRQD_TRIGGER_* flags are consistent with IORESOURCE_IRQ_*,
      and we can get correct trigger flags by calling irqd_get_trigger_type()
      after mapping the interrupt.
      Signed-off-by: NTomasz Figa <tomasz.figa@gmail.com>
      [grant.likely: Merged the two assignments to r->flags]
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      4a43d686
    • G
      of: Fix dereferencing node name in debug output to be safe · 8804827b
      Grant Likely 提交于
      Several locations in the of_address and of_irq code dereference the
      full_name parameter from a device_node pointer without checking if the
      pointer is valid.  This patch switches to use of_node_full_name() which
      always checks the pointer.
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      8804827b
    • G
      of: Fix iteration bug over CPU reg properties · f3cea45a
      Grant Likely 提交于
      The size of each hwid in a cpu nodes 'reg' property is defined by the
      parents #address-cells property in the normal way. The cpu parsing code
      has a bug where it will overrun the end of the property if
      address-cells is greater than one. This commit fixes the problem by
      adjusting the array size by the number of address cells. It also makes
      sure address-cells isn't zero for that would cause an infinite loop.
      
      v2: bail if #address-cells is zero instead of forcing to
          OF_ROOT_NODE_ADDR_CELLS_DEFAULT. Forcing it will cause the reg
          property to be parsed incorrectly.
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      f3cea45a
    • D
      of: Make cpu node handling more portable. · d1cb9d1a
      David Miller 提交于
      Use for_each_node_by_type() to iterate all cpu nodes in the
      system.
      
      Provide and overridable function arch_find_n_match_cpu_physical_id,
      which sees if the given device node matches 'cpu' and if so sets
      '*thread' when non-NULL to the cpu thread number within the core.
      
      The default implementation behaves the same as the existing code.
      
      Add a sparc64 implementation.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Tested-by: NSudeep KarkadaNagesha <Sudeep.KarkadaNagesha@arm.com>
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      d1cb9d1a
  3. 14 10月, 2013 11 次提交
    • G
      of: fix unnecessary warning on missing /cpus node · 444c91e5
      Grant Likely 提交于
      Not all DT platforms have all the cpus collected under a /cpus node.
      That just happens to be a details of FDT, ePAPR and PowerPC platforms.
      Sparc does something different, but unfortunately the current code
      complains with a warning if /cpus isn't there. This became a problem
      with commit f86e4718, "driver/core cpu: initialize of_node in cpu's
      device structure", which caused the function to get called for all
      architectures.
      
      This commit is a temporary fix to fail silently if the cpus node isn't
      present. A proper fix will come later to allow arch code to provide a
      custom mechanism for decoding the CPU hwid if the 'reg' property isn't
      appropriate.
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      Cc: David Miller <davem@davemloft.net>
      Cc: Sudeep KarkadaNagesha <Sudeep.KarkadaNagesha@arm.com>
      Cc: Rob Herring <rob.herring@calxeda.com>
      444c91e5
    • L
      Linux 3.12-rc5 · 61e6cfa8
      Linus Torvalds 提交于
      61e6cfa8
    • L
      Merge git://www.linux-watchdog.org/linux-watchdog · 73cac03d
      Linus Torvalds 提交于
      Pull watchdog fixes from Wim Van Sebroeck:
       "This will fix a deadlock on the ts72xx_wdt driver, fix bitmasks in the
        kempld_wdt driver and fix a section mismatch in the sunxi_wdt driver"
      
      * git://www.linux-watchdog.org/linux-watchdog:
        watchdog: sunxi: Fix section mismatch
        watchdog: kempld_wdt: Fix bit mask definition
        watchdog: ts72xx_wdt: locking bug in ioctl
      73cac03d
    • M
      watchdog: sunxi: Fix section mismatch · 1d5898b4
      Maxime Ripard 提交于
      This driver has a section mismatch, for probe and remove functions,
      leading to the following warning during the compilation.
      
      WARNING: drivers/watchdog/built-in.o(.data+0x24): Section mismatch in
      reference from the variable sunxi_wdt_driver to the function
      .init.text:sunxi_wdt_probe()
      The variable sunxi_wdt_driver references
      the function __init sunxi_wdt_probe()
      Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      1d5898b4
    • J
      watchdog: kempld_wdt: Fix bit mask definition · 4c4e4566
      Jingoo Han 提交于
      STAGE_CFG bits are defined as [5:4] bits. However, '(((x) & 0x30) << 4)'
      handles [9:8] bits. Thus, it should be fixed in order to handle
      [5:4] bits.
      Signed-off-by: NJingoo Han <jg1.han@samsung.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      4c4e4566
    • D
      watchdog: ts72xx_wdt: locking bug in ioctl · 8612ed0d
      Dan Carpenter 提交于
      Calling the WDIOC_GETSTATUS & WDIOC_GETBOOTSTATUS and twice will cause a
      interruptible deadlock.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      8612ed0d
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 3552570a
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Olof Johansson:
       "A small batch of fixes this week, mostly OMAP related.  Nothing stands
        out as particularly controversial.
      
        Also a fix for a 3.12-rc1 timer regression for Exynos platforms,
        including the Chromebooks"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: exynos: dts: Update 5250 arch timer node with clock frequency
        ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config
        ARM: mach-omap2: board-generic: fix undefined symbol
        ARM: dts: Fix pinctrl mask for omap3
        ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree
        ARM: OMAP2: gpmc-onenand: fix sync mode setup with DT
      3552570a
    • Y
      ARM: exynos: dts: Update 5250 arch timer node with clock frequency · 4d594dd3
      Yuvaraj Kumar C D 提交于
      Without the "clock-frequency" property in arch timer node, could able
      to see the below crash dump.
      
      [<c0014e28>] (unwind_backtrace+0x0/0xf4) from [<c0011808>] (show_stack+0x10/0x14)
      [<c0011808>] (show_stack+0x10/0x14) from [<c036ac1c>] (dump_stack+0x7c/0xb0)
      [<c036ac1c>] (dump_stack+0x7c/0xb0) from [<c01ab760>] (Ldiv0_64+0x8/0x18)
      [<c01ab760>] (Ldiv0_64+0x8/0x18) from [<c0062f60>] (clockevents_config.part.2+0x1c/0x74)
      [<c0062f60>] (clockevents_config.part.2+0x1c/0x74) from [<c0062fd8>] (clockevents_config_and_register+0x20/0x2c)
      [<c0062fd8>] (clockevents_config_and_register+0x20/0x2c) from [<c02b8e8c>] (arch_timer_setup+0xa8/0x134)
      [<c02b8e8c>] (arch_timer_setup+0xa8/0x134) from [<c04b47b4>] (arch_timer_init+0x1f4/0x24c)
      [<c04b47b4>] (arch_timer_init+0x1f4/0x24c) from [<c04b40d8>] (clocksource_of_init+0x34/0x58)
      [<c04b40d8>] (clocksource_of_init+0x34/0x58) from [<c049ed8c>] (time_init+0x20/0x2c)
      [<c049ed8c>] (time_init+0x20/0x2c) from [<c049b95c>] (start_kernel+0x1e0/0x39c)
      
      THis is because the Exynos u-boot, for example on the Chromebooks, doesn't set
      up the CNTFRQ register as expected by arch_timer. Instead, we have to specify
      the frequency in the device tree like this.
      Signed-off-by: NYuvaraj Kumar C D <yuvaraj.cd@samsung.com>
      [olof: Changed subject, added comment, elaborated on commit message]
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      4d594dd3
    • O
      Merge tag 'fixes-against-v3.12-rc3-take2' of... · 98ead6e0
      Olof Johansson 提交于
      Merge tag 'fixes-against-v3.12-rc3-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      From Tony Lindgren:
      
      Few fixes for omap3 related hangs and errors that people have
      noticed now that people are actually using the device tree
      based booting for omap3.
      
      Also one regression fix for timer compile for dra7xx when
      omap5 is not selected, and a LED regression fix for n900.
      
      * tag 'fixes-against-v3.12-rc3-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config
        ARM: mach-omap2: board-generic: fix undefined symbol
        ARM: dts: Fix pinctrl mask for omap3
        ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree
        ARM: OMAP2: gpmc-onenand: fix sync mode setup with DT
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      98ead6e0
    • L
      Merge branch 'parisc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 2d4712b7
      Linus Torvalds 提交于
      Pull parisc fixes from Helge Deller:
       "This patchset includes a bugfix to prevent a kernel crash when memory
        in page zero is accessed by the kernel itself, e.g.  via
        probe_kernel_read().
      
        Furthermore we now export flush_cache_page() which is needed
        (indirectly) by the lustre filesystem.  The other patches remove
        unused functions and optimizes the page fault handler to only evaluate
        variables if needed, which again protects against possible kernel
        crashes"
      
      * 'parisc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: let probe_kernel_read() capture access to page zero
        parisc: optimize variable initialization in do_page_fault
        parisc: fix interruption handler to respect pagefault_disable()
        parisc: mark parisc_terminate() noreturn and cold.
        parisc: remove unused syscall_ipi() function.
        parisc: kill SMP single function call interrupt
        parisc: Export flush_cache_page() (needed by lustre)
      2d4712b7
    • L
      Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma · 75c53188
      Linus Torvalds 提交于
      Pull slave-dmaengine fixes from Vinod Koul:
       "Another week, time to send another fixes request taking time out of
        extended weekend for the festivities in this part of the world.
      
        We have two fixes from Sergei for rcar driver and one fixing memory
        leak of edma driver by Geyslan"
      
      * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
        dma: edma.c: remove edma_desc leakage
        rcar-hpbdma: add parameter to set_slave() method
        rcar-hpbdma: remove shdma_free_irq() calls
      75c53188
  4. 13 10月, 2013 16 次提交
  5. 12 10月, 2013 3 次提交
    • V
      ARC: Ignore ptrace SETREGSET request for synthetic register "stop_pc" · 5b242828
      Vineet Gupta 提交于
      ARCompact TRAP_S insn used for breakpoints, commits before exception is
      taken (updating architectural PC). So ptregs->ret contains next-PC and
      not the breakpoint PC itself. This is different from other restartable
      exceptions such as TLB Miss where ptregs->ret has exact faulting PC.
      gdb needs to know exact-PC hence ARC ptrace GETREGSET provides for
      @stop_pc which returns ptregs->ret vs. EFA depending on the
      situation.
      
      However, writing stop_pc (SETREGSET request), which updates ptregs->ret
      doesn't makes sense stop_pc doesn't always correspond to that reg as
      described above.
      
      This was not an issue so far since user_regs->ret / user_regs->stop_pc
      had same value and both writing to ptregs->ret was OK, needless, but NOT
      broken, hence not observed.
      
      With gdb "jump", they diverge, and user_regs->ret updating ptregs is
      overwritten immediately with stop_pc, which this patch fixes.
      Reported-by: NAnton Kolesov <akolesov@synopsys.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      5b242828
    • L
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 46f37519
      Linus Torvalds 提交于
      Pull MIPS fix from Ralf Baechle:
       "Just one fix.  The stack protector was loading the value of the canary
        instead of its address"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: stack protector: Fix per-task canary switch
      46f37519
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · cd4edf7a
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "All over the map..
      
         - nouveau:
           disable MSI, needs more work, will try again next merge window
         - radeon:
            audio + uvd regression fixes, dpm fixes, reset fixes
         - i915:
           the dpms fix might fix your haswell
      
        And one pain in the ass revert, so we have VGA arbitration that when
        implemented 4-5 years ago really hoped that GPUs could remove
        themselves from arbitration completely once they had a kernel driver.
      
        It seems Intel hw designers decided that was too nice a facility to
        allow us to have so they removed it when they went on-die (so since
        Ironlake at least).  Now Alex Williamson added support for VGA
        arbitration for newer GPUs however this now exposes itself to
        userspace as requireing arbitration of GPU VGA regions and the X
        server gets involved and disables things that it can't handle when VGA
        access is possibly required around every operation.
      
        So in order to not break userspace we just reverted things back to the
        old known broken status so maybe we can try and design out way out.
      
        Ville also had a patch to use stop machine for the two times Intel
        needs to access VGA space, that might be acceptable with some rework,
        but for now myself and Daniel agreed to just go back"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (23 commits)
        Revert "i915: Update VGA arbiter support for newer devices"
        Revert "drm/i915: Delay disabling of VGA memory until vgacon->fbcon handoff is done"
        drm/radeon: re-enable sw ACR support on pre-DCE4
        drm/radeon/dpm: disable bapm on TN asics
        drm/radeon: improve soft reset on CIK
        drm/radeon: improve soft reset on SI
        drm/radeon/dpm: off by one in si_set_mc_special_registers()
        drm/radeon/dpm/btc: off by one in btc_set_mc_special_registers()
        drm/radeon: forever loop on error in radeon_do_test_moves()
        drm/radeon: fix hw contexts for SUMO2 asics
        drm/radeon: fix typo in CP DMA register headers
        drm/radeon/dpm: disable multiple UVD states
        drm/radeon: use hw generated CTS/N values for audio
        drm/radeon: fix N/CTS clock matching for audio
        drm/radeon: use 64-bit math to calculate CTS values for audio (v2)
        drm/edid: catch kmalloc failure in drm_edid_to_speaker_allocation
        Revert "drm/fb-helper: don't sleep for screen unblank when an oops is in progress"
        drm/gma500: fix things after get/put page helpers
        drm/nouveau/mc: disable msi support by default, it's busted in tons of places
        drm/i915: Only apply DPMS to the encoder if enabled
        ...
      cd4edf7a
  6. 11 10月, 2013 4 次提交