1. 05 Sep, 2013 40 commits
    • Miklos Szeredi's avatar
      fuse: clean up return in fuse_dentry_revalidate() · e2a6b952
      Miklos Szeredi authored
      On errors unrelated to the filesystem's state (ENOMEM, ENOTCONN) return the
      error itself from ->d_revalidate() insted of returning zero (invalid).
      
      Also make a common label for invalidating the dentry.  This will be used by
      the next patch.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      e2a6b952
    • Miklos Szeredi's avatar
      fuse: use d_materialise_unique() · 5835f339
      Miklos Szeredi authored
      Use d_materialise_unique() instead of d_splice_alias().  This allows dentry
      subtrees to be moved to a new place if there moved, even if something is
      referencing a dentry in the subtree (open fd, cwd, etc..).
      
      This will also allow us to drop a subtree if it is found to be replaced by
      something else.  In this case the disconnected subtree can later be
      reconnected to its new location.
      
      d_materialise_unique() ensures that a directory entry only ever has one
      alias.  We keep fc->inst_mutex around the calls for d_materialise_unique()
      on directories to prevent a race with mkdir "stealing" the inode.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      5835f339
    • Miklos Szeredi's avatar
      sysfs: use check_submounts_and_drop() · 6497d160
      Miklos Szeredi authored
      Do have_submounts(), shrink_dcache_parent() and d_drop() atomically.
      
      check_submounts_and_drop() can deal with negative dentries and
      non-directories as well.
      
      Non-directories can also be mounted on.  And just like directories we don't
      want these to disappear with invalidation.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      6497d160
    • Miklos Szeredi's avatar
      nfs: use check_submounts_and_drop() · 13caa9fb
      Miklos Szeredi authored
      Do have_submounts(), shrink_dcache_parent() and d_drop() atomically.
      
      check_submounts_and_drop() can deal with negative dentries and
      non-directories as well.
      
      Non-directories can also be mounted on.  And just like directories we don't
      want these to disappear with invalidation.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      CC: Trond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      13caa9fb
    • Miklos Szeredi's avatar
      gfs2: use check_submounts_and_drop() · 1191a2bd
      Miklos Szeredi authored
      Do have_submounts(), shrink_dcache_parent() and d_drop() atomically.
      
      check_submounts_and_drop() can deal with negative dentries and
      non-directories as well.
      
      Non-directories can also be mounted on.  And just like directories we don't
      want these to disappear with invalidation.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      CC: Steven Whitehouse <swhiteho@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      1191a2bd
    • Miklos Szeredi's avatar
      afs: use check_submounts_and_drop() · ba812380
      Miklos Szeredi authored
      Do have_submounts(), shrink_dcache_parent() and d_drop() atomically.
      
      check_submounts_and_drop() can deal with negative dentries as well.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      CC: David Howells <dhowells@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      ba812380
    • Miklos Szeredi's avatar
      vfs: check unlinked ancestors before mount · eed81007
      Miklos Szeredi authored
      We check submounts before doing d_drop() on a non-empty directory dentry in
      NFS (have_submounts()), but we do not exclude a racing mount.  Nor do we
      prevent mounts to be added to the disconnected subtree using relative paths
      after the d_drop().
      
      This patch fixes these issues by checking for unlinked (unhashed, non-root)
      ancestors before proceeding with the mount.  This is done with rename
      seqlock taken for write and with ->d_lock grabbed on each ancestor in turn,
      including our dentry itself.  This ensures that the only one of
      check_submounts_and_drop() or has_unlinked_ancestor() can succeed.
      Signed-off-by: default avatarMiklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      eed81007
    • Miklos Szeredi's avatar
      vfs: check submounts and drop atomically · 848ac114
      Miklos Szeredi authored
      We check submounts before doing d_drop() on a non-empty directory dentry in
      NFS (have_submounts()), but we do not exclude a racing mount.
      
       Process A: have_submounts() -> returns false
       Process B: mount() -> success
       Process A: d_drop()
      
      This patch prepares the ground for the fix by doing the following
      operations all under the same rename lock:
      
        have_submounts()
        shrink_dcache_parent()
        d_drop()
      
      This is actually an optimization since have_submounts() and
      shrink_dcache_parent() both traverse the same dentry tree separately.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      CC: David Howells <dhowells@redhat.com>
      CC: Steven Whitehouse <swhiteho@redhat.com>
      CC: Trond Myklebust <Trond.Myklebust@netapp.com>
      CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      848ac114
    • Miklos Szeredi's avatar
      vfs: add d_walk() · db14fc3a
      Miklos Szeredi authored
      This one replaces three instances open coded tree walking (have_submounts,
      select_parent, d_genocide) with a common helper.
      
      In addition to slightly reducing the kernel size, this simplifies the
      callers and makes them less bug prone.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      db14fc3a
    • Miklos Szeredi's avatar
      vfs: restructure d_genocide() · 01ddc4ed
      Miklos Szeredi authored
      It shouldn't matter when we decrement the refcount during the walk as long
      as we do it exactly once.
      
      Restructure d_genocide() to do the killing on entering the dentry instead
      of when leaving it.  This helps creating a common helper for tree walking.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      01ddc4ed
    • Linus Torvalds's avatar
      Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux · a09e9a7a
      Linus Torvalds authored
      Pull drm tree changes from Dave Airlie:
       "This is the main drm pull request, I have some overlap with sound and
        arm-soc, the sound patch is acked and may conflict based on -next
        reports but should be a trivial fixup, which I'll leave to you!
      
        Highlights:
      
         - new drivers:
      
           MSM driver from Rob Clark
      
         - non-drm:
      
           switcheroo and hdmi audio driver support for secondary GPU
           poweroff, so drivers can use runtime PM to poweroff the GPUs.  This
           can save 5 or 6W on some optimus laptops.
      
         - drm core:
      
           combined GEM and TTM VMA manager
           per-filp mmap permission tracking
           initial rendernode support (via a runtime enable for now, until we get api stable),
           remove old proc support,
           lots of cleanups of legacy code
           hdmi vendor infoframes and 4k modes
           lots of gem/prime locking and races fixes
           async pageflip scaffolding
           drm bridge objects
      
         - i915:
      
           Haswell PC8+ support and eLLC support, HDMI 4K support, initial
           per-process VMA pieces, watermark reworks, convert to generic hdmi
           infoframes, encoder reworking, fastboot support,
      
         - radeon:
      
           CIK PM support, remove 3d blit code in favour of DMA engines,
           Berlin GPU support, HDMI audio fixes
      
         - nouveau:
      
           secondary GPU power down support for optimus laptops, lots of
           fixes, use MSI, VP3 engine support
      
         - exynos:
      
           runtime pm support for g2d, DT support, remove non-DT,
      
         - tda998x i2c driver:
      
           lots of fixes for sync issues
      
         - gma500:
      
           lots of cleanups
      
         - rcar:
      
           add LVDS support, fbdev emulation,
      
         - tegra:
      
           just minor fixes"
      
      * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (684 commits)
        drm/exynos: Fix build error with exynos_drm_connector.c
        drm/exynos: Remove non-DT support in exynos_drm_fimd
        drm/exynos: Remove non-DT support in exynos_hdmi
        drm/exynos: Remove non-DT support in exynos_drm_g2d
        drm/exynos: Remove non-DT support in exynos_hdmiphy
        drm/exynos: Remove non-DT support in exynos_ddc
        drm/exynos: Make Exynos DRM drivers depend on OF
        drm/exynos: Consider fallback option to allocation fail
        drm/exynos: fimd: move platform data parsing to separate function
        drm/exynos: fimd: get signal polarities from device tree
        drm/exynos: fimd: replace struct fb_videomode with videomode
        drm/exynos: check a pixel format to a particular window layer
        drm/exynos: fix fimd pixel format setting
        drm/exynos: Add NULL pointer check
        drm/exynos: Remove redundant error messages
        drm/exynos: Add missing of.h header include
        drm/exynos: Remove redundant NULL check in exynos_drm_buf
        drm/exynos: add device tree support for rotator
        drm/exynos: Add missing includes
        drm/exynos: add runtime pm interfaces to g2d driver
        ...
      a09e9a7a
    • Linus Torvalds's avatar
      Merge tag 'fbdev-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · 9ab073bc
      Linus Torvalds authored
      Pull fbdev changes from Tomi Valkeinen:
       - Improvements to da8xx-fb to make it support v2 of the LCDC IP, used
         eg in BeagleBone
       - Himax HX8369 controller support
       - Various small fixes and cleanups
      
      * tag 'fbdev-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (42 commits)
        video: da8xx-fb: fix the polarities of the hsync/vsync pulse
        video: da8xx-fb: support lcdc v2 timing register expansion
        video: da8xx-fb: fixing timing off by one errors
        video: da8xx-fb fixing incorrect porch mappings
        video: xilinxfb: replace devm_request_and_ioremap by devm_ioremap_resource
        fbmem: move EXPORT_SYMBOL annotation next to symbol declarations
        drivers: video: fbcmap: remove the redundency and incorrect checkings
        video: mxsfb: simplify use of devm_ioremap_resource
        Release efifb's colormap in efifb_destroy()
        at91/avr32/atmel_lcdfb: prepare clk before calling enable
        video: exynos: Ensure definitions match prototypes
        OMAPDSS: fix WARN_ON in 'alpha_blending_enabled' sysfs file
        OMAPDSS: HDMI: Fix possible NULL reference
        video: da8xx-fb: adding am33xx as dependency
        video: da8xx-fb: let compiler decide what to inline
        video: da8xx-fb: make clock naming consistent
        video: da8xx-fb: set upstream clock rate (if reqd)
        video: da8xx-fb: reorganize panel detection
        video: da8xx-fb: ensure non-null cfg in pdata
        video: da8xx-fb: use devres
        ...
      9ab073bc
    • Linus Torvalds's avatar
      Merge tag 'fbdev-3.12-omap-legacy-removal' of... · eced5a0a
      Linus Torvalds authored
      Merge tag 'fbdev-3.12-omap-legacy-removal' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux
      
      Pull OMAP specific fbdev changes from Tomi Valkeinen:
       "I've got this pull request separate from the main fbdev pull request,
        as this contains a bunch of OMAP board file changes and thus could
        possibly be rejected in case of bad conflicts.
      
        The removal of the old display drivers depend on the board file
        changes, so Tony Lindgren suggested taking them together via fbdev
        tree.  These are in linux-next, and also Tony didn't see any conflicts
        with any of the branches he had, so they should go in clean.
      
         - Change the OMAP board files to use the new OMAP display drivers
      
         - Remove all the old drivers, and the related auxiliary code"
      
      * tag 'fbdev-3.12-omap-legacy-removal' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (35 commits)
        OMAPDSS: rename omap_dss_device's 'device' field to 'dst'
        OMAPDSS: rename omap_dss_device's 'output' to 'src'
        OMAPDSS: DSS: remove legacy dss bus support
        OMAPDSS: RFBI: remove code related to old panel model
        OMAPDSS: VENC: remove code related to old panel model
        OMAPDSS: SDI: remove code related to old panel model
        OMAPDSS: DSI: remove code related to old panel model
        OMAPDSS: HDMI: remove code related to old panel model
        OMAPDSS: DPI: remove code related to old panel model
        OMAPDSS: remove all old panel drivers
        OMAPDSS: DPI: change regulator handling
        OMAPDSS: SDI: change regulator handling
        OMAPDSS: fix DPI and SDI device ids
        OMAPDSS: remove omap_dss_device->channel field
        OMAPDSS: RFBI: Mark RFBI as broken
        ARM: OMAP2+: Remove old display drivers from omap2plus_defconfig
        ARM: OMAP: AM3517EVM: use new display drivers
        ARM: OMAP: Zoom: use new display drivers
        ARM: OMAP: Pandora: use new display drivers
        ARM: OMAP: OMAP3EVM: use new display drivers
        ...
      eced5a0a
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 7c049d08
      Linus Torvalds authored
      Pull main batch of InfiniBand/RDMA changes from Roland Dreier:
       - Large ocrdma HW driver update: add "fast register" work requests,
         fixes, cleanups
       - Add receive flow steering support for raw QPs
       - Fix IPoIB neighbour race that leads to crash
       - iSER updates including support for using "fast register" memory
         registration
       - IPv6 support for iWARP
       - XRC transport fixes
      
      * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (54 commits)
        RDMA/ocrdma: Fix compiler warning about int/pointer size mismatch
        IB/iser: Fix redundant pointer check in dealloc flow
        IB/iser: Fix possible memory leak in iser_create_frwr_pool()
        IB/qib: Move COUNTER_MASK definition within qib_mad.h header guards
        RDMA/ocrdma: Fix passing wrong opcode to modify_srq
        RDMA/ocrdma: Fill PVID in UMC case
        RDMA/ocrdma: Add ABI versioning support
        RDMA/ocrdma: Consider multiple SGES in case of DPP
        RDMA/ocrdma: Fix for displaying proper link speed
        RDMA/ocrdma: Increase STAG array size
        RDMA/ocrdma: Dont use PD 0 for userpace CQ DB
        RDMA/ocrdma: FRMA code cleanup
        RDMA/ocrdma: For ERX2 irrespective of Qid, num_posted offset is 24
        RDMA/ocrdma: Fix to work with even a single MSI-X vector
        RDMA/ocrdma: Remove the MTU check based on Ethernet MTU
        RDMA/ocrdma: Add support for fast register work requests (FRWR)
        RDMA/ocrdma: Create IRD queue fix
        IB/core: Better checking of userspace values for receive flow steering
        IB/mlx4: Add receive flow steering support
        IB/core: Export ib_create/destroy_flow through uverbs
        ...
      7c049d08
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 00341b53
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "Highlights:
      
         - OF and ACPI helpers are now included in the core, and not in
           external files anymore.  This removes dependency problems for
           modules and is cleaner, in general.
         - mv64xxx-driver gains fifo usage to support mv78230
         - imx-driver overhaul to support VF610
         - various cleanups, most notably related to devm_* and CONFIG_PM
           usage
         - driver bugfixes and smaller feature additions"
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (51 commits)
        i2c: rcar: add rcar-H2 support
        i2c: sirf: retry 3 times as sometimes we get random noack and timeout
        i2c: sirf: support reverse direction of address
        i2c: sirf: fix the typo for setting bitrate to less than 100k
        i2c: sirf: we need to wait I2C_RESET status in resume
        i2c: sirf: reset i2c controller early after we get a noack
        i2c: designware: get SDA hold time, HCNT and LCNT configuration from ACPI
        i2c: designware: make HCNT/LCNT values configurable
        i2c: mpc: cleanup clock API use
        i2c: pnx: fix error return code in i2c_pnx_probe()
        i2c: ismt: add error return code in probe()
        i2c: mv64xxx: fix typo in binding documentation
        i2c: imx: use exact SoC revision to document binding
        i2c: move ACPI helpers into the core
        i2c: move OF helpers into the core
        i2c: mv64xxx: Fix timing issue on Armada XP (errata FE-8471889)
        i2c: mv64xxx: Add I2C Transaction Generator support
        i2c: powermac: fix return path on error
        Documentation: i2c: Fix example in instantiating-devices
        i2c: tiny-usb: do not use stack as URB transfer_buffer
        ...
      00341b53
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 45d9a222
      Linus Torvalds authored
      Pull vfs pile 1 from Al Viro:
       "Unfortunately, this merge window it'll have a be a lot of small piles -
        my fault, actually, for not keeping #for-next in anything that would
        resemble a sane shape ;-/
      
        This pile: assorted fixes (the first 3 are -stable fodder, IMO) and
        cleanups + %pd/%pD formats (dentry/file pathname, up to 4 last
        components) + several long-standing patches from various folks.
      
        There definitely will be a lot more (starting with Miklos'
        check_submount_and_drop() series)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (26 commits)
        direct-io: Handle O_(D)SYNC AIO
        direct-io: Implement generic deferred AIO completions
        add formats for dentry/file pathnames
        kvm eventfd: switch to fdget
        powerpc kvm: use fdget
        switch fchmod() to fdget
        switch epoll_ctl() to fdget
        switch copy_module_from_fd() to fdget
        git simplify nilfs check for busy subtree
        ibmasmfs: don't bother passing superblock when not needed
        don't pass superblock to hypfs_{mkdir,create*}
        don't pass superblock to hypfs_diag_create_files
        don't pass superblock to hypfs_vm_create_files()
        oprofile: get rid of pointless forward declarations of struct super_block
        oprofilefs_create_...() do not need superblock argument
        oprofilefs_mkdir() doesn't need superblock argument
        don't bother with passing superblock to oprofile_create_stats_files()
        oprofile: don't bother with passing superblock to ->create_files()
        don't bother passing sb to oprofile_create_files()
        coh901318: don't open-code simple_read_from_buffer()
        ...
      45d9a222
    • Linus Torvalds's avatar
      Merge branch 'ipmi' · 2386a3b0
      Linus Torvalds authored
      Merge IPMI fixes from:
       "A few things for 3.12 from various people"
      
      * emailed patches from Corey Minyard <minyard@acm.org>:
        BMC support for PARISC machines
        Add MODULE_ALIAS for autoloading ipmi driver on ACPI systems
        ipmi: Initialize locals to avoid warning
        ipmi: info leak in compat_ipmi_ioctl()
      2386a3b0
    • Thomas Bogendoerfer's avatar
      BMC support for PARISC machines · fdbeb7de
      Thomas Bogendoerfer authored
      The last line of PARISC machines (C8000, RP34x0, etc.) have a BMC for
      controlling temperature, fan speed and other stuff.  The BMC is
      connected via a special bus and listed in the firmware device tree.
      This change adds support for these BMCs to the IPMI driver.
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fdbeb7de
    • Jordan_Hargrave@Dell.com's avatar
      Add MODULE_ALIAS for autoloading ipmi driver on ACPI systems · a798e2d2
      Jordan_Hargrave@Dell.com authored
      I'd submitted this about a year ago but it never made it upstream.
      
      The latest versions of the kernel drivers for ipmi can use ACPI to
      determine the type of BMC device used in the system.  The following
      patch adds a module alias so that udev will autoload the ipmi_si driver.
      Signed-off-by: default avatarJordan Hargrave <jordan_hargrave@dell.com>
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a798e2d2
    • Corey Minyard's avatar
      ipmi: Initialize locals to avoid warning · f0ba9390
      Corey Minyard authored
      A couple of variables were getting warnings about being uninitialized.
      It was a false warning, but initialize them, anyway.
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f0ba9390
    • Dan Carpenter's avatar
      ipmi: info leak in compat_ipmi_ioctl() · fa7df37b
      Dan Carpenter authored
      On x86_64 there is a 4 byte hole between ->recv_type and ->addr.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fa7df37b
    • Dave Airlie's avatar
      Merge branch 'exynos-drm-next' of... · 86a7e122
      Dave Airlie authored
      Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
      
         Summary:
         - Consider fallback option to gem allocation fail
           . try to allocate physically non-contiguous memory
             if iommu is supported when physically contiguous memory allocation
             failed.
         - Add runtime pm support to g2d driver
         - Add device tree support
           . add device tree support to rotator driver, make fimd driver get
             signal polarities from device tree.
         - some fixups
           . correct pixel format setting to fimd driver, and consider pixel
             format checking to a particular window layer.
         - some cleanups
           . replace fb_videomode with videomode.
           . remove non-DT support
      
      * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (21 commits)
        drm/exynos: Fix build error with exynos_drm_connector.c
        drm/exynos: Remove non-DT support in exynos_drm_fimd
        drm/exynos: Remove non-DT support in exynos_hdmi
        drm/exynos: Remove non-DT support in exynos_drm_g2d
        drm/exynos: Remove non-DT support in exynos_hdmiphy
        drm/exynos: Remove non-DT support in exynos_ddc
        drm/exynos: Make Exynos DRM drivers depend on OF
        drm/exynos: Consider fallback option to allocation fail
        drm/exynos: fimd: move platform data parsing to separate function
        drm/exynos: fimd: get signal polarities from device tree
        drm/exynos: fimd: replace struct fb_videomode with videomode
        drm/exynos: check a pixel format to a particular window layer
        drm/exynos: fix fimd pixel format setting
        drm/exynos: Add NULL pointer check
        drm/exynos: Remove redundant error messages
        drm/exynos: Add missing of.h header include
        drm/exynos: Remove redundant NULL check in exynos_drm_buf
        drm/exynos: add device tree support for rotator
        drm/exynos: Add missing includes
        drm/exynos: add runtime pm interfaces to g2d driver
        ...
      86a7e122
    • Sachin Kamat's avatar
      drm/exynos: Fix build error with exynos_drm_connector.c · 6914262a
      Sachin Kamat authored
      exynos_drm_connector.c now uses videomode helper API. Hence select
      VIDEOMODE_HELPERS at DRM_EXYNOS level itself instead of at
      DRM_EXYNOS_FIMD to avoid the following compilation error when FIMD
      is not selected (introduced by commit cf796235a6 "drm/exynos: fimd:
      replace struct fb_videomode with videomode"):
      drivers/built-in.o: In function `exynos_drm_connector_get_modes':
      drivers/gpu/drm/exynos/exynos_drm_connector.c:86:
      undefined reference to `drm_display_mode_from_videomode'
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      6914262a
    • Sachin Kamat's avatar
      drm/exynos: Remove non-DT support in exynos_drm_fimd · 2d3f173c
      Sachin Kamat authored
      Since commit 383ffda2 ("ARM: EXYNOS: no more support non-DT
      for EXYNOS SoCs"), Exynos platform is DT only. Hence remove
      all the conditional macros and make the driver DT only.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      2d3f173c
    • Sachin Kamat's avatar
      drm/exynos: Remove non-DT support in exynos_hdmi · 88c49815
      Sachin Kamat authored
      Since commit 383ffda2 ("ARM: EXYNOS: no more support non-DT
      for EXYNOS SoCs"), Exynos platform is DT only. Hence remove
      all the conditional macros and make the driver DT only.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      88c49815
    • Sachin Kamat's avatar
      drm/exynos: Remove non-DT support in exynos_drm_g2d · 61c48fbf
      Sachin Kamat authored
      Since commit 383ffda2 ("ARM: EXYNOS: no more support non-DT
      for EXYNOS SoCs"), Exynos platform is DT only. Hence remove
      all the conditional macros and make the driver DT only.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      61c48fbf
    • Sachin Kamat's avatar
      drm/exynos: Remove non-DT support in exynos_hdmiphy · 459e97ee
      Sachin Kamat authored
      Since commit 383ffda2 ("ARM: EXYNOS: no more support non-DT
      for EXYNOS SoCs"), Exynos platform is DT only. Hence remove
      all the conditional macros and make the driver DT only.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      459e97ee
    • Sachin Kamat's avatar
      drm/exynos: Remove non-DT support in exynos_ddc · f61d5f29
      Sachin Kamat authored
      Since commit 383ffda2 ("ARM: EXYNOS: no more support non-DT
      for EXYNOS SoCs"), Exynos platform is DT only. Hence remove
      all the conditional macros and make the driver DT only.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      f61d5f29
    • Sachin Kamat's avatar
      drm/exynos: Make Exynos DRM drivers depend on OF · eccbf0d8
      Sachin Kamat authored
      Exynos is a DT-only platform. Add this info to Kconfig.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      eccbf0d8
    • Vikas Sajjan's avatar
      drm/exynos: Consider fallback option to allocation fail · 3fec4532
      Vikas Sajjan authored
      To address the case where physically contiguous memory
      MAY NOT be a mandatory requirement for framebuffer for
      the application calling exynos_drm_gem_dumb_create,
      the patch adds a feature to get non physically contiguous
      memory for framebuffer, if physically contiguous memory
      allocation fails and if IOMMU is supported.
      Signed-off-by: default avatarVikas Sajjan <vikas.sajjan@linaro.org>
      Signed-off-by: default avatarArun Kumar <arun.kk@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      3fec4532
    • Andrzej Hajda's avatar
      drm/exynos: fimd: move platform data parsing to separate function · 562ad9f4
      Andrzej Hajda authored
      The patch moves platfrom_data and device tree parsing
      to separate function.
      Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      562ad9f4
    • Andrzej Hajda's avatar
      drm/exynos: fimd: get signal polarities from device tree · b063f4af
      Andrzej Hajda authored
      The patch adds code to get signal polarization setting
      from device tree display-timings node.
      Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      b063f4af
    • Andrzej Hajda's avatar
      drm/exynos: fimd: replace struct fb_videomode with videomode · 111e6055
      Andrzej Hajda authored
      The patch replaces all occurrences of struct fb_videomode by
      more accurate struct videomode. The change allows to remove
      mode conversion function and simplifies clock divider calculation.
      Clock configuration is moved to separate function.
      Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      111e6055
    • Inki Dae's avatar
      drm/exynos: check a pixel format to a particular window layer · 5cc4621a
      Inki Dae authored
      This patch checks if a requested window supports alpha channel or not.
      
      In case of s3c64xx, window 0 doesn't support alpha channel so if
      the request pixel format is ARGB8888 then change it to XRGB8888.
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      Reviewed-by: default avatarTomasz Figa <t.figa@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      5cc4621a
    • Inki Dae's avatar
      drm/exynos: fix fimd pixel format setting · a4f38a80
      Inki Dae authored
      This patch fixes wrong pixel format setting.
      
      A pixel format is decided according to bpp and depth, or user-requested
      format but fimd driver considered only bpp value to decide a proper pixel
      format. So this patch makes a proper pixel format to be set according
      to drm_framebuffer's pixel_format which is set by addfb with bpp and
      depth, or addfb2 with user-requested format.
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      Reviewed-by: default avatarTomasz Figa <t.figa@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      a4f38a80
    • Sachin Kamat's avatar
      drm/exynos: Add NULL pointer check · 4db7fcdf
      Sachin Kamat authored
      devm_kzalloc can fail. Hence check the pointer to avoid NULL pointer
      dereferencing.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      4db7fcdf
    • Sachin Kamat's avatar
      drm/exynos: Remove redundant error messages · 38bb5253
      Sachin Kamat authored
      kzalloc already has built-in error messages. Hence remove
      additional ones.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      38bb5253
    • Sachin Kamat's avatar
      drm/exynos: Add missing of.h header include · 3f1c781d
      Sachin Kamat authored
      Add of.h explicitly for of_* APIs.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      3f1c781d
    • Sachin Kamat's avatar
      drm/exynos: Remove redundant NULL check in exynos_drm_buf · ca7c6220
      Sachin Kamat authored
      kfree handles null pointers. Hence this check is not necessary.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      ca7c6220
    • Chanho Park's avatar
      drm/exynos: add device tree support for rotator · 319477f3
      Chanho Park authored
      The exynos4 platform is only dt-based since 3.10, we should convert driver data
      and ids to dt-based parsing methods. The rotator driver has a limit table to get
      size limit of input picture. Each SoCs has slightly different limit value
      compared with any others.
      For example, exynos4210's max_size of RGB888 is 16k x 16k. But, others have
      8k x 8k. Another example the exynos5250 should have multiple of 2 pixel size
      for its X/Y axis. Thus, we should keep different tables for each of them.
      This patch also includes desciptions of each nodes for the rotator and specifies
      a example how to bind it.
      Signed-off-by: default avatarChanho Park <chanho61.park@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      319477f3