1. 29 12月, 2015 17 次提交
  2. 17 12月, 2015 2 次提交
    • T
      OMAPDSS: DISPC: always set ALIGN when available · e5f80917
      Tomi Valkeinen 提交于
      By default DISPC asserts hsync and vsync sequentially, i.e. there's
      first hsync and that is immediately followed by vsync. This is the only
      available behaviour on OMAP2/3, and default behaviour on OMAP4+.
      
      OMAP4+ has ALIGN bit in POL_FREQ register, which makes DISPC assert both
      syncs at the same time.
      
      It has been observed that some panels don't like sequential syncs (AM5
      EVM's panel). After studying the datasheets for multiple panels and
      encoders, and MIPI DPI spec, it looks like there is no standard way to
      handle this.
      
      Sometimes the datasheets don't mention the required syncs behaviour at
      all, sometimes the datasheets have images that hint towards simultaneous
      syncs, and sometimes it is explicitly mentioned that simultaneous syncs
      are needed. No panels or encoders requiring sequential sync was found.
      
      It thus seems to be safe to default to simultaneous syncs when the ALIGN
      bit is available. This fixed AM5 EVM's panel, and no side effects have
      been observed on other panels or encoders.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      e5f80917
    • D
      OMAPDSS: adopt pinctrl support · 5038bb8c
      Dave Gerlach 提交于
      Update omapdss driver to set the state of the pins to:
      - "default on resume
      - "sleep" on suspend
      
      By optionally putting the pins into sleep state in the suspend callback
      we can accomplish two things.
      - minimize current leakage from pins and thus save power,
      - prevent the IP from driving pins output in an uncontrolled manner,
      which may happen if the power domain drops the domain regulator.
      Signed-off-by: NDave Gerlach <d-gerlach@ti.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5038bb8c
  3. 15 12月, 2015 12 次提交
  4. 07 11月, 2015 1 次提交
    • M
      mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep... · d0164adc
      Mel Gorman 提交于
      mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd
      
      __GFP_WAIT has been used to identify atomic context in callers that hold
      spinlocks or are in interrupts.  They are expected to be high priority and
      have access one of two watermarks lower than "min" which can be referred
      to as the "atomic reserve".  __GFP_HIGH users get access to the first
      lower watermark and can be called the "high priority reserve".
      
      Over time, callers had a requirement to not block when fallback options
      were available.  Some have abused __GFP_WAIT leading to a situation where
      an optimisitic allocation with a fallback option can access atomic
      reserves.
      
      This patch uses __GFP_ATOMIC to identify callers that are truely atomic,
      cannot sleep and have no alternative.  High priority users continue to use
      __GFP_HIGH.  __GFP_DIRECT_RECLAIM identifies callers that can sleep and
      are willing to enter direct reclaim.  __GFP_KSWAPD_RECLAIM to identify
      callers that want to wake kswapd for background reclaim.  __GFP_WAIT is
      redefined as a caller that is willing to enter direct reclaim and wake
      kswapd for background reclaim.
      
      This patch then converts a number of sites
      
      o __GFP_ATOMIC is used by callers that are high priority and have memory
        pools for those requests. GFP_ATOMIC uses this flag.
      
      o Callers that have a limited mempool to guarantee forward progress clear
        __GFP_DIRECT_RECLAIM but keep __GFP_KSWAPD_RECLAIM. bio allocations fall
        into this category where kswapd will still be woken but atomic reserves
        are not used as there is a one-entry mempool to guarantee progress.
      
      o Callers that are checking if they are non-blocking should use the
        helper gfpflags_allow_blocking() where possible. This is because
        checking for __GFP_WAIT as was done historically now can trigger false
        positives. Some exceptions like dm-crypt.c exist where the code intent
        is clearer if __GFP_DIRECT_RECLAIM is used instead of the helper due to
        flag manipulations.
      
      o Callers that built their own GFP flags instead of starting with GFP_KERNEL
        and friends now also need to specify __GFP_KSWAPD_RECLAIM.
      
      The first key hazard to watch out for is callers that removed __GFP_WAIT
      and was depending on access to atomic reserves for inconspicuous reasons.
      In some cases it may be appropriate for them to use __GFP_HIGH.
      
      The second key hazard is callers that assembled their own combination of
      GFP flags instead of starting with something like GFP_KERNEL.  They may
      now wish to specify __GFP_KSWAPD_RECLAIM.  It's almost certainly harmless
      if it's missed in most cases as other activity will wake kswapd.
      Signed-off-by: NMel Gorman <mgorman@techsingularity.net>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Acked-by: NMichal Hocko <mhocko@suse.com>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Vitaly Wool <vitalywool@gmail.com>
      Cc: Rik van Riel <riel@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d0164adc
  5. 31 10月, 2015 1 次提交
  6. 28 10月, 2015 1 次提交
  7. 27 10月, 2015 1 次提交
  8. 18 10月, 2015 1 次提交
  9. 15 10月, 2015 2 次提交
  10. 12 10月, 2015 1 次提交
    • M
      efifb: Add support for 64-bit frame buffer addresses · ae2ee627
      Matt Fleming 提交于
      The EFI Graphics Output Protocol uses 64-bit frame buffer addresses
      but these get truncated to 32-bit by the EFI boot stub when storing
      the address in the 'lfb_base' field of 'struct screen_info'.
      
      Add a 'ext_lfb_base' field for the upper 32-bits of the frame buffer
      address and set VIDEO_TYPE_CAPABILITY_64BIT_BASE when the field is
      useable.
      
      It turns out that the reason no one has required this support so far
      is that there's actually code in tianocore to "downgrade" PCI
      resources that have option ROMs and 64-bit BARS from 64-bit to 32-bit
      to cope with legacy option ROMs that can't handle 64-bit addresses.
      The upshot is that basically all GOP devices in the wild use a 32-bit
      frame buffer address.
      
      Still, it is possible to build firmware that uses a full 64-bit GOP
      frame buffer address. Chad did, which led to him reporting this issue.
      
      Add support in anticipation of GOP devices using 64-bit addresses more
      widely, and so that efifb works out of the box when that happens.
      Reported-by: NChad Page <chad.page@znyx.com>
      Cc: Pete Hawkins <pete.hawkins@znyx.com>
      Acked-by: NPeter Jones <pjones@redhat.com>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      ae2ee627
  11. 08 10月, 2015 1 次提交
    • D
      radeonfb: Deinline large functions · 08bfb453
      Denys Vlasenko 提交于
      With this .config: http://busybox.net/~vda/kernel_config,
      after uninlining these functions have sizes and callsite counts
      as follows:
      
      __OUTPLLP: 61 bytes, 12 callsites
      __INPLL:   79 bytes, 150 callsites
      __OUTPLL:  82 bytes, 138 callsites
      _OUTREGP: 101 bytes, 8 callsites
      _radeon_msleep:      66 bytes, 18 callsites
      _radeon_fifo_wait:   83 bytes, 24 callsites
      _radeon_engine_idle: 92 bytes, 10 callsites
      radeon_engine_flush: 105 bytes, 2 callsites
      radeon_pll_errata_after_index_slow: 31 bytes, 11 callsites
      radeon_pll_errata_after_data_slow:  91 bytes, 9 callsites
      
      radeon_pll_errata_after_FOO functions are split into two parts:
      the inlined part which checks corresponding rinfo->errata bit,
      and out-of-line part which performs workaround magic per se.
      
      Reduction in code size is about 49,500 bytes:
      
          text     data      bss       dec     hex filename
      85789648 22294616 20627456 128711720 7abfc28 vmlinux.before
      85740176 22294680 20627456 128662312 7ab3b28 vmlinux
      Signed-off-by: NDenys Vlasenko <dvlasenk@redhat.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Alex Deucher <alexdeucher@gmail.com>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-fbdev@vger.kernel.org
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      08bfb453