1. 20 Apr, 2015 4 commits
  2. 07 Apr, 2015 1 commit
    • Geert Uytterhoeven's avatar
      fbdev: sh_mobile_lcdc: Fix destruction of uninitialized mutex · 7374ccc0
      Geert Uytterhoeven authored
      If sh_mobile_lcdc_probe() fails after the allocation of driver-private
      data, but before the initialization of all channels, a warning will be
      printed due to the destruction of an uninitialized mutex:
      
          WARNING: CPU: 0 PID: 1 at kernel/locking/mutex-debug.c:116 mutex_destroy+0x5c/0x7c()
          DEBUG_LOCKS_WARN_ON(mutex_is_locked(lock))
          ...
          Backtrace:
          ...
          [<c00425b4>] (mutex_destroy) from [<c01d5858>] (sh_mobile_lcdc_remove+0x1bc/0x230)
           r4:df6a4800 r3:00000000
          [<c01d569c>] (sh_mobile_lcdc_remove) from [<c01d6620>] (sh_mobile_lcdc_probe+0xd54/0xe28)
      
      Move the initialization of the mutexes from sh_mobile_lcdc_channel_init()
      to immediately after the allocation of driver-private data to fix this.
      
      Note that the interrupt number is moved to a new variable "irq", so we
      can reuse the existing variable "i" for iterating over the channels.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      7374ccc0
  3. 20 Mar, 2015 1 commit
  4. 10 Mar, 2015 3 commits
  5. 02 Mar, 2015 3 commits
  6. 26 Feb, 2015 11 commits
    • Tomi Valkeinen's avatar
      OMAPDSS: workaround for MFLAG + NV12 issue · fe59e5cf
      Tomi Valkeinen authored
      It was found that having two displays enabled and having an NV12 overlay
      on one of the displays will cause underflows/synclosts. Debugging this
      pointed to some issue with MFLAG.
      
      It is unclear why this issue is happening, but it looks like there is a
      HW bug related to MFLAG and FIFO management. Disabling MFLAG makes this
      issue go away, but then we lose the benefit of MFLAG. Also forcing MFLAG
      always on makes the issue go away.
      
      Also, using certain values for MFLAG_START, MFLAG thresholds and PRELOAD
      makes the issue go away, but there was no obvious logic to which values
      work and which don't.
      
      As a workaround until more information about this is found, force MFLAG
      always on to make NV12 usable.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      fe59e5cf
    • Tomi Valkeinen's avatar
      OMAPDSS: Add support for MFLAG · c64aa3a6
      Tomi Valkeinen authored
      OMAP5 has support for MFLAG feature, which allows DSS to dynamically
      increase the priority of DISPC's DMA traffic. At the moment we don't
      have support for it.
      
      It was noticed that on DRA7 with high bandwidth use cases we see FIFO
      underflows. Implementing MFLAG support removed those underflows.
      Interestingly, on OMAP5 uEVM no such overflows were seen.
      
      This patch adds a simple MFLAG implementation, where we use a fixed
      MFLAG threshold value based on the FIFO size. The thresholds are set to
      4/8 of fifo size for low threshold, and 5/8 of fifo size for high
      threshold.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      c64aa3a6
    • Tomi Valkeinen's avatar
      OMAPDSS: setup default fifo thresholds · 47fc469b
      Tomi Valkeinen authored
      At the moment we don't setup FIFO thresholds by default in omapdss. It's
      supposed to be done by the user of omapdss. And that is missing from
      omapdrm, causing unoptimal thresholds to be used when using omapdrm.
      
      While I believe it's in theory better to allow the user of omapdss to
      setup the fifo thresholds, in practice we always use the same values,
      and we could as well setup the thresholds in omapdss.
      
      Furthermore, in omapdss init we always swap the FIFO used for GFX and WB
      overlays, but we don't swap the FIFO thresholds for those overlays
      (which is the reason for omapdrm using unoptimal HW reset values). So
      it would make sense to setup the thresholds to account for the swapping
      of the FIFOs.
      
      So, this patch adds code to setup default FIFO tresholds at omapdss
      init.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      47fc469b
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: lock access to DISPC_CONTROL & DISPC_CONFIG · d49cd155
      Tomi Valkeinen authored
      Dispc driver presumes that the callers handle locking for all normal
      functions. However, omapdrm doesn't handle this, and presumes that all
      overlay manager registers are private to that overlay manager, and thus
      presumes that configurations for overlay managers can be written via
      different threads freely.
      
      For many registers the above is true. The exceptions are DISPC_CONTROL
      and DISPC_CONFIG registers, which contain bits for both LCD and TV
      overlay managers.
      
      Fixing this properly in omapdrm means a big omapdrm rewrite. So, for
      now, add locking to dispc for the problematic registers.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Reported-by: default avatarSomnath Mukherjee <somnath@ti.com>
      d49cd155
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: fix div by zero issue in overlay scaling · 4e1d3ca0
      Tomi Valkeinen authored
      omapdrm doesn't always configure the overlays correctly, causing the
      overlay setup functions to be called with zero timings. This leads to
      division by zero error.
      
      This happens, for example, when a HDMI cable is not connected, but a
      user tries to setup a plane with scaling.
      
      Fixing omapdrm is a big job, so for now let's check for the bad timings
      in DISPC and return an error.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      4e1d3ca0
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: change sync_pclk_edge default value · 386f167c
      Tomi Valkeinen authored
      The common 'struct videomode' does not have a flag to select when the
      sync signals should be driven.
      
      The default behavior of DISPC HW is to drive the sync signal on the
      opposite pixel clock edge from data signal, which is also what the
      videomode_to_omap_video_timings() uses.
      
      However, it looks like what panels usually expect is that the data and
      sync signals are driven on the same edge, so let's change
      videomode_to_omap_video_timings() to set the sync_pclk_edge accordingly.
      
      Note that this only affect panels drivers that use
      videomode_to_omap_video_timings(), probably when getting the video
      timings directly from DT data. The drivers can still configure the
      sync_pclk_edge independently if they so wish.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      386f167c
    • Tomi Valkeinen's avatar
      OMAPDSS: change signal_level & signal_edge enum values · 7ad582be
      Tomi Valkeinen authored
      At the moment the enum values for ACTIVE_HIGH and RISING_EDGE are 0, and
      ACTIVE_LOW and FALLING_EDGE are 1, to match the values programmed to HW.
      The previous patch removed this dependency.
      
      Swap the enum values the other way around. This doesn't change the
      behavior in any way, but makes it easier to debug as value of '1' means
      HIGH or RISING.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      7ad582be
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: explicit handling for sync and de levels · ed351881
      Tomi Valkeinen authored
      When configuring the lcd timings, instead of writing enum values
      directly to the HW, use switch-case to get the value to be programmed.
      
      This is safer and also allows us to change the enum values.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      ed351881
    • Tomi Valkeinen's avatar
      OMAPDSS: DISPC: remove OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES · 7a16360d
      Tomi Valkeinen authored
      DISPC can drive data lines either on rising or falling pixel clock edge,
      which can be configured by the user.
      
      Sync lines can also be driven on rising or falling pixel clock edge, but
      additionally the HW can be configured to drive the sync lines on
      opposite clock edge from the data lines.
      
      This opposite edge setting does not make any sense, as the same effect
      can be achieved by just setting the sync lines to be driven on the other
      edge compared to the data lines. It feels like some kind of backward
      compatibility option, even if all DSS versions seem to have the same
      implementation.
      
      To simplify the code and configuration of the signals, and to make the
      dispc timings more compatible with what is used on other platforms,
      let's just remove the whole opposite-edge support.
      
      The drivers that used OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES setting are
      changed so that they use the opposite setting from the data edge.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      7a16360d
    • Tomi Valkeinen's avatar
      OMAPDSS: TFP410: fix input sync signals · 6246c8b5
      Tomi Valkeinen authored
      TFP410 requires that DE is active high and the data and syncs are driven
      on rising pixel clock edge. However, at the moment the driver doesn't
      request such syncs, and the end result is that the sync settings depend
      on default values, which are not right in all cases.
      
      Set the sync values explicitly.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      6246c8b5
    • Tomi Valkeinen's avatar
      OMAPDSS: fix paddr check for TILER addresses · e566658f
      Tomi Valkeinen authored
      The DISPC driver checks that the buffer address is not 0. However, when
      using TILER, the address space is TILER specific and 0 is a valid
      address.
      
      Fix the check to allow address of 0 for TILER.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Reported-by: default avatarsrinivas pulukuru <srinivas.pulukuru@ti.com>
      e566658f
  7. 25 Feb, 2015 2 commits
  8. 23 Feb, 2015 3 commits
    • Linus Torvalds's avatar
      Linux 4.0-rc1 · c517d838
      Linus Torvalds authored
      .. after extensive statistical analysis of my G+ polling, I've come to
      the inescapable conclusion that internet polls are bad.
      
      Big surprise.
      
      But "Hurr durr I'ma sheep" trounced "I like online polls" by a 62-to-38%
      margin, in a poll that people weren't even supposed to participate in.
      Who can argue with solid numbers like that? 5,796 votes from people who
      can't even follow the most basic directions?
      
      In contrast, "v4.0" beat out "v3.20" by a slimmer margin of 56-to-44%,
      but with a total of 29,110 votes right now.
      
      Now, arguably, that vote spread is only about 3,200 votes, which is less
      than the almost six thousand votes that the "please ignore" poll got, so
      it could be considered noise.
      
      But hey, I asked, so I'll honor the votes.
      c517d838
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · feaf2229
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Ext4 bug fixes.
      
        We also reserved code points for encryption and read-only images (for
        which the implementation is mostly just the reserved code point for a
        read-only feature :-)"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix indirect punch hole corruption
        ext4: ignore journal checksum on remount; don't fail
        ext4: remove duplicate remount check for JOURNAL_CHECKSUM change
        ext4: fix mmap data corruption in nodelalloc mode when blocksize < pagesize
        ext4: support read-only images
        ext4: change to use setup_timer() instead of init_timer()
        ext4: reserve codepoints used by the ext4 encryption feature
        jbd2: complain about descriptor block checksum errors
      feaf2229
    • Linus Torvalds's avatar
      Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · be5e6616
      Linus Torvalds authored
      Pull more vfs updates from Al Viro:
       "Assorted stuff from this cycle.  The big ones here are multilayer
        overlayfs from Miklos and beginning of sorting ->d_inode accesses out
        from David"
      
      * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (51 commits)
        autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for allocation
        procfs: fix race between symlink removals and traversals
        debugfs: leave freeing a symlink body until inode eviction
        Documentation/filesystems/Locking: ->get_sb() is long gone
        trylock_super(): replacement for grab_super_passive()
        fanotify: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
        Cachefiles: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
        VFS: (Scripted) Convert S_ISLNK/DIR/REG(dentry->d_inode) to d_is_*(dentry)
        SELinux: Use d_is_positive() rather than testing dentry->d_inode
        Smack: Use d_is_positive() rather than testing dentry->d_inode
        TOMOYO: Use d_is_dir() rather than d_inode and S_ISDIR()
        Apparmor: Use d_is_positive/negative() rather than testing dentry->d_inode
        Apparmor: mediated_filesystem() should use dentry->d_sb not inode->i_sb
        VFS: Split DCACHE_FILE_TYPE into regular and special types
        VFS: Add a fallthrough flag for marking virtual dentries
        VFS: Add a whiteout dentry type
        VFS: Introduce inode-getting helpers for layered/unioned fs environments
        Infiniband: Fix potential NULL d_inode dereference
        posix_acl: fix reference leaks in posix_acl_create
        autofs4: Wrong format for printing dentry
        ...
      be5e6616
  9. 22 Feb, 2015 12 commits