1. 10 Feb, 2013 5 commits
  2. 05 Feb, 2013 20 commits
    • Olof Johansson's avatar
      Merge tag 'imx-soc-3.9' of git://git.linaro.org/people/shawnguo/linux-2.6 into next/soc · 1087f4db
      Olof Johansson authored
      From Shawn Guo:
      imx soc changes for 3.9
      
       - Sort out imx DEBUG_LL uart port selection
       - A couple of imx_v6_v7_defconfig updates
      
      * tag 'imx-soc-3.9' of git://git.linaro.org/people/shawnguo/linux-2.6:
        ARM: imx_v6_v7_defconfig: enable anatop regulator and snvs rtc
        ARM: imx: support DEBUG_LL uart port selection for all i.MX SoCs
        ARM: imx: use separated debug uart symbol for imx31 and imx35
        ARM: imx_v6_v7_defconfig: Select IPUV3 driver
      1087f4db
    • Olof Johansson's avatar
      Merge tag 'omap-for-v3.9/pm-signed' of... · d37d79ed
      Olof Johansson authored
      Merge tag 'omap-for-v3.9/pm-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc
      
      From Tony Lindgren:
      OMAP PM related updates via Paul Walmsley <paul@pwsan.com>:
      
      Remove some dead OMAP clock and device integration code and data.
      Also, clean up the way that the OMAP device integration code blocks
      WFI/WFE to use a consistent mechanism, controlled by a data flag.
      
      Several OMAP2+ power management fixes, optimizations, and cleanup.
      This series is a prerequisite for the functional powerdomain
      conversion series.
      
      * tag 'omap-for-v3.9/pm-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: OMAP2+: powerdomain: fix whitespace, improve flag comments
        ARM: OMAP2+: clockdomain: convert existing atomic usecounts into spinlock-protected shorts/ints
        ARM: OMAP2+: clockdomain: work on wkdep/sleepdep functions
        ARM: OMAP2xxx: CM: remove autodep handling
        ARM: OMAP2+: powerdomain/clockdomain: add a per-powerdomain spinlock
        ARM: OMAP2+: PM/powerdomain: move omap_set_pwrdm_state() to powerdomain code
        ARM: OMAP2: PM/powerdomain: drop unnecessary pwrdm_wait_transition()
        ARM: OMAP2xxx: PM: clean up some crufty powerstate programming code
        ARM: OMAP2+: clockdomain: add pwrdm_state_switch() call to clkdm_sleep()
        ARM: OMAP2+: powerdomain: fix powerdomain trace integration
        ARM: OMAP4: MPUSS PM: remove unnecessary shim functions for powerdomain control
        ARM: OMAP3xxx: CPUIdle: optimize __omap3_enter_idle()
        ARM: OMAP2420: hwmod data/PM: use hwmod to block WFI when I2C active
        ARM: OMAP2+: hwmod: add support for blocking WFI when a device is active
        ARM: OMAP3xxx: CPUIdle: simplify the PER next-state code
        ARM: OMAP2xxx: powerdomain: core powerdomain missing logic retention states
        ARM: OMAP2xxx: clock data: clean up unused null clocks
        ARM: OMAP4: clock/hwmod data: remove MODULEMODE entries in mux + gate combos
        ARM: OMAP4: clock/hwmod data: start to remove some IP block control "clocks"
        ARM: OMAP2+: omap_device: remove obsolete pm_lats and early_device code
      d37d79ed
    • Hiroshi Doyu's avatar
      ARM: tegra: Fix build error for gic update · 7e611149
      Hiroshi Doyu authored
      Fix build error in board-dt-tegra114.c(next-20130204)
      Signed-off-by: default avatarHiroshi Doyu <hdoyu@nvidia.com>
      Reported-by: Sami Liedes<sliedes@nvidia.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      7e611149
    • Olof Johansson's avatar
      ARM: tegra: remove empty tegra_smp_init_cpus() · f7c66dc0
      Olof Johansson authored
      Based on two separate cleanup branches, it's now empty and can be removed.
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      f7c66dc0
    • Olof Johansson's avatar
      Merge tag 'tegra-for-3.9-soc-t114' of... · e9daa0ea
      Olof Johansson authored
      Merge tag 'tegra-for-3.9-soc-t114' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/soc
      
      From Stepen Warren:
      ARM: tegra: add Tegra114 SoC support
      
      This pull request adds initial support for the Tegra114 SoC, which
      integrates a quad-core ARM Cortex-A15 CPU. I'm proud to observe that we
      posted the initial versions of these patches before the final official
      announcement of this chip.
      
      These patches are enough to boot with a UART-based console, support the
      Dalmore and Pluto reference/evaluation boards, instantiate the GPIO and
      pinctrl drivers, and enable a cpuidle state. As yet, no clocks or
      storage devices are supported, but patches for those will follow shortly.
      
      This pull request is based on (most of) the previous pull request with
      tag tegra-for-3.9-soc-cpuidle, followed by a merge of the previous pull
      request with tag tegra-for-3.9-scu-base-rework.
      
      * tag 'tegra-for-3.9-soc-t114' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: (24 commits)
        ARM: DT: tegra114: add pinmux DT entry
        ARM: DT: tegra114: add GPIO DT entry
        ARM: tegra114: select PINCTRL for Tegra114 SoC
        ARM: tegra: add Tegra114 ARM_CPUIDLE_WFI_STATE support
        ARM: tegra: Add SMMU entry to Tegra114 DT
        ARM: tegra: add AHB entry to Tegra114 DT
        ARM: tegra: Add initial support for Tegra114 SoC.
        ARM: dt: tegra114: Add new board, Pluto
        ARM: dt: tegra114: Add new board, Dalmore
        ARM: dt: tegra114: Add new SoC base, Tegra114 SoC
        ARM: tegra: fuse: Add chip ID Tegra114 0x35
        ARM: OMAP: Make use of available scu_a9_get_base() interface
        ARM: tegra: Skip scu_enable(scu_base) if not Cortex A9
        ARM: Add API to detect SCU base address from CP15
        ARM: tegra: Use DT /cpu node to detect number of CPU core
        ARM: tegra: Add CPU nodes to Tegra30 device tree
        ARM: tegra: Add CPU nodes to Tegra20 device tree
        ARM: perf: simplify __hw_perf_event_init err handling
        ARM: perf: remove unnecessary checks for idx < 0
        ARM: perf: handle armpmu_register failing
        ...
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      
      Remove/add conflict in arch/arm/mach-tegra/common.c resolved.
      Remove/remove conflict in arch/arm/mach-tegra/platsmp.c. Leave the empty
      stub function for now since removing it in the merge commit is confusing;
      will be cleaned up in a separate commit.  # # It looks like you may be
      committing a merge.  # If this is not correct, please remove the file #
      .git/MERGE_HEAD # and try again.
      e9daa0ea
    • Olof Johansson's avatar
      Merge tag 'tegra-for-3.9-soc-cpuidle' of... · c8bfea36
      Olof Johansson authored
      Merge tag 'tegra-for-3.9-soc-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/soc
      
      From Stephen Warren:
      ARM: tegra: cpuidle enhancements
      
      This pull request implements a new "LP2" cpuidle state for Tegra20,
      which makes use of the couple cpuidle feature.
      
      It is based on (most of) the previous pull request, with tag
      tegra-for-3.9-soc-usb.
      
      * tag 'tegra-for-3.9-soc-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
        ARM: tegra20: cpuidle: apply coupled cpuidle for powered-down mode
        ARM: tegra20: flowctrl: add support for cpu_suspend_enter/exit
        clk: tegra20: Implementing CPU low-power function for tegra_cpu_car_ops
        ARM: tegra20: cpuidle: add powered-down state for secondary CPU
        ARM: tegra: add pending SGI checking API
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      c8bfea36
    • Olof Johansson's avatar
      Merge tag 'tegra-for-3.9-soc-usb' of... · ceca718f
      Olof Johansson authored
      Merge tag 'tegra-for-3.9-soc-usb' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/soc
      
      From Stephen Warren:
      ARM: tegra: USB driver cleanup
      
      The Tegra USB driver has a number of issues:
      
      1) The PHY driver isn't a true platform device, and doesn't implement
         the standard USB PHY API.
      
      2) struct device instance numbers were used to make decisions in the
         driver, rather than being parameterized by DT or platform data.
      
      This pull request solves issue (2), and lays the groundwork for solving
      issue (1). The work on issue (1) involved introducing new DT nodes for
      the USB PHYs, which in turn interacted with the Tegra common clock
      framework changes, due to the move of clock lookups into device tree.
      Hence, these USB driver changes are taken through the Tegra tree with
      acks from USB maintainers.
      
      This pull request is based on the previous pull request, with tag
      tegra-for-3.9-soc-ccf.
      
      * tag 'tegra-for-3.9-soc-usb' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
        usb: host: tegra: make use of PHY pointer of HCD
        ARM: tegra: Add reset GPIO information to PHY DT node
        usb: host: tegra: don't touch EMC clock
        usb: add APIs to access host registers from Tegra PHY
        USB: PHY: tegra: Get rid of instance number to differentiate PHY type
        USB: PHY: tegra: get rid of instance number to differentiate legacy controller
        ARM: tegra: add clocks properties to USB PHY nodes
        ARM: tegra: add DT nodes for Tegra USB PHY
        usb: phy: remove unused APIs from Tegra PHY.
        usb: host: tegra: Resetting PORT0 based on information received via DT.
        ARM: tegra: Add new DT property to USB node.
        usb: phy: use kzalloc to allocate struct tegra_usb_phy
        ARM: tegra: remove USB address related macros from iomap.h
      ceca718f
    • Olof Johansson's avatar
      Merge tag 'tegra-for-3.9-soc-ccf' of... · bda6f8e6
      Olof Johansson authored
      Merge tag 'tegra-for-3.9-soc-ccf' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/soc
      
      From Stephen Warren:
      ARM: tegra: Common Clock Framework rework
      
      Tegra already supports the common clock framework, but had issues:
      
      1) The clock driver was located in arch/arm/mach-tegra/ rather than
         drivers/clk/.
      
      2) A single "Tegra clock" type was implemented, rather than separate
         clock types for PLL, mux, divider, ... type in HW.
      
      3) Clock lookups by device drivers were still driven by device name
         and connection ID, rather than through device tree.
      
      This pull request solves all three issues. This required some DT changes
      to add clocks properties, and driver changes to request clocks more
      "correctly". Finally, this rework allows all AUXDATA to be removed from
      Tegra board files, and various duplicate clock lookup entries to be
      removed from the driver.
      
      This pull request is based on the previous pull request, with tag
      tegra-for-3.9-cleanup.
      
      * tag 'tegra-for-3.9-soc-ccf' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: (31 commits)
        clk: tegra30: remove unused TEGRA_CLK_DUPLICATE()s
        clk: tegra20: remove unused TEGRA_CLK_DUPLICATE()s
        ARM: tegra30: remove auxdata
        ARM: tegra20: remove auxdata
        ASoC: tegra: remove auxdata
        staging: nvec: remove use of clk_get_sys
        ARM: tegra: paz00: add clock information to DT
        ARM: tegra: add clock properties to Tegra30 DT
        ARM: tegra: add clock properties to Tegra20 DT
        spi: tegra: do not use clock name to get clock
        ARM: tegra: remove legacy clock code
        ARM: tegra: migrate to new clock code
        clk: tegra: add clock support for Tegra30
        clk: tegra: add clock support for Tegra20
        clk: tegra: add Tegra specific clocks
        ARM: tegra: define Tegra30 CAR binding
        ARM: tegra: define Tegra20 CAR binding
        ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h
        ARM: tegra: add function to read chipid
        ARM: tegra: fix compile error when disable CPU_IDLE
        ...
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      
      Conflicts:
      	arch/arm/mach-tegra/board-dt-tegra20.c
      	arch/arm/mach-tegra/board-dt-tegra30.c
      	arch/arm/mach-tegra/common.c
      	arch/arm/mach-tegra/platsmp.c
      	drivers/clocksource/Makefile
      bda6f8e6
    • Olof Johansson's avatar
      Merge tag 'renesas-soc3-for-v3.9' of... · c35a0bfa
      Olof Johansson authored
      Merge tag 'renesas-soc3-for-v3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc
      
      From Simon Horman:
      Third round of Renesas ARM-based SoC changes for v3.9
      
      A fix for r8a7779 clocks.
      
      * tag 'renesas-soc3-for-v3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
        ARM: shmobile: r8a7779: Correct TMU clock support
      c35a0bfa
    • Magnus Damm's avatar
      ARM: shmobile: Register ARM architected timer · dbe1c3de
      Magnus Damm authored
      Register ARM architected timer by default for all mach-shmobile
      systems using late timer.
      Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
      dbe1c3de
    • Olof Johansson's avatar
      Merge tag 'drivers_for_v3.9' of git://git.infradead.org/users/jcooper/linux into next/soc · 71e45bd2
      Olof Johansson authored
      From Jason Cooper:
      mvebu drivers for v3.9
       - use rtc-mv in mvebu armv7 SoCs
       - add pci-e hotplug for kirkwood
      
      Depends on:
       - tags/mvebu_fixes_for_v3.8-rc6
      
      * tag 'drivers_for_v3.9' of git://git.infradead.org/users/jcooper/linux:
        cpuidle: kirkwood: Move out of mach directory
        rtc: Add support of rtc-mv for MVEBU SoCs
        ARM: Kirkwood: Support basic hotplug for PCI-E
        arm: mvebu: i2c come back in defconfig
        arm: plat-orion: fix printing of "MPP config unavailable on this hardware"
        Dove: activate GPIO interrupts in DT
      71e45bd2
    • Olof Johansson's avatar
      Merge tag 'v3.8-rc6' into next/soc · 469da620
      Olof Johansson authored
      Linux 3.8-rc6
      469da620
    • Olof Johansson's avatar
      Merge tag 'imx6q-cpudile-3.9' of git://git.linaro.org/people/shawnguo/linux-2.6 into next/soc · 42279616
      Olof Johansson authored
      From Shawn Guo:
      imx6q cpuidle support for 3.9
      
       - It's based on imx-cleanup-3.9 to avoid conflicts.
      
      * tag 'imx6q-cpudile-3.9' of git://git.linaro.org/people/shawnguo/linux-2.6:
        ARM: imx6q: support WAIT mode using cpuidle
        ARM: imx: move imx6q_cpuidle_driver into a separate file
        ARM: imx: mask gpc interrupts initially
        ARM: imx: return zero in case next event gets a large increment
        ARM: imx: Remove mx508 support
        ARM: imx: Remove mach-mx51_3ds board
        ARM: imx: use debug_ll_io_init() for imx6q
        ARM: imx: remove unused imx6q_clock_map_io()
        ARM: mach-imx: Kconfig: Do not select Babbage for MACH_IMX51_DT
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      
      Still, two delete/change conflicts caused by imx/cleanup:
      
      	arch/arm/mach-imx/mach-mx50_rdp.c
      	arch/arm/mach-imx/mach-mx51_3ds.c
      42279616
    • Barry Song's avatar
      ARM: MARCO: fix the build issue due to gic-vic-to-irqchip move · ef4acb75
      Barry Song authored
      Fix the issue:
      tree:   git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git next/soc
      head:   6ed05a2a
      commit: af70fdc9 [4/8] Merge branch 'marco-timer-cleanup-rebase' of
      git://gitorious.org/sirfprima2-kernel/sirfprima2-kernel into next/soc
      config: make ARCH=arm prima2_defconfig
      
      All error/warnings:
      
      >> arch/arm/mach-prima2/platsmp.c:20:30: fatal error: asm/hardware/gic.h: No such file or directory
         compilation terminated.
      --
      >> arch/arm/mach-prima2/common.c:15:30: fatal error: asm/hardware/gic.h: No such file or directory
         compilation terminated.
      Signed-off-by: default avatarBarry Song <Baohua.Song@csr.com>
      Cc: Xie ChanglongX <changlongx.xie@intel.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      ef4acb75
    • Simon Horman's avatar
      ARM: shmobile: r8a7779: Correct TMU clock support · 58079fa7
      Simon Horman authored
      During code review it was noticed that the clock value for
      TMU01 was incorrect and the value for TMU02 was missing.
      
      For reference: As of 3.8-rc6 there are no in-tree consumes of these clocks.
      Reported-by: default avatarDenis Oliver Kropp <dok@directfb.org>
      Reviewed-by: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
      58079fa7
    • Shawn Guo's avatar
      ARM: imx_v6_v7_defconfig: enable anatop regulator and snvs rtc · 26246919
      Shawn Guo authored
      Eanble anatop regulator and snvs rtc support which are very useful
      for imx6q build.
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      26246919
    • Shawn Guo's avatar
      ARM: imx: support DEBUG_LL uart port selection for all i.MX SoCs · f8c95fe6
      Shawn Guo authored
      Extend imx6q DEBUG_LL uart port selection support to cover all i.MX
      SoCs.  The 'range' of the Kconfig option gets dropped, as users
      looking at the option must know the uart number on his board.  The
      bottom line is that the build system will report an error if an
      invalid port number is picked for given SoC.
      
      The header arch/arm/include/debug/imx-uart.h is created to accommodate
      all the uart base addresses.  And the header will also be used for
      other low-level debug facility later.
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      f8c95fe6
    • Shawn Guo's avatar
      ARM: imx: use separated debug uart symbol for imx31 and imx35 · 4ad625d4
      Shawn Guo authored
      It's improper to use combined symbol DEBUG_IMX31_IMX35_UART for
      imx31 and imx35, because imx31 has 5 UARTs while imx35 only has 3.
      So later when we add UART port selection for DEBUG_IMX31_IMX35_UART,
      we will have problem.
      
      Use separated Kconfig options for imx31 and imx35 debug uart selection.
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      4ad625d4
    • Fabio Estevam's avatar
      ARM: imx_v6_v7_defconfig: Select IPUV3 driver · f93c32d9
      Fabio Estevam authored
      Let IPUV3 driver be built by default.
      Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      f93c32d9
    • Shawn Guo's avatar
      Merge tag 'imx-cleanup-3.9' into imx/soc · f662f52a
      Shawn Guo authored
      f662f52a
  3. 01 Feb, 2013 3 commits
  4. 31 Jan, 2013 12 commits
    • Linus Torvalds's avatar
      Merge branch 'for-3.8/upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · cf5425bf
      Linus Torvalds authored
      PullHID fixes from Jiri Kosina:
      
       - fix i2c-hid and hidraw interaction, by Benjamin Tissoires
      
       - a quirk to make a particular device (Formosa IR receiver) work
         properly, by Nicholas Santos
      
      * 'for-3.8/upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: i2c-hid: fix i2c_hid_output_raw_report
        HID: usbhid: quirk for Formosa IR receiver
        HID: remove x bit from sensor doc
      cf5425bf
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.8-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · bf6c8a81
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
      
       - Error reporting in nfs_xdev_mount incorrectly maps all errors to
         ENOMEM
      
       - Fix an NFSv4 refcounting issue
      
       - Fix a mount failure when the server reboots during NFSv4 trunking
         discovery
      
       - NFSv4.1 mounts may need to run the lease recovery thread.
      
       - Don't silently fail setattr() requests on mountpoints
      
       - Fix a SUNRPC socket/transport livelock and priority queue issue
      
       - We must handle NFS4ERR_DELAY when resetting the NFSv4.1 session.
      
      * tag 'nfs-for-3.8-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFSv4.1: Handle NFS4ERR_DELAY when resetting the NFSv4.1 session
        SUNRPC: When changing the queue priority, ensure that we change the owner
        NFS: Don't silently fail setattr() requests on mountpoints
        NFSv4.1: Ensure that nfs41_walk_client_list() does start lease recovery
        NFSv4: Fix NFSv4 trunking discovery
        NFSv4: Fix NFSv4 reference counting for trunked sessions
        NFS: Fix error reporting in nfs_xdev_mount
      bf6c8a81
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · aeb8eede
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "A number of fixes all across the MIPS tree.  No area is particularly
        standing out and things have cooled down quite nicely for a release."
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: Function tracer: Fix broken function tracing
        mips: Move __virt_addr_valid() to a place for MIPS 64
        MIPS: Netlogic: Fix UP compilation on XLR
        MIPS: AR71xx: Fix AR71XX_PCI_MEM_SIZE
        MIPS: AR724x: Fix AR724X_PCI_MEM_SIZE
        MIPS: Lantiq: Fix cp0_perfcount_irq mapping
        MIPS: DSP: Fix DSP mask for registers.
        MIPS: Fix build failure by adding definition of pfn_pmd().
        MIPS: Octeon: Fix warning.
        MIPS: delay.c: Check BITS_PER_LONG instead of __SIZEOF_LONG__
        MIPS: PNX833x: Fix comment.
        MIPS: Add struct p_format to union mips_instruction.
        MIPS: Export <asm/break.h>.
        MIPS: BCM47xx: Enable SSB prerequisite SSB_DRIVER_PCICORE.
        MIPS: BCM47xx: Select GPIOLIB for BCMA on bcm47xx platform
        MIPS: vpe.c: Fix null pointer dereference in print arguments.
      aeb8eede
    • Andrew Lunn's avatar
      cpuidle: kirkwood: Move out of mach directory · 9cfc94eb
      Andrew Lunn authored
      Move the Kirkwood cpuidle driver out of arch/arm/mach-kirkwood and
      into drivers/cpuidle. Convert the driver into a platform driver.
      Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
      9cfc94eb
    • Benjamin Tissoires's avatar
      HID: i2c-hid: fix i2c_hid_output_raw_report · c284979a
      Benjamin Tissoires authored
      i2c_hid_output_raw_report is used by hidraw to forward set_report requests.
      The current implementation of i2c_hid_set_report needs to take the
      report_id as an argument. The report_id is stored in the first byte
      of the buffer in argument of i2c_hid_output_raw_report.
      
      Not removing the report_id from the given buffer adds this byte 2 times
      in the command, leading to a non working command.
      Reported-by: default avatarAndrew Duggan <aduggan@synaptics.com>
      Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      c284979a
    • Al Cooper's avatar
      MIPS: Function tracer: Fix broken function tracing · 58b69401
      Al Cooper authored
      Function tracing is currently broken for all 32 bit MIPS platforms.
      When tracing is enabled, the kernel immediately hangs on boot.
      This is a result of commit b732d439
      that changes the kernel/trace/Kconfig file so that is no longer
      forces FRAME_POINTER when FUNCTION_TRACING is enabled.
      
      MIPS frame pointers are generally considered to be useless because
      they cannot be used to unwind the stack. Unfortunately the MIPS
      function tracing code has bugs that are masked by the use of frame
      pointers. This commit fixes the bugs so that MIPS frame pointers
      don't need to be enabled.
      
      The bugs are a result of the odd calling sequence used to call the trace
      routine. This calling sequence is inserted into every traceable function
      when the tracing CONFIG option is enabled. This sequence is generated
      for 32bit MIPS platforms by the compiler via the "-pg" flag.
      
      Part of the sequence is "addiu sp,sp,-8" in the delay slot after every
      call to the trace routine "_mcount" (some legacy thing where 2 arguments
      used to be pushed on the stack). The _mcount routine is expected to
      adjust the sp by +8 before returning.  So when not disabled, the original
      jalr and addiu will be there, so _mcount has to adjust sp.
      
      The problem is that when tracing is disabled for a function, the
      "jalr _mcount" instruction is replaced with a nop, but the
      "addiu sp,sp,-8" is still executed and the stack pointer is left
      trashed. When frame pointers are enabled the problem is masked
      because any access to the stack is done through the frame
      pointer and the stack pointer is restored from the frame pointer when
      the function returns.
      
      This patch writes two nops starting at the address of the "jalr _mcount"
      instruction whenever tracing is disabled. This means that the
      "addiu sp,sp.-8" will be converted to a nop along with the "jalr".  When
      disabled, there will be two nops.
      
      This is SMP safe because the first time this happens is during
      ftrace_init() which is before any other processor has been started.
      Subsequent calls to enable/disable tracing when other CPUs ARE running
      will still be safe because the enable will only change the first nop
      to a "jalr" and the disable, while writing 2 nops, will only be changing
      the "jalr". This patch also stops using stop_machine() to call the
      tracer enable/disable routines and calls them directly because the
      routines are SMP safe.
      
      When the kernel first boots we have to be able to handle the gcc
      generated jalr, addui sequence until ftrace_init gets a chance to run
      and change the sequence. At this point mcount just adjusts the stack
      and returns. When ftrace_init runs, we convert the jalr/addui to nops.
      Then whenever tracing is enabled we convert the first nop to a "jalr
      mcount+8". The mcount+8 entry point skips the stack adjust.
      
      [ralf@linux-mips.org: Folded in  Steven Rostedt's build fix.]
      Signed-off-by: default avatarAl Cooper <alcooperx@gmail.com>
      Cc: rostedt@goodmis.org
      Cc: ddaney.cavm@gmail.com
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/4806/
      Patchwork: https://patchwork.linux-mips.org/patch/4841/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      58b69401
    • Alasdair G Kergon's avatar
      dm: fix write same requests counting · fe7af2d3
      Alasdair G Kergon authored
      When processing write same requests, fix dm to send the configured
      number of WRITE SAME requests to the target rather than the number of
      discards, which is not always the same.
      
      Device-mapper WRITE SAME support was introduced by commit
      23508a96 ("dm: add WRITE SAME support").
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      Acked-by: default avatarMike Snitzer <snitzer@redhat.com>
      fe7af2d3
    • Steven Rostedt's avatar
      mips: Move __virt_addr_valid() to a place for MIPS 64 · 196897a2
      Steven Rostedt authored
      Commit d3ce8843 "MIPS: Fix modpost error in modules attepting to use
      virt_addr_valid()" moved __virt_addr_valid() from a macro in a header
      file to a function in ioremap.c. But ioremap.c is only compiled for MIPS
      32, and not for MIPS 64.
      
      When compiling for my yeeloong2, which supposedly supports hibernation,
      which compiles kernel/power/snapshot.c which calls virt_addr_valid(), I
      got this error:
      
        LD      init/built-in.o
      kernel/built-in.o: In function `memory_bm_free':
      snapshot.c:(.text+0x4c9c4): undefined reference to `__virt_addr_valid'
      snapshot.c:(.text+0x4ca58): undefined reference to `__virt_addr_valid'
      kernel/built-in.o: In function `snapshot_write_next':
      (.text+0x4e44c): undefined reference to `__virt_addr_valid'
      kernel/built-in.o: In function `snapshot_write_next':
      (.text+0x4e890): undefined reference to `__virt_addr_valid'
      make[1]: *** [vmlinux] Error 1
      make: *** [sub-make] Error 2
      
      I suspect that __virt_addr_valid() is fine for mips 64. I moved it to
      mmap.c such that it gets compiled for mips 64 and 32.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4842/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      196897a2
    • Mike Snitzer's avatar
      dm thin: fix queue limits stacking · 0f640dca
      Mike Snitzer authored
      thin_io_hints() is blindly copying the queue limits from the thin-pool
      which can lead to incorrect limits being set.  The fix here simply
      deletes the thin_io_hints() hook which leaves the existing stacking
      infrastructure to set the limits correctly.
      
      When a thin-pool uses an MD device for the data device a thin device
      from the thin-pool must respect MD's constraints about disallowing a bio
      from spanning multiple chunks.  Otherwise we can see problems.  If the raid0
      chunksize is 1152K and thin-pool chunksize is 256K I see the following
      md/raid0 error (with extra debug tracing added to thin_endio) when
      mkfs.xfs is executed against the thin device:
      
      md/raid0:md99: make_request bug: can't convert block across chunks or bigger than 1152k 6688 127
      device-mapper: thin: bio sector=2080 err=-5 bi_size=130560 bi_rw=17 bi_vcnt=32 bi_idx=0
      
      This extra DM debugging shows that the failing bio is spanning across
      the first and second logical 1152K chunk (sector 2080 + 255 takes the
      bio beyond the first chunk's boundary of sector 2304).  So the bio
      splitting that DM is doing clearly isn't respecting the MD limits.
      
      max_hw_sectors_kb is 127 for both the thin-pool and thin device
      (queue_max_hw_sectors returns 255 so we'll excuse sysfs's lack of
      precision).  So this explains why bi_size is 130560.
      
      But the thin device's max_hw_sectors_kb should be 4 (PAGE_SIZE) given
      that it doesn't have a .merge function (for bio_add_page to consult
      indirectly via dm_merge_bvec) yet the thin-pool does sit above an MD
      device that has a compulsory merge_bvec_fn.  This scenario is exactly
      why DM must resort to sending single PAGE_SIZE bios to the underlying
      layer. Some additional context for this is available in the header for
      commit 8cbeb67a ("dm: avoid unsupported spanning of md stripe boundaries").
      
      Long story short, the reason a thin device doesn't properly get
      configured to have a max_hw_sectors_kb of 4 (PAGE_SIZE) is that
      thin_io_hints() is blindly copying the queue limits from the thin-pool
      device directly to the thin device's queue limits.
      
      Fix this by eliminating thin_io_hints.  Doing so is safe because the
      block layer's queue limits stacking already enables the upper level thin
      device to inherit the thin-pool device's discard and minimum_io_size and
      optimal_io_size limits that get set in pool_io_hints.  But avoiding the
      queue limits copy allows the thin and thin-pool limits to be different
      where it is important, namely max_hw_sectors_kb.
      Reported-by: default avatarDaniel Browning <db@kavod.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      0f640dca
    • Linus Torvalds's avatar
      Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 04c2eee5
      Linus Torvalds authored
      Pull x86 EFI fixes from Peter Anvin:
       "This is a collection of fixes for the EFI support.  The controversial
        bit here is a set of patches which bumps the boot protocol version as
        part of fixing some serious problems with the EFI handover protocol,
        used when booting under EFI using a bootloader as opposed to directly
        from EFI.  These changes should also make it a lot saner to support
        cross-mode 32/64-bit EFI booting in the future.  Getting these changes
        into 3.8 means we avoid presenting an inconsistent ABI to bootloaders.
      
        Other changes are display detection and fixing efivarfs."
      
      * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, efi: remove attribute check from setup_efi_pci
        x86, build: Dynamically find entry points in compressed startup code
        x86, efi: Fix PCI ROM handing in EFI boot stub, in 32-bit mode
        x86, efi: Fix 32-bit EFI handover protocol entry point
        x86, efi: Fix display detection in EFI boot stub
        x86, boot: Define the 2.12 bzImage boot protocol
        x86/boot: Fix minor fd leakage in tools/relocs.c
        x86, efi: Set runtime_version to the EFI spec revision
        x86, efi: fix 32-bit warnings in setup_efi_pci()
        efivarfs: Delete dentry from dcache in efivarfs_file_write()
        efivarfs: Never return ENOENT from firmware
        efi, x86: Pass a proper identity mapping in efi_call_phys_prelog
        efivarfs: Drop link count of the right inode
      04c2eee5
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bdb0ae6a
      Linus Torvalds authored
      Pull x86 fixes from Peter Anvin:
       "This is a collection of miscellaneous fixes, the most important one is
        the fix for the Samsung laptop bricking issue (auto-blacklisting the
        samsung-laptop driver); the efi_enabled() changes you see below are
        prerequisites for that fix.
      
        The other issues fixed are booting on OLPC XO-1.5, an UV fix, NMI
        debugging, and requiring CAP_SYS_RAWIO for MSR references, just as
        with I/O port references."
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        samsung-laptop: Disable on EFI hardware
        efi: Make 'efi_enabled' a function to query EFI facilities
        smp: Fix SMP function call empty cpu mask race
        x86/msr: Add capabilities check
        x86/dma-debug: Bump PREALLOC_DMA_DEBUG_ENTRIES
        x86/olpc: Fix olpc-xo1-sci.c build errors
        arch/x86/platform/uv: Fix incorrect tlb flush all issue
        x86-64: Fix unwind annotations in recent NMI changes
        x86-32: Start out cr0 clean, disable paging before modifying cr3/4
      bdb0ae6a
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 0fe94b9e
      Linus Torvalds authored
      Pull console lockdep checking revert from Dave Airlie.
      
      The lockdep splat this showed was interesting, but it's very very old,
      and we won't be fixing it until 3.9.  In the meantime, undo the lockdep
      annotation so that we don't generate the (known) console lockdep issue,
      and then possibly hide any potential other (unknown) lockdep problems
      that got disabled by the first one that triggered.
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        Revert "console: implement lockdep support for console_lock"
      0fe94b9e