1. 17 Jun, 2015 11 commits
    • Tomi Valkeinen's avatar
      OMAPDSS: HDMI: wait for framedone when stopping video · a9fad688
      Tomi Valkeinen authored
      At the moment when HDMI video output is stopped, we just clear the
      enable bit and return. While it's unclear if this can cause any issues,
      I think it's still better to wait for FRAMEDONE interrupt after clearing
      the enable bit so that we're sure the HDMI IP has finished.
      
      As we don't have any ready-made irq handling for HDMI, and this only
      needs to be done when disabling the HDMI output, this patch implements a
      simple loop with sleep, polling the FRAMEDONE bit.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      a9fad688
    • Tomi Valkeinen's avatar
      OMAPDSS: HDMI4: fix error handling · 9bba13f0
      Tomi Valkeinen authored
      Error handling in hdmi_power_on_full() is not correct, and could leave
      resources unfreed.
      
      Fix this by arranging the error labels correctly.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      9bba13f0
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: scaler debug print · e4c5ae7f
      Tomi Valkeinen authored
      Improve the DISPC debug print for scaling.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      e4c5ae7f
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: do only y decimation on OMAP3 · 7059e3d8
      Tomi Valkeinen authored
      The current driver does both x and y decimation on OMAP3 DSS. Testing
      shows that x decimation rarely works, leading to underflows.
      
      The exact reason for this is unclear, as the underflows seem to happen
      even with low pixel clock rates, and I would presume that if the DSS can
      manage a display with 140MHz pixel clock, it could manage x decimation
      with factor 2 with a low pixel clock (~30MHz).
      
      So it is possible that there is a problem somewhere else, in memory
      management, or DSS DMA, or similar. I have not found anything that would
      help this.
      
      So, to fix the downscaling scaling, this patch removes x decimation for
      OMAP3. This will limit some of the more demanding downscaling scenarios,
      but one could argue that using DSS to downscale such a large amount is
      insane in the first place, as the produced image is rather bad quality.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      7059e3d8
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: check if scaling setup failed · 3ce17b48
      Tomi Valkeinen authored
      The DISPC's scaling code seems to presume that decimation always
      succeeds, and so we always do find a suitable downscaling setup.
      However, this is not the case, and the algorithm can fail.
      
      When that happens, the code just proceeds with wrong results, causing
      issues later.
      
      Add the necessary checks to bail out if the scaling algorithm failed.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      3ce17b48
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: fix 64 bit issue in 5-tap · c582935c
      Tomi Valkeinen authored
      The DISPC driver uses 64 bit arithmetic to calculate the required clock
      rate for scaling. The code does not seem to work correctly, and instead
      calculates with 32 bit numbers, giving wrong result.
      
      Fix the code by typecasting values to u64 first, so that the
      calculations do happen in 64 bits.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      c582935c
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: fix row_inc for OMAP3 · f2aee319
      Tomi Valkeinen authored
      pixel_inc and row_inc work differently on OMAP2/3 and OMAP4+ DSS. On
      OMAP2/3 DSS, the pixel_inc is _not_ added by the HW at the end of the
      line, after the last pixel, whereas on OMAP4+ it is.
      
      The driver currently works for OMAP4+, but does not handle OMAP2/3
      correctly, which leads to tilted image when row_inc is used.
      
      This patch adds a flag to DISPC driver so that the pixel_inc is added
      when required.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      f2aee319
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: add check for scaling limits · ab6b2582
      Tomi Valkeinen authored
      On OMAP3/AM43xx some scaling factors cause underflows/synclosts. After
      studying this, I found that sometimes the driver uses three-tap scaling
      with downscaling factor smaller than x0.5. This causes issues, as x0.5
      is the limit for three-tap scaling.
      
      The driver has FEAT_PARAM_DOWNSCALE parameter, but that seems to be for
      five-tap scaling, which allows scaling down to x0.25.
      
      This patch adds checks for both horizontal and vertical scaling. For
      horizontal the HW always uses 5 taps, so the limit is x0.25.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      ab6b2582
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: fix check_horiz_timing_omap3 args · f5a73482
      Tomi Valkeinen authored
      After calculating the required decimation for scaling, the dispc driver
      checks once more if the resulting configuration is valid by calling
      check_horiz_timing_omap3().
      
      Earlier calls to this function have correctly used in_width and
      in_height as parameters, but the last call uses width and height. This
      causes the driver to possibly reject scaling that would work.
      
      This patch fixes the parameters.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      f5a73482
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: fix predecimation for YUV modes · c4661b33
      Tomi Valkeinen authored
      DISPC needs even input buffer width for YUV modes. The DISPC driver
      doesn't check this at the moment (although omapdrm does), but worse,
      when DISPC driver does x predecimation the result may be uneven. This
      causes sometimes sync losts, underflows, or just visual errors.
      
      This patch makes DISPC driver return an error if the user gives uneven
      input width for a YUV buffer. It also makes the input width even in case
      of predecimation.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      c4661b33
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: work-around for errata i631 · 3397cc6a
      Tomi Valkeinen authored
      Errata i631 description:
      
      "When in YUV4:2:0 format in 1D burst, the DISPC DMA skips lines when
      fetching Chroma sampling."
      
      Workaround:
      
      "If YUV4:2:0-1D burst is required: Set
      DISPC_VIDp_ATTRIBUTES[22]DOUBLESTRIDE to 0x0 and
      DISPC_VIDp_ATTRIBUTES[13:12]ROTATION to 0x1 or 0x3"
      
      The description is somewhat confusing, but testing has shown that DSS
      fetches extra rows from memory when using NV12 format in 1D mode. If the
      memory after the framebuffer is inaccessible, this leads to OCP errors.
      
      The driver always uses DOUBLESTRIDE=0 when using 1D mode, so we only
      need to handle the ROTATION part.
      
      The issue exist on all OMAP4 and OMAP5 based DSS IPs.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      3397cc6a
  2. 01 Jun, 2015 1 commit
  3. 31 May, 2015 13 commits
  4. 30 May, 2015 3 commits
  5. 29 May, 2015 12 commits
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-4.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · 1be44e23
      Linus Torvalds authored
      Pull xfs fixes from Dave Chinner:
       "This is a little larger than I'd like late in the release cycle, but
        all the fixes are for regressions introduced in the 4.1-rc1 merge, or
        are needed back in -stable kernels fairly quickly as they are
        filesystem corruption or userspace visible correctness issues.
      
        Changes in this update:
      
         - regression fix for new rename whiteout code
      
         - regression fixes for new superblock generic per-cpu counter code
      
         - fix for incorrect error return sign introduced in 3.17
      
         - metadata corruption fixes that need to go back to -stable kernels"
      
      * tag 'xfs-for-linus-4.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs:
        xfs: fix broken i_nlink accounting for whiteout tmpfile inode
        xfs: xfs_iozero can return positive errno
        xfs: xfs_attr_inactive leaves inconsistent attr fork state behind
        xfs: extent size hints can round up extents past MAXEXTLEN
        xfs: inode and free block counters need to use __percpu_counter_compare
        percpu_counter: batch size aware __percpu_counter_compare()
        xfs: use percpu_counter_read_positive for mp->m_icount
      1be44e23
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 2a645171
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "Two weeks worth of small bug fixes this time, nothing sticking out
        this time:
      
         - one defconfig change to adapt to a modified Kconfig symbol
      
         - two fixes for i.MX for backwards compatibility with older DT files
           that was accidentally broken
      
         - one regression fix for irq handling on pxa
      
         - three small dt files on omap, and one each for imx and exynos"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: multi_v7_defconfig: Replace CONFIG_USB_ISP1760_HCD by CONFIG_USB_ISP1760
        ARM: imx6: gpc: don't register power domain if DT data is missing
        ARM: imx6: allow booting with old DT
        ARM: dts: set display clock correctly for exynos4412-trats2
        ARM: pxa: pxa_cplds: signedness bug in probe
        ARM: dts: Fix WLAN interrupt line for AM335x EVM-SK
        ARM: dts: omap3-devkit8000: Fix NAND DT node
        ARM: dts: am335x-boneblack: disable RTC-only sleep
        ARM: dts: fix imx27 dtb build rule
        ARM: dts: imx27: only map 4 Kbyte for fec registers
      2a645171
    • Linus Torvalds's avatar
      Merge tag 'dm-4.1-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 0f1e5b5d
      Linus Torvalds authored
      Pull device-mapper fixes from Mike Snitzer:
       "Quite a few fixes for DM's blk-mq support thanks to extra DM multipath
        testing from Junichi Nomura and Bart Van Assche.
      
        Also fix a casting bug in dm_merge_bvec() that could cause only a
        single page to be added to a bio (Joe identified this while testing
        dm-cache writeback)"
      
      * tag 'dm-4.1-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: fix casting bug in dm_merge_bvec()
        dm: fix reload failure of 0 path multipath mapping on blk-mq devices
        dm: fix false warning in free_rq_clone() for unmapped requests
        dm: requeue from blk-mq dm_mq_queue_rq() using BLK_MQ_RQ_QUEUE_BUSY
        dm mpath: fix leak of dm_mpath_io structure in blk-mq .queue_rq error path
        dm: fix NULL pointer when clone_and_map_rq returns !DM_MAPIO_REMAPPED
        dm: run queue on re-queue
      0f1e5b5d
    • Guenter Roeck's avatar
      hwmon: (tmp401) Do not auto-detect chip on I2C address 0x37 · 9aecac04
      Guenter Roeck authored
      I2C address 0x37 may be used by EEPROMs, which can result in false
      positives. Do not attempt to detect a chip at this address.
      Reviewed-by: default avatarJean Delvare <jdelvare@suse.de>
      Cc: stable@vger.kernel.org # v4.0+
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      9aecac04
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · c2102f3d
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "10 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        scripts/gdb: fix lx-lsmod refcnt
        omfs: fix potential integer overflow in allocator
        omfs: fix sign confusion for bitmap loop counter
        omfs: set error return when d_make_root() fails
        fs, omfs: add NULL terminator in the end up the token list
        MAINTAINERS: update CAPABILITIES pattern
        fs/binfmt_elf.c:load_elf_binary(): return -EINVAL on zero-length mappings
        tracing/mm: don't trace mm_page_pcpu_drain on offline cpus
        tracing/mm: don't trace mm_page_free on offline cpus
        tracing/mm: don't trace kmem_cache_free on offline cpus
      c2102f3d
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · 6e49ba1b
      Linus Torvalds authored
      Pull fixes for cpumask and modules from Rusty Russell:
       "** NOW WITH TESTING! **
      
        Two fixes which got lost in my recent distraction.  One is a weird
        cpumask function which needed to be rewritten, the other is a module
        bug which is cc:stable"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        cpumask_set_cpu_local_first => cpumask_local_spread, lament
        module: Call module notifier on failure after complete_formation()
      6e49ba1b
    • Maciej W. Rozycki's avatar
      MIPS: strnlen_user.S: Fix a CPU_DADDI_WORKAROUNDS regression · c4fca4fd
      Maciej W. Rozycki authored
      Correct a regression introduced with 8453eebd [MIPS: Fix strnlen_user()
      return value in case of overlong strings.] causing assembler warnings
      and broken code generated in __strnlen_kernel_nocheck_asm:
      
      arch/mips/lib/strnlen_user.S: Assembler messages:
      arch/mips/lib/strnlen_user.S:64: Warning: Macro instruction expanded into multiple instructions in a branch delay slot
      
      with the CPU_DADDI_WORKAROUNDS option set, resulting in the function
      looping indefinitely upon mounting NFS root.
      
      Use conditional assembly to avoid a microMIPS code size regression.
      Using $at unconditionally would cause such a regression as there are no
      16-bit instruction encodings available for ALU operations using this
      register.  Using $v1 unconditionally would produce short microMIPS
      encodings, but would prevent this register from being used across calls
      to this function.
      
      The extra LI operation introduced is free, replacing a NOP originally
      scheduled into the delay slot of the branch that follows.
      Signed-off-by: default avatarMaciej W. Rozycki <macro@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/10205/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      c4fca4fd
    • Petri Gynther's avatar
      MIPS: BMIPS: Fix bmips_wr_vec() · 57b41758
      Petri Gynther authored
      bmips_wr_vec() copies exception vector code from start to dst.
      
      The call to dma_cache_wback() needs to flush (end-start) bytes,
      starting at dst, from write-back cache to memory.
      Signed-off-by: default avatarPetri Gynther <pgynther@google.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: default avatarKevin Cernekee <cernekee@gmail.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/10193/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      57b41758
    • Laurent Fasnacht's avatar
      MIPS: ath79: fix build problem if CONFIG_BLK_DEV_INITRD is not set · 556b6629
      Laurent Fasnacht authored
      initrd_start is defined in init/do_mounts_initrd.c, which is only
      included in kernel if CONFIG_BLK_DEV_INITRD=y.
      Signed-off-by: default avatarLaurent Fasnacht <l@libres.ch>
      Cc: linux-mips@linux-mips.org
      Cc: trivial@kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/10198/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      556b6629
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · d0af6988
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "This is made up 4 groups of fixes detailed below.
      
        vgem:
            Due to some misgivings about possible bad use cases this allow,
            backout a chunk of the interface to stop those use cases for now.
      
        radeon:
            Fix for an oops regression in the audio code, and a partial revert
            for a fix that was cauing problems.
      
        nouveau:
            regression fix for Fermi, and display-less Maxwell boot fixes.
      
        drm core:
            a fix for i915 cursor vblank waiting in the atomic helpers"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/nouveau/gr/gm204: remove a stray printk
        drm/nouveau/devinit/gm100-: force devinit table execution on boards without PDISP
        drm/nouveau/devinit/gf100: make the force-post condition more obvious
        drm/nouveau/gr/gf100-: fix wrong constant definition
        drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling"
        drm/radeon/audio: make sure connector is valid in hotplug case
        Revert "drm/radeon: only mark audio as connected if the monitor supports it (v3)"
        drm/radeon: don't share plls if monitors differ in audio support
        drm/vgem: drop DRIVER_PRIME (v2)
        drm/plane-helper: Adapt cursor hack to transitional helpers
      d0af6988
    • Linus Torvalds's avatar
      Merge tag 'sound-4.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 70946b5d
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "No big surprise here, just a bunch of small fixes for HD-audio and
        USB-audio:
      
         - partial revert of widget power-saving for IDT codecs
         - revert mute-LED enum ctl for Thinkpads due to confusion
         - a quirk for a new Radeon HDMI controller
         - Realtek codec name fix for Dell
         - a workaround for headphone mic boost on some laptops
         - stream_pm ops setup (and its fix for regression)
         - another quirk for MS LifeCam USB-audio"
      
      * tag 'sound-4.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Fix lost sound due to stream_pm ops cleanup
        ALSA: hda - Disable Headphone Mic boost for ALC662
        ALSA: hda - Disable power_save_node for IDT92HD71bxx
        ALSA: hda - Fix noise on AMD radeon 290x controller
        ALSA: hda - Set stream_pm ops automatically by generic parser
        ALSA: hda/realtek - Add ALC256 alias name for Dell
        Revert "ALSA: hda - Add mute-LED mode control to Thinkpad"
        ALSA: usb-audio: Add quirk for MS LifeCam HD-3000
      70946b5d
    • Joe Thornber's avatar
      dm: fix casting bug in dm_merge_bvec() · 1c220c69
      Joe Thornber authored
      dm_merge_bvec() was originally added in f6fccb ("dm: introduce
      merge_bvec_fn").  In that commit a value in sectors is converted to
      bytes using << 9, and then assigned to an int.  This code made
      assumptions about the value of BIO_MAX_SECTORS.
      
      A later commit 148e51 ("dm: improve documentation and code clarity in
      dm_merge_bvec") was meant to have no functional change but it removed
      the use of BIO_MAX_SECTORS in favor of using queue_max_sectors().  At
      this point the cast from sector_t to int resulted in a zero value.  The
      fallout being dm_merge_bvec() would only allow a single page to be added
      to a bio.
      
      This interim fix is minimal for the benefit of stable@ because the more
      comprehensive cleanup of passing a sector_t to all DM targets' merge
      function will impact quite a few DM targets.
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org # 3.19+
      1c220c69