1. 09 Jan, 2014 6 commits
    • Archit Taneja's avatar
      drm/omap: Enable DT support for DMM · 3d232346
      Archit Taneja authored
      Enable use of DT for DMM/Tiler.
      
      Originally worked on by Andy Gross <andygro@gmail.com>
      
      Cc: Andy Gross <andygro@gmail.com>
      Cc: DRI Development <dri-devel@lists.freedesktop.org>
      Signed-off-by: default avatarArchit Taneja <archit@ti.com>
      [tomi.valkeinen@ti.com: use of_match_ptr()]
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      3d232346
    • Archit Taneja's avatar
      drm/omap: fix: change dev_unload order · 80e4ed54
      Archit Taneja authored
      The current dev_unload order uninits the irqs too early.
      
      In the current sequence, it's possible that a crtc queues work(apply_worker)
      to display a buffer, which registers to omap_crtc_apply_irq to notfiy the
      completion of the configuration we applied.
      
      Calling drm_vblank_cleanup and omap_drm_irq_uninstall here causes the crtc's
      apply handler to never get called, which results in an incorrect state of the
      apply_irq.registered parameter.
      
      This condition occurs where there is no mode set via omapdrm, and dev_lastclose
      tries to set a default fb mode via drm_fb_helper_restore_fbdev_mode. The apply
      work scheduled by restore_fbdev_mode is very close in time to the disabling of
      the irq handler, and hence leads to a race condition. We move the irq cleanup
      at the end of the unload sequence to prevent this.
      
      Also, the call to flush_workqueue is removed since it's called internally by
      destroy_workqueue.
      Signed-off-by: default avatarArchit Taneja <archit@ti.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      80e4ed54
    • Archit Taneja's avatar
      drm/omap: fix: disable encoder before destroying it · ec72a81e
      Archit Taneja authored
      Currently, an encoder is disabled only when an apply work is queued for the
      corresponding crtc. This works fine for the paths where userspace explicitly
      disables crtc, this results in disabling the omapdss device in the crtc's
      pre_apply function.
      
      However, when the omapdrm module is removed, there is no work queued to ensure
      that the encoder is disabled. This can result in an enabled omapdss device when
      removing omapdrm. omapdss is left in an inconsistent state, and that prevents us
      from using that omapdss device being used again.
      
      Disable enabled encoders in omap_encoder_destroy, we could consider a better
      place for doing this later.
      Signed-off-by: default avatarArchit Taneja <archit@ti.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      ec72a81e
    • Archit Taneja's avatar
      drm/omap: fix: disconnect devices when omapdrm module is removed · cc823bdc
      Archit Taneja authored
      At omapdrm probe, we install manager ops and connect omapdss devices. This
      needs to be undone when omapdrm module is removed so that omapdss is in a
      clean state. This ensures that we can re-insert omapdrm module, or some other
      module which uses omapdss(like omapfb/omap_vout).
      
      Currently, omapdrm's remove neither uninstalls manager ops, or disconnects
      omapdss devices. We make sure that this is done in pdev_remove.
      
      omapdrm establishes connections for omap_dss_device devices when probed. It
      should also be responsible to disconnect the devices. Keeping the devices
      connected can prevent the panel driver modules from unloading, it also causes
      issues when we try to remove or re-insert omapdrm module.
      Signed-off-by: default avatarArchit Taneja <archit@ti.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      cc823bdc
    • Archit Taneja's avatar
      drm/omap: fix: Defer probe if an omapdss device requests for it at connect · 3a01ab25
      Archit Taneja authored
      With the omapdss device model changes. omapdrm is required to call dssdriver's
      connect() op to register a panel. This is currently done in omap_modeset_init()
      
      A call to connect() can fail if the omapdss panels or the encoders(HDMI/DPI)
      they connect to have some resource(like regulators, I2C adapter) missing. If
      this happens, the correct approach is to defer omapdrm's probe.
      
      omapdrm currently ignores those panels which return a non zero value when
      connected. This could result in omapdrm ignoring all panels on an omap board.
      
      The right approach would be for omapdrm to request for probe deferral when a
      panel's connect op returns -EPROBE_DEFER.
      
      In order to do this, we need to call connect() much earlier during omapdrm's
      probe to prevent too many things are already done by then. We now connect the
      panels during pdev_probe(), before anything else is initialized, so that we
      don't need to undo too many things if a defer was requested.
      
      Now when we enter omap_modeset_init(), we have a set of panels that have been
      connected. We now proceed with registering only those panels that are already
      connected.
      
      A special case has to be considered when no panels are available to connect when
      omapdrm probes. In this case too, we defer probe and expect that a panel will be
      available to connect the next time.
      
      Checking whether the panel has a driver or whether it has get_timing/read_edid
      ops in omap_modeset_init() are redundant with the new display model. These can
      be removed since a dssdev device will always have a driver associated with it,
      and all dssdev drivers have a get_timings op.
      
      This will mainly fix cases when omapdrm is built-in the kernel, since that's
      generally where resources like regulators or I2C are unavailable because of
      probe order dependencies.
      
      In particular this fixes boot with omapdrm built-in on an omap4 panda ES board.
      The regulators used by HDMI(provided by I2C based TWL regulators) aren't
      initialized because I2C isn't initialized, I2C isn't initialized as it's pins
      are not configured because pinctrl is yet to probe.
      Signed-off-by: default avatarArchit Taneja <archit@ti.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      3a01ab25
    • Tomi Valkeinen's avatar
      drm/omap: fix (un)registering irqs inside an irq handler · 6da9f891
      Tomi Valkeinen authored
      omapdrm (un)registers irqs inside an irq handler. The problem is that
      the (un)register function uses dispc_runtime_get/put() to enable the
      clocks, and those functions are not irq safe by default.
      
      This was kind of fixed in 48664b21
      (OMAPDSS: DISPC: set irq_safe for runtime PM), which makes dispc's
      runtime calls irq-safe.
      
      However, using pm_runtime_irq_safe in dispc makes the parent of dispc,
      dss, always enabled, effectively preventing PM for the whole DSS module.
      
      This patch makes omapdrm behave better by adding new irq (un)register
      functions that do not use dispc_runtime_get/put, and using those
      functions in interrupt context. Thus we can make dispc again
      non-irq-safe, allowing proper PM.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Rob Clark <robdclark@gmail.com>
      6da9f891
  2. 30 Dec, 2013 1 commit
  3. 29 Dec, 2013 3 commits
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d7ada73c
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Another smallish batch of fixes, it's been quiet due to the holidays.
        Nothing controversial here, a handful of things across the board"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: pxa: fix USB gadget driver compilation regression
        ARM: OMAP2+: Fix LCD panel backlight regression for LDP legacy booting
        ARM: OMAP2+: hwmod_data: fix missing OMAP_INTC_START in irq data
        ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL
        ARM: shmobile: r8a7790: fix shdi resource sizes
        ARM: shmobile: bockw: fixup DMA mask
        ARM: shmobile: armadillo: Add PWM backlight power supply
      d7ada73c
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8cf126d9
      Linus Torvalds authored
      Pull x86 fixes from Peter Anvin:
       "There is a small EFI fix and a big power regression fix in this batch.
      
        My queue also had a fix for downing a CPU when there are insufficient
        number of IRQ vectors available, but I'm holding that one for now due
        to recent bug reports"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/efi: Don't select EFI from certain special ACPI drivers
        x86 idle: Repair large-server 50-watt idle-power regression
      8cf126d9
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · bddffa28
      Linus Torvalds authored
      Pull ACPI and power management fixes and new device IDs from Rafael Wysocki:
      
       - Fix for a cpufreq regression causing stale sysfs files to be left
         behind during system resume if cpufreq_add_dev() fails for one or
         more CPUs from Viresh Kumar.
      
       - Fix for a bug in cpufreq causing CONFIG_CPU_FREQ_DEFAULT_* to be
         ignored when the intel_pstate driver is used from Jason Baron.
      
       - System suspend fix for a memory leak in pm_vt_switch_unregister()
         that forgot to release objects after removing them from
         pm_vt_switch_list.  From Masami Ichikawa.
      
       - Intel Valley View device ID and energy unit encoding update for the
         (recently added) Intel RAPL (Running Average Power Limit) driver from
         Jacob Pan.
      
       - Intel Bay Trail SoC GPIO and ACPI device IDs for the Low Power
         Subsystem (LPSS) ACPI driver from Paul Drews.
      
      * tag 'pm+acpi-3.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        powercap / RAPL: add support for ValleyView Soc
        PM / sleep: Fix memory leak in pm_vt_switch_unregister().
        cpufreq: Use CONFIG_CPU_FREQ_DEFAULT_* to set initial policy for setpolicy drivers
        cpufreq: remove sysfs files for CPUs which failed to come back after resume
        ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs
      bddffa28
  4. 28 Dec, 2013 3 commits
  5. 27 Dec, 2013 2 commits
  6. 26 Dec, 2013 5 commits
    • Rafael J. Wysocki's avatar
      Merge branches 'powercap' and 'acpi-lpss' with new device IDs · bfde19c4
      Rafael J. Wysocki authored
      * powercap:
        powercap / RAPL: add support for ValleyView Soc
      
      * acpi-lpss:
        ACPI: Add BayTrail SoC GPIO and LPSS ACPI IDs
      bfde19c4
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpufreq' and 'pm-sleep' containing PM fixes · 1a672535
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq: Use CONFIG_CPU_FREQ_DEFAULT_* to set initial policy for setpolicy drivers
        cpufreq: remove sysfs files for CPUs which failed to come back after resume
      
      * pm-sleep:
        PM / sleep: Fix memory leak in pm_vt_switch_unregister().
      1a672535
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · f41bfc94
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "A collection of bug fixes destined for stable and some printk cleanups
        and a patch so that instead of BUG'ing we use the ext4_error()
        framework to mark the file system is corrupted"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: add explicit casts when masking cluster sizes
        ext4: fix deadlock when writing in ENOSPC conditions
        jbd2: rename obsoleted msg JBD->JBD2
        jbd2: revise KERN_EMERG error messages
        jbd2: don't BUG but return ENOSPC if a handle runs out of space
        ext4: Do not reserve clusters when fs doesn't support extents
        ext4: fix del_timer() misuse for ->s_err_report
        ext4: check for overlapping extents in ext4_valid_extent_entries()
        ext4: fix use-after-free in ext4_mb_new_blocks
        ext4: call ext4_error_inode() if jbd2_journal_dirty_metadata() fails
      f41bfc94
    • Suman Anna's avatar
      ARM: OMAP2+: hwmod_data: fix missing OMAP_INTC_START in irq data · 6d4c8830
      Suman Anna authored
      Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) and commit
      ec2c0825 (ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ)
      updated the way interrupts for OMAP2/3 devices are defined in the
      HWMOD data structures to being an index plus a fixed offset (defined
      by OMAP_INTC_START).
      
      Couple of irqs in the OMAP2/3 hwmod data were misconfigured completely
      as they were missing this OMAP_INTC_START relative offset. Add this
      offset back to fix the incorrect irq data for the following modules:
      	OMAP2 - GPMC, RNG
      	OMAP3 - GPMC, ISP MMU & IVA MMU
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      Fixes: 7d7e1eba ("ARM: OMAP2+: Prepare for irqs.h removal")
      Fixes: ec2c0825 ("ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ")
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      6d4c8830
    • Rajendra Nayak's avatar
      ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL · 38958c15
      Rajendra Nayak authored
      With commit '7dedd346: ARM: OMAP2+: hwmod: Fix a crash in _setup_reset() with
       DEBUG_LL' we moved from parsing cmdline to identify uart used for earlycon
      to using the requsite hwmod CONFIG_DEBUG_OMAPxUARTy FLAGS.
      
      On DRA7 though, we seem to be missing this flag, and atleast on the DRA7 EVM
      where we use uart1 for console, boot fails with DEBUG_LL enabled.
      Reported-by: default avatarLokesh Vutla <lokeshvutla@ti.com>
      Tested-by:  Lokesh Vutla <lokeshvutla@ti.com> # on a different base
      Signed-off-by: default avatarRajendra Nayak <rnayak@ti.com>
      Fixes: 7dedd346 ("ARM: OMAP2+: hwmod: Fix a crash in _setup_reset() with DEBUG_LL")
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      38958c15
  7. 24 Dec, 2013 8 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · c5fdd531
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       - fix for a memory leak on certain unplug events
       - a collection of bcache fixes from Kent and Nicolas
       - a few null_blk fixes and updates form Matias
       - a marking of static of functions in the stec pci-e driver
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        null_blk: support submit_queues on use_per_node_hctx
        null_blk: set use_per_node_hctx param to false
        null_blk: corrections to documentation
        null_blk: warning on ignored submit_queues param
        null_blk: refactor init and init errors code paths
        null_blk: documentation
        null_blk: mem garbage on NUMA systems during init
        drivers: block: Mark the functions as static in skd_main.c
        bcache: New writeback PD controller
        bcache: bugfix for race between moving_gc and bucket_invalidate
        bcache: fix for gc and writeback race
        bcache: bugfix - moving_gc now moves only correct buckets
        bcache: fix for gc crashing when no sectors are used
        bcache: Fix heap_peek() macro
        bcache: Fix for can_attach_cache()
        bcache: Fix dirty_data accounting
        bcache: Use uninterruptible sleep in writeback
        bcache: kthread don't set writeback task to INTERUPTIBLE
        block: fix memory leaks on unplugging block device
        bcache: fix sparse non static symbol warning
      c5fdd531
    • Linus Torvalds's avatar
      Merge branch 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 70e672fa
      Linus Torvalds authored
      Pull cgroup fixes from Tejun Heo:
       "Two fixes.  One fixes a bug in the error path of cgroup_create().  The
        other changes cgrp->id lifetime rule so that the id doesn't get
        recycled before all controller states are destroyed.  This premature
        id recycling made memcg malfunction"
      
      * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: don't recycle cgroup id until all csses' have been destroyed
        cgroup: fix cgroup_create() error handling path
      70e672fa
    • Linus Torvalds's avatar
      Merge branch 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · f6398600
      Linus Torvalds authored
      Pull percpu fix from Tejun Heo:
       "A single commit to fix a spurious sparse warning coming from
        DEFINE_PER_CPU()'s hack to support the use of weak symbols.  Shouldn't
        cause observable behavior change"
      
      * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: fix spurious sparse warnings from DEFINE_PER_CPU()
      f6398600
    • Linus Torvalds's avatar
      Merge branch 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 4b69316e
      Linus Torvalds authored
      Pull libata fixes from Tejun Heo:
       "There's one interseting commit - "libata, freezer: avoid block device
        removal while system is frozen".  It's an ugly hack working around a
        deadlock condition between driver core resume and block layer device
        removal paths through freezer which was made more reproducible by
        writeback being converted to workqueue some releases ago.  The bug has
        nothing to do with libata but it's just an workaround which is easy to
        backport.  After discussion, Rafael and I seem to agree that we don't
        really need kernel freezables - both kthread and workqueue.  There are
        few specific workqueues which constitute PM operations and require
        freezing, which will be converted to use workqueue_set_max_active()
        instead.  All other kernel freezer uses are planned to be removed,
        followed by the removal of kthread and workqueue freezer support,
        hopefully.
      
        Others are device-specific fixes.  The most notable is the addition of
        NO_NCQ_TRIM which is used to disable queued TRIM commands to Micro
        M500 SSDs which otherwise suffers data corruption"
      
      * 'for-3.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        libata, freezer: avoid block device removal while system is frozen
        libata: implement ATA_HORKAGE_NO_NCQ_TRIM and apply it to Micro M500 SSDs
        libata: disable a disk via libata.force params
        ahci: bail out on ICH6 before using AHCI BAR
        ahci: imx: Explicitly clear IMX6Q_GPR13_SATA_MPLL_CLK_EN
        libata: add ATA_HORKAGE_BROKEN_FPDMA_AA quirk for Seagate Momentus SpinPoint M8
      4b69316e
    • Ard Biesheuvel's avatar
      auxvec.h: account for AT_HWCAP2 in AT_VECTOR_SIZE_BASE · f60900f2
      Ard Biesheuvel authored
      Commit 2171364d ("powerpc: Add HWCAP2 aux entry") introduced a new
      AT_ auxv entry type AT_HWCAP2 but failed to update AT_VECTOR_SIZE_BASE
      accordingly.
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Fixes: 2171364d (powerpc: Add HWCAP2 aux entry)
      Cc: stable@vger.kernel.org
      Acked-by: default avatarMichael Neuling <michael@neuling.org>
      Cc: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f60900f2
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · b257bab5
      Linus Torvalds authored
      Pull SELinux fixes from James Morris.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        selinux: selinux_setprocattr()->ptrace_parent() needs rcu_read_lock()
        selinux: fix broken peer recv check
      b257bab5
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · dc0a6b4f
      Linus Torvalds authored
      Pull ext2 fix from Jan Kara:
       "One simple fix of oops in ext2 which was recently hit by Christoph"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2: Fix oops in ext2_get_block() called from ext2_quota_write()
      dc0a6b4f
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 6961bc6c
      Linus Torvalds authored
      Pull infiniband fixes from Roland Dreier:
       "Last batch of InfiniBand/RDMA changes for 3.13 / 2014:
         - Additional checks for uverbs to ensure forward compatibility,
           handle malformed input better.
         - Fix potential use-after-free in iWARP connection manager.
         - Make a function static"
      
      * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        IB/uverbs: Check access to userspace response buffer in extended command
        IB/uverbs: Check input length in flow steering uverbs
        IB/uverbs: Set error code when fail to consume all flow_spec items
        IB/uverbs: Check reserved fields in create_flow
        IB/uverbs: Check comp_mask in destroy_flow
        IB/uverbs: Check reserved field in extended command header
        IB/uverbs: New macro to set pointers to NULL if length is 0 in INIT_UDATA()
        IB/core: const'ify inbuf in struct ib_udata
        RDMA/iwcm: Don't touch cm_id after deref in rem_ref
        RDMA/cxgb4: Make _c4iw_write_mem_dma() static
      6961bc6c
  8. 23 Dec, 2013 9 commits
  9. 22 Dec, 2013 3 commits