Skip to content
  1. Sep 27, 2016
  2. Sep 07, 2016
  3. Aug 30, 2016
  4. Aug 11, 2016
    • Dan Carpenter's avatar
      video: fbdev: pxafb: potential NULL dereference on error · e0299908
      Dan Carpenter authored
      If we "goto out;" then it calls display_timings_release(timings);
      Since "timings" is NULL, that's going to oops.  Just return directly.
      
      Fixes: 420a4882
      
       ('video: fbdev: pxafb: initial devicetree conversion')
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      e0299908
    • Javier Martinez Canillas's avatar
      fb: adv7393: Use IS_ENABLED() instead of checking for built-in or module · 53d73a0a
      Javier Martinez Canillas authored
      
      
      The IS_ENABLED() macro checks if a Kconfig symbol has been enabled either
      built-in or as a module, use that macro instead of open coding the same.
      
      Signed-off-by: default avatarJavier Martinez Canillas <javier@osg.samsung.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      53d73a0a
    • Max Staudt's avatar
      fbdev/efifb: Fix 16 color palette entry calculation · d50b3f43
      Max Staudt authored
      When using efifb with a 16-bit (5:6:5) visual, fbcon's text is rendered
      in the wrong colors - e.g. text gray (#aaaaaa) is rendered as green
      (#50bc50) and neighboring pixels have slightly different values
      (such as #50bc78).
      
      The reason is that fbcon loads its 16 color palette through
      efifb_setcolreg(), which in turn calculates a 32-bit value to write
      into memory for each palette index.
      Until now, this code could only handle 8-bit visuals and didn't mask
      overlapping values when ORing them.
      
      With this patch, fbcon displays the correct colors when a qemu VM is
      booted in 16-bit mode (in GRUB: "set gfxpayload=800x600x16").
      
      Fixes: 7c83172b
      
       ("x86_64 EFI boot support: EFI frame buffer driver")  # v2.6.24+
      Signed-off-by: default avatarMax Staudt <mstaudt@suse.de>
      Acked-By: default avatarPeter Jones <pjones@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      d50b3f43
    • Bhaktipriya Shridhar's avatar
      fbdev: Remove deprecated create_singlethread_workqueue · 71668292
      Bhaktipriya Shridhar authored
      
      
      The workqueue "esd_wq" has only a single workitem(&md->esd_work)
      and hence doesn't require ordering. Also, it is not being used on a
      memory reclaim path. Hence, the singlethreaded workqueue has been
      replaced with the use of system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      mipid_esd_stop_check () calls cancel_delayed_work() in mipid_cleanup()
      to ensure that there are no pending tasks while disconnecting the driver.
      
      Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      71668292
    • Bhaktipriya Shridhar's avatar
      omapfb: panel-dsi-cm: Remove deprecated create_singlethread_workqueue · b59ac9a3
      Bhaktipriya Shridhar authored
      
      
      The workqueue "workqueue" has only a single workitem(&ddata->ulps_work)
      and hence doesn't require ordering. Also, it is not being used on a
      memory reclaim path. Hence, the singlethreaded workqueue has been
      replaced with the use of system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      dsicm_remove() calls dsicm_cancel_ulps_work which uses
      cancel_delayed_work() to ensure that there are no pending tasks while
      disconnecting the driver.
      
      Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      b59ac9a3
    • Krzysztof Kozlowski's avatar
      video: s3c2410fb: Register cpufreq notifier only on S3C24xx · 7d4a8088
      Krzysztof Kozlowski authored
      
      
      The driver registered for CPU frequency transitions to recalculate its
      clock when ARM clock frequency changes (ratio between frequencies of
      ARM's parent clock (fclk) and clock for peripherals remains fixed).
      
      This is needed only on S3C24xx platform when cpufreq driver is enabled
      so limit the ifdef to respective cpufreq Kconfig.
      
      Suggested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      7d4a8088
    • Wolfram Sang's avatar
      video: fbdev: mb862xx: mb862xx-i2c: don't print error when adding adapter fails · 6b610e00
      Wolfram Sang authored
      
      
      Don't print error when adding adapter fails. The core will do this for
      us now.
      
      Signed-off-by: default avatarWolfram Sang <wsa-dev@sang-engineering.com>
      [tomi.valkeinen@ti.com: fixed the description]
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      6b610e00
    • Nicholas Mc Guire's avatar
      omapfb/dss: wait_for_completion_interruptible_timeout expects long · 23658356
      Nicholas Mc Guire authored
      
      
      wait_for_completion_timeout_interruptible returns long not unsigned long.
      an appropriately typed variable is introduced and assignments fixed up.
      
      Signed-off-by: default avatarNicholas Mc Guire <hofrat@osadl.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      23658356
    • Linus Walleij's avatar
      video: ARM CLCD: add special panel hook for Versatiles · 25348160
      Linus Walleij authored
      
      
      This adds a special panel init hook for the ARM reference designs
      Integrator (IM-PD1), Versatile and RealView, so we can configure
      a DPI panel from device tree and have it working without
      boardfiles for these machines.
      
      Basically this is the same code as from the board files, just
      moved over to look up the syscon DT node and manipulate the
      special CLCD register from their regmap.
      
      Tested on RealView PB11MPcore.
      
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      25348160
    • Linus Walleij's avatar
      video: ARM CLCD: add special board and panel hooks for Nomadik · 1d3f0cbe
      Linus Walleij authored
      
      
      In the .board_init() callback will set up a mux register in
      the Nomadik system controller. It so happens that the platform
      has two display output engines, and we have to poke a bit in
      a special register to make sure the right engine is muxed in
      as they are mutually exclusive.
      
      The Nomadik CLCD variant is instantiated on a platform where
      it is combined with a 800x480 TPO WVGA display. In the
      .panel_init() hook we will detect this display from the
      compatible string and set it up. We also add .enable() and
      .disable() callbacks for it as the sleep state is software
      controlled.
      
      The display is connected with a special 3-wire serial bus
      (this is sadly neither I2C or SPI) using three GPIO lines that
      we bitbang to detect the display and enable/disable sleep
      state.
      
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      1d3f0cbe
    • Linus Walleij's avatar
      video: ARM CLCD: support Nomadik variant · 046ad6cd
      Linus Walleij authored
      
      
      The Nomadik variant has a few special quirks that need to be respected
      to make the driver work:
      
      - The block need to be clocked during writing of the TIMn registers
        or the bus will stall.
      - Special bits in the control register select how many of the output
        display lines get activated.
      - Special bits in the control register select how to manage the
        different 565 and 5551 modes.
      - There is a packed 24bit graphics mode, i.e 888 pixels can be stored
        in memory is three consecutive bytes, not evenly aligned to a 32bit
        word.
      
      This patch uses the vendor data pointer from the AMBA matching mechanism
      to track the quirks for this variant, and adds two hooks that variants
      can use to initialize boards and panels during start-up. These will
      later be used to adopt a Nomadik board profile.
      
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      046ad6cd
    • Linus Walleij's avatar
      video: ARM CLCD: support pads connected in reverse order · 03d14c36
      Linus Walleij authored
      
      
      There are CLCDs connected with the pads in BGR rather than RGB
      order. It really doesn't matter since the CLCD has a flag and
      a bit to switch the position of the RGB and BGR components.
      This is needed to put something logical into the
      arm,pl11x,tft-r0g0b0-pads property of the device tree on the
      Nomadik which will then be <16 8 0>.
      
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      03d14c36
    • Linus Walleij's avatar
      video: ARM CLCD: support DT signal inversion flags · af29897f
      Linus Walleij authored
      
      
      The device tree bindings from display-timing.txt allows us to
      specify if data enable, hsync, vsync or the pixed clock should be
      inverted on the way to the display. The driver does not currently
      handle this so add support for those flags as it is needed for
      the Versatile Sanyo LCD display.
      
      Note that the previous behaviour was to invert the pixel clock
      for all displays, so unless the pixel clock polarity is
      explicitly defined in the device tree (i.e. the timings node
      has the "pixelclk-active" property) we fall back to inverting
      the pixel clock. This needs some extra compatibility code.
      
      Since the timing flags have to be set up inside the struct
      clcd_panel, we need to refactor the code a bit to pass around
      the panel rather than just the mode.
      
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      af29897f
    • Linus Walleij's avatar
      video: ARM CLCD: backlight support for OF · c38162be
      Linus Walleij authored
      
      
      If the device is probed from device tree, we can support
      backlight. This is used with some systems such as the
      ST Microelectronics Nomadik.
      
      We have to add HAS_IOMEM to the dependencies of CLCD since
      the backlight class device will now be selected, and if it
      gets selected on an arch that does not have IOMEM,
      compilation will fail.
      
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      c38162be
    • Mark Brown's avatar
      omapfb: Fix regulator API abuse in dss.c and hdmi4/5.c · 1d1e56f4
      Mark Brown authored
      
      
      The voltage changing code in this driver is broken and should be
      removed.  The driver sets a single, exact voltage on probe.  Unless
      there is a very good reason for this (which should be documented in
      comments) constraints like this need to be set via the machine
      constraints, voltage setting in a driver is expected to be used in cases
      where the voltage varies at runtime.
      
      In addition client drivers should almost never be calling
      regulator_can_set_voltage(), if the device needs to set a voltage it
      needs to set the voltage and the regulator core will handle the case
      where the regulator is fixed voltage.  If the driver can skip setting
      the voltage it should just never set the voltage.
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      [tomi.valkeinen@ti.com: fix abuse in hdmi5.c too]
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      1d1e56f4
  5. Aug 08, 2016
    • Linus Torvalds's avatar
      Linux 4.8-rc1 · 29b4817d
      Linus Torvalds authored
      29b4817d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 857953d7
      Linus Torvalds authored
      Pull more block fixes from Jens Axboe:
       "As mentioned in the pull the other day, a few more fixes for this
        round, all related to the bio op changes in this series.
      
        Two fixes, and then a cleanup, renaming bio->bi_rw to bio->bi_opf.  I
        wanted to do that change right after or right before -rc1, so that
        risk of conflict was reduced.  I just rebased the series on top of
        current master, and no new ->bi_rw usage has snuck in"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: rename bio bi_rw to bi_opf
        target: iblock_execute_sync_cache() should use bio_set_op_attrs()
        mm: make __swap_writepage() use bio_set_op_attrs()
        block/mm: make bdev_ops->rw_page() take a bool for read/write
      857953d7
    • Linus Torvalds's avatar
      Merge tag 'drm-for-v4.8-zpos' of git://people.freedesktop.org/~airlied/linux · 635a4ba1
      Linus Torvalds authored
      Pull drm zpos property support from Dave Airlie:
       "This tree was waiting on some media stuff I hadn't had time to get a
        stable branchpoint off, so I just waited until it was all in your tree
        first.
      
        It's been around a bit on the list and shouldn't affect anything
        outside adding the generic API and moving some ARM drivers to using
        it"
      
      * tag 'drm-for-v4.8-zpos' of git://people.freedesktop.org/~airlied/linux:
        drm: rcar: use generic code for managing zpos plane property
        drm/exynos: use generic code for managing zpos plane property
        drm: sti: use generic zpos for plane
        drm: add generic zpos property
      635a4ba1
    • Jens Axboe's avatar
      block: rename bio bi_rw to bi_opf · 1eff9d32
      Jens Axboe authored
      Since commit 63a4cc24
      
      , bio->bi_rw contains flags in the lower
      portion and the op code in the higher portions. This means that
      old code that relies on manually setting bi_rw is most likely
      going to be broken. Instead of letting that brokeness linger,
      rename the member, to force old and out-of-tree code to break
      at compile time instead of at runtime.
      
      No intended functional changes in this commit.
      
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      1eff9d32
    • Jens Axboe's avatar
      target: iblock_execute_sync_cache() should use bio_set_op_attrs() · 31c64f78
      Jens Axboe authored
      The original commit missed this function, it needs to mark it a
      write flush.
      
      Cc: Mike Christie <mchristi@redhat.com>
      Fixes: e742fc32
      
       ("target: use bio op accessors")
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      31c64f78
    • Jens Axboe's avatar
      mm: make __swap_writepage() use bio_set_op_attrs() · ba13e83e
      Jens Axboe authored
      
      
      Cleaner than manipulating bio->bi_rw flags directly.
      
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      ba13e83e
    • Jens Axboe's avatar
      block/mm: make bdev_ops->rw_page() take a bool for read/write · c11f0c0b
      Jens Axboe authored
      Commit abf54548
      
       changed it from an 'rw' flags type to the
      newer ops based interface, but now we're effectively leaking
      some bdev internals to the rest of the kernel. Since we only
      care about whether it's a read or a write at that level, just
      pass in a bool 'is_write' parameter instead.
      
      Then we can also move op_is_write() and friends back under
      CONFIG_BLOCK protection.
      
      Reviewed-by: default avatarMike Christie <mchristi@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      c11f0c0b
  6. Aug 07, 2016
    • Linus Torvalds's avatar
      Merge tag 'doc-4.8-fixes' of git://git.lwn.net/linux · 52ddb7e9
      Linus Torvalds authored
      Pull documentation fixes from Jonathan Corbet:
       "Three fixes for the docs build, including removing an annoying warning
        on 'make help' if sphinx isn't present"
      
      * tag 'doc-4.8-fixes' of git://git.lwn.net/linux:
        DocBook: use DOCBOOKS="" to ignore DocBooks instead of IGNORE_DOCBOOKS=1
        Documenation: update cgroup's document path
        Documentation/sphinx: do not warn about missing tools in 'make help'
      52ddb7e9
    • Linus Torvalds's avatar
      Merge tag 'binfmt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/binfmt_misc · e9d488c3
      Linus Torvalds authored
      Pull binfmt_misc update from James Bottomley:
       "This update is to allow architecture emulation containers to function
        such that the emulation binary can be housed outside the container
        itself.  The container and fs parts both have acks from relevant
        experts.
      
        To use the new feature you have to add an F option to your binfmt_misc
        configuration"
      
      From the docs:
       "The usual behaviour of binfmt_misc is to spawn the binary lazily when
        the misc format file is invoked.  However, this doesn't work very well
        in the face of mount namespaces and changeroots, so the F mode opens
        the binary as soon as the emulation is installed and uses the opened
        image to spawn the emulator, meaning it is always available once
        installed, regardless of how the environment changes"
      
      * tag 'binfmt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/binfmt_misc:
        binfmt_misc: add F option description to documentation
        binfmt_misc: add persistent opened binary handler for containers
        fs: add filp_clone_open API
      e9d488c3
    • Eryu Guan's avatar
      fs: return EPERM on immutable inode · 337684a1
      Eryu Guan authored
      
      
      In most cases, EPERM is returned on immutable inode, and there're only a
      few places returning EACCES. I noticed this when running LTP on
      overlayfs, setxattr03 failed due to unexpected EACCES on immutable
      inode.
      
      So converting all EACCES to EPERM on immutable inode.
      
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      Signed-off-by: default avatarEryu Guan <guaneryu@gmail.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      337684a1
    • Linus Torvalds's avatar
      Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · fe64f328
      Linus Torvalds authored
      Pull more vfs updates from Al Viro:
       "Assorted cleanups and fixes.
      
        In the "trivial API change" department - ->d_compare() losing 'parent'
        argument"
      
      * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        cachefiles: Fix race between inactivating and culling a cache object
        9p: use clone_fid()
        9p: fix braino introduced in "9p: new helper - v9fs_parent_fid()"
        vfs: make dentry_needs_remove_privs() internal
        vfs: remove file_needs_remove_privs()
        vfs: fix deadlock in file_remove_privs() on overlayfs
        get rid of 'parent' argument of ->d_compare()
        cifs, msdos, vfat, hfs+: don't bother with parent in ->d_compare()
        affs ->d_compare(): don't bother with ->d_inode
        fold _d_rehash() and __d_rehash() together
        fold dentry_rcuwalk_invalidate() into its only remaining caller
      fe64f328