1. 01 Aug, 2011 1 commit
    • Tomi Valkeinen's avatar
      HACK: OMAP: DSS2: clk hack for OMAP2/3 · 9ede365a
      Tomi Valkeinen authored
      The HWMOD data for OMAP2 and 3 are currently not up to date regarding
      DSS (OMAP4 HWMOD data is fine). This patch makes the DSS driver to get
      the opt clocks needed for OMAP2/3 with the old clock names, thus
      allowing DSS driver to use runtime PM.
      
      The HWMOD databases should be fixes ASAP, and this patch can be reverted
      after that.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      9ede365a
  2. 25 Jul, 2011 16 commits
  3. 01 Jul, 2011 13 commits
    • Tomi Valkeinen's avatar
      OMAP: DSS2: Fix FIFO threshold and burst size for OMAP4 · 5ed8cf5b
      Tomi Valkeinen authored
      The DMA FIFO threshold registers and burst size registers have changed
      for OMAP4.  The current code only handles OMAP2/3 case, and so the
      values are a bit off for OMAP4.  A summary of the differences between
      OMAP2/3 and OMAP4:
      
      Burst size:
      OMAP2/3: 4 x 32 bits / 8 x 32 bits / 16 x 32 bits
      OMAP4: 2 x 128 bits / 4 x 128 bits / 8 x 128 bits
      
      Threshold size:
      OMAP2/3: in bytes (8 bit units)
      OMAP4: in 128bit units
      
      This patch fixes the issue by creating two new helper functions in
      dss_features: dss_feat_get_buffer_size_unit() and
      dss_feat_get_burst_size_unit(). These return (in bytes) the unit size
      for threshold registers and unit size for burst size register,
      respectively, and are used to calculate correct values.
      
      For the threshold size the usage is straightforward. However, the burst
      size register has different multipliers for OMAP2/3 and OMAP4. This
      patch solves the problem by defining the multipliers for the burst size
      as 2x, 4x and 8x, which fit fine for the OMAP4 burst size definition
      (i.e. burst size unit for OMAP4 is 128bits), but requires a slight twist
      on OMAP2/3 by defining the burst size unit as 64bit.
      
      As the driver in practice always uses the maximum burst size, and no use
      case currently exists where we would want to use a smaller burst size,
      this patch changes the driver to hardcode the burst size when
      initializing DISPC. This makes the threshold configuration code somewhat
      simpler.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      5ed8cf5b
    • Tomi Valkeinen's avatar
      OMAP: DSS2: DSI: sync when disabling a display · 15ffa1da
      Tomi Valkeinen authored
      When the panel driver calls omapdss_dsi_display_disable() it is possible
      that there are still some unsent packets in the TX fifo.
      
      Add dsi_sync_vc() calls in the beginning of
      omapdss_dsi_display_disable() to make sure the TX fifos are empty.
      
      This allows us to remove the msleep(10) hack from panel-taal.c
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      15ffa1da
    • Tomi Valkeinen's avatar
      OMAP: DSS2: Add Color Phase Rotation support · 3c07cae2
      Tomi Valkeinen authored
      Add Color Phase Rotation (CPR) support and sysfs files to enable CPR and
      to set the CPR coefficient matrix.
      
      CPR is enabled via manager?/cpr_enable file, and the coefficient matrix
      is set via manager?/cpr_coef file. The values in cpr_coef are in the
      following order:
      
      RR RG RB GR GG GB BR BG BB
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      3c07cae2
    • Nishant Kamat's avatar
      OMAP: DSS: Minor cleanup in ovl and mgr cache structs · 4df9d104
      Nishant Kamat authored
      The overlay_cache_data and manager_cache_data structs include
      the elements of omap_overlay_info and omap_overlay_manager_info
      structs respectively. Include the structs instead of the individual
      elements to reduce code.
      Signed-off-by: default avatarNishant Kamat <nskamat@ti.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      4df9d104
    • Tomi Valkeinen's avatar
      OMAP: DSS2: Add new FEAT definitions for features missing from OMAP2 · 332e9d70
      Tomi Valkeinen authored
      OMAP2 doesn't have CPR, PRELOAD nor FIR_COEF_V registers. Add new
      feature definitions for those, and check the feature before accessing
      those registers.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      332e9d70
    • Tomi Valkeinen's avatar
      OMAP: DSS2: Add FEAT_VENC_REQUIRES_TV_DAC_CLK · 525dae61
      Tomi Valkeinen authored
      OMAP3430 requires an 96MHz clock to VENC's DAC, but no other OMAP needs
      it.
      
      Add a new feature, FEAT_VENC_REQUIRES_TV_DAC_CLK, which tells if the
      clock is needed on this platform, and use that feature in venc.c to
      decide if the clock needs enabling.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      525dae61
    • Tomi Valkeinen's avatar
      OMAP: DSS2: Reset LANEx_ULPS_SIG2 bits after use · 8ef0e614
      Tomi Valkeinen authored
      LANEx_ULPS_SIG2 bits are left on after entering ULPS. This doesn't cause
      any problems currently, as DSI HW is reset when it is enabled. However,
      if the reset is not done, operation fails if the bits are still set.
      
      So reset the bits after entering ULPS to ensure operation even without
      HW reset.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      8ef0e614
    • Tomi Valkeinen's avatar
      OMAP: DSS2: Taal: Make driver more fault tolerant · e8945677
      Tomi Valkeinen authored
      If ULPS exit fails, and the following reset fails also, Taal driver was
      left in state where it thinks DSI is enabled while it really isn't,
      leading to crash.
      
      This patch checks the return value of taal_panel_reset, and if that
      fails, ulps_enabled is left true, causing the driver to retry ulps exit
      later.
      
      Also the return value of taal_wake_up is checked at taal_disable, and if
      wake up fails, we'll skip the power_off. This could leave the panel into
      a not-quite-valid state, but there's nothing we can do about it in that
      situation.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      e8945677
    • Tomi Valkeinen's avatar
      OMAP: DSS2: remove update_mode from omapdss · 8cff88c5
      Tomi Valkeinen authored
      Remove the whole update_mode stuff from omapdss driver. If automatic
      update for manual update displays is needed, it's better implemented in
      higher layers.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      8cff88c5
    • Tomi Valkeinen's avatar
      OMAP: DSS2: OMAPFB: Implement auto-update mode · 27cc213e
      Tomi Valkeinen authored
      Implement auto-update mode for manual-update displays. omapfb driver
      uses a delayed work to update the display with a constant rate.
      
      The update mode can be changed via OMAPFB_SET_UPDATE_MODE ioctl, which
      previously called omapdss but is now handled inside omapfb, and a new
      sysfs file, "update_mode".
      
      The update interval is by default 20 times per second, but can be
      changed via "auto_update_freq" module parameter. There is also a new
      module parameter "auto_update", which will make omapfb start manual
      update displays in auto-update mode.
      
      This auto-update mode can be used for testing if the userspace does not
      support manual update displays properly. However, it is a very
      inefficient solution, and should be considered more as a hack for
      testing than something that could be used as a long term solution.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      27cc213e
    • Tomi Valkeinen's avatar
      OMAP: DSS2: OMAPFB: Add struct to store per-display data · 065a40bd
      Tomi Valkeinen authored
      Create a new struct omapfb_display_data to contain omapfb's private
      per-display data. Move the bpp override there.
      
      This struct will be used to hold auto/manual update state of a display
      in the following patches.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      065a40bd
    • Tomi Valkeinen's avatar
      OMAP: DSS2: DSI: Change dummy macros to inline functions · 4a9a5e39
      Tomi Valkeinen authored
      Using empty macros for performance measurement functions when DSS DEBUG
      is not enabled causes an unused variable warning.
      
      Change the empty macros to empty inline functions to remove the
      warning.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      4a9a5e39
    • Tomi Valkeinen's avatar
      OMAP: DSS2: remove extra includes from include/video/omapdss.h · 24e6289c
      Tomi Valkeinen authored
      omapdss.h included platform_device.h and atomic.h, neither of which is
      needed by omapdss.h. Remove those includes from omapdss.h, and fix the
      affected .c files which did not include platform_device.h even though
      they should.
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      24e6289c
  4. 21 Jun, 2011 7 commits
    • Linus Torvalds's avatar
      Linux 3.0-rc4 · 56299378
      Linus Torvalds authored
      56299378
    • Linus Torvalds's avatar
      vfs: i_state needs to be 'unsigned long' for now · 79568f5b
      Linus Torvalds authored
      Commit 13e12d14 ("vfs: reorganize 'struct inode' layout a bit")
      moved things around a bit changed i_state to be unsigned int instead of
      unsigned long.  That was to help structure layout for the 64-bit case,
      and shrink 'struct inode' a bit (admittedly that only happened when
      spinlock debugging was on and i_flags didn't pack with i_lock).
      
      However, Meelis Roos reports that this results in unaligned exceptions
      on sprc, and it turns out that the bit-locking primitives that we use
      for the I_NEW bit want to use the bitops.  Which want 'unsigned long',
      not 'unsigned int'.
      
      We really should fix the bit locking code to not have that kind of
      requirement, but that's a much bigger change.  So for now, revert that
      field back to 'unsigned long' (but keep the other re-ordering changes
      from the commit that caused this).
      
      Andi points out that we have played games with this in 'struct page', so
      it's solvable with other hacks too, but since right now the struct inode
      size advantage only happens with some rare config options, it's not
      worth fighting.
      
      It _would_ be worth fixing the bitlocking code, though.  Especially
      since there is no type safety in the bitlocking code (this never caused
      any warnings, and worked fine on x86-64, because the bitlocks take a
      'void *' and x86-64 doesn't care that deeply about alignment).  So it's
      currently a very easy problem to trigger by mistake and never notice.
      Reported-by: default avatarMeelis Roos <mroos@linux.ee>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      79568f5b
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · f5fc5567
      Linus Torvalds authored
      * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
        drm/radeon/kms/r6xx+: voltage fixes
        drm/nouveau: drop leftover debugging
        drm/radeon: avoid warnings from r600/eg irq handlers on powered off card.
        drm/radeon/kms: add missing param for dce3.2 DP transmitter setup
        drm/radeon/kms/atom: fix duallink on some early DCE3.2 cards
        drm/nouveau: fix assumption that semaphore dmaobj is valid in x-chan sync
        drm/nv50/disp: fix gamma with page flipping overlay turned on
        drm/nouveau/pm: Prevent overflow in nouveau_perf_init()
        drm/nouveau: fix big-endian switch
      f5fc5567
    • Linus Torvalds's avatar
      Merge branch 'msm-fix' of git://codeaurora.org/quic/kernel/davidb/linux-msm · 85d45ade
      Linus Torvalds authored
      * 'msm-fix' of git://codeaurora.org/quic/kernel/davidb/linux-msm:
        msm: timer: Fix DGT rate on 8960 and 8660
        msm: timer: compensate for timer shift in msm_read_timer_count
        msm: timer: Fix SMP build error
      85d45ade
    • Linus Torvalds's avatar
      Merge branch 'for-2.6.40' of git://linux-nfs.org/~bfields/linux · eda08410
      Linus Torvalds authored
      * 'for-2.6.40' of git://linux-nfs.org/~bfields/linux:
        nfsd4: fix break_lease flags on nfsd open
        nfsd: link returns nfserr_delay when breaking lease
        nfsd: v4 support requires CRYPTO
        nfsd: fix dependency of nfsd on auth_rpcgss
      eda08410
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 6e158d21
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (40 commits)
        pxa168_eth: fix race in transmit path.
        ipv4, ping: Remove duplicate icmp.h include
        netxen: fix race in skb->len access
        sgi-xp: fix a use after free
        hp100: fix an skb->len race
        netpoll: copy dev name of slaves to struct netpoll
        ipv4: fix multicast losses
        r8169: fix static initializers.
        inet_diag: fix inet_diag_bc_audit()
        gigaset: call module_put before restart of if_open()
        farsync: add module_put to error path in fst_open()
        net: rfs: enable RFS before first data packet is received
        fs_enet: fix freescale FCC ethernet dp buffer alignment
        netdev: bfin_mac: fix memory leak when freeing dma descriptors
        vlan: don't call ndo_vlan_rx_register on hardware that doesn't have vlan support
        caif: Bugfix - XOFF removed channel from caif-mux
        tun: teach the tun/tap driver to support netpoll
        dp83640: drop PHY status frames in the driver.
        dp83640: fix phy status frame event parsing
        phylib: Allow BCM63XX PHY to be selected only on BCM63XX.
        ...
      6e158d21
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 36698206
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        devcgroup_inode_permission: take "is it a device node" checks to inlined wrapper
        fix comment in generic_permission()
        kill obsolete comment for follow_down()
        proc_sys_permission() is OK in RCU mode
        reiserfs_permission() doesn't need to bail out in RCU mode
        proc_fd_permission() is doesn't need to bail out in RCU mode
        nilfs2_permission() doesn't need to bail out in RCU mode
        logfs doesn't need ->permission() at all
        coda_ioctl_permission() is safe in RCU mode
        cifs_permission() doesn't need to bail out in RCU mode
        bad_inode_permission() is safe from RCU mode
        ubifs: dereferencing an ERR_PTR in ubifs_mount()
      36698206
  5. 20 Jun, 2011 3 commits