1. 08 5月, 2010 1 次提交
  2. 21 4月, 2010 3 次提交
    • J
      viafb: complete support for VX800/VX855 accelerated framebuffer · 13178243
      Jonathan Corbet 提交于
      This patch is a painful merge of change
      a90bab567ece3e915d0ccd55ab00c9bb333fa8c0 (viafb: Add support for 2D
      accelerated framebuffer on VX800/VX855) in the OLPC tree, originally by
      Harald Welte.  Harald's changelog read:
      
      	The VX800/VX820 and the VX855/VX875 chipsets have a different 2D
          	acceleration engine called "M1".  The M1 engine has some subtle
          	(and some not-so-subtle) differences to the previous engines, so
          	support for accelerated framebuffer on those chipsets was disabled
          	so far.
      
      This merge tries to preserve Harald's changes in the framework of the
      much-changed 2.6.34 viafb code.
      
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: ScottFang@viatech.com.cn
      Cc: JosephChan@via.com.tw
      Signed-off-by: NJonathan Corbet <corbet@lwn.net>
      13178243
    • J
      viafb: Unify duplicated set_bpp() code · f1b99aa9
      Jonathan Corbet 提交于
      As suggested by Florian: make both mode-setting paths use the same code.
      
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: ScottFang@viatech.com.cn
      Cc: JosephChan@via.com.tw
      Signed-off-by: NJonathan Corbet <corbet@lwn.net>
      f1b99aa9
    • J
      viafb: Retain GEMODE reserved bits · 9ca43cf4
      Jonathan Corbet 提交于
      Commit c3e25673 (viafb: 2D engine rewrite)
      changed the setting of the GEMODE register so that the reserved bits are no
      longer preserved.  Fix that; at the same time, move this code to its own
      function and restore the use of symbolic constants.
      
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: ScottFang@viatech.com.cn
      Cc: JosephChan@via.com.tw
      Signed-off-by: NJonathan Corbet <corbet@lwn.net>
      9ca43cf4
  3. 17 1月, 2010 1 次提交
  4. 23 9月, 2009 5 次提交
    • F
      viafb: choose acceleration engine for VX855 · 3a324569
      Florian Tobias Schandinat 提交于
      Enable 2D hardware acceleration on VX855 for copyarea, imageblit and
      fillrect by selecting the correct engine which is the same as in VX800.
      Signed-off-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3a324569
    • F
      viafb: hardware acceleration initialization cleanup · 31de59d5
      Florian Tobias Schandinat 提交于
      The main motivation of this patch was to merge the three initialization
      functions in one and clean it up. However as some changes in other code
      areas where needed to do it right some small other changes were made.
      
      Changes to viafb_par:
      
      io_virt renamed as engine_mmio and moved to shared
      VQ_start renamed as vq_vram_addr and moved to shared
      VQ_end removed as it is easily recalculatable
      
      vq_vram_addr is not strictly needed but keep it to track where we
      allocated video memory.  The memory allocated for the virtual queue was
      shrunk to VQ_SIZE as VQ_SIZE+CURSOR_SIZE looked like a bug to me.  But to
      be honest I don't have the faintest idea what virtual queues are for in
      the graphic hardware and whether the driver needs them in any way.  I only
      know that they aren't directly accessed by the driver and so the only
      potential current use would be as hardware internal buffers.  For now keep
      them to avoid regressions and only remove the double cursor allocation.
      
      The most changes were caused by renames and the mentioned structure
      changes so the chance of regressions is pretty low.  The meaning of
      viafb_accel changed slightly as previously it was changed back and forth
      in the code and allowed to enable the hardware acceleration by software if
      previously disabled.  The new behaviour is that viafb_accel=0 always
      prevents hardware acceleration.  With viafb_accel!=0 the acceleration can
      be freely choosen by set_var.  This means viafb_accel is a diagnostic tool
      and if someone has to use viafb_accel=0 the driver needs to be fixed.
      
      As this is mostly a code cleanup no regressions beside the slightly change
      of viafb_accel is expected.
      Signed-off-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Cc: Harald Welte <laforge@gnumonks.org>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      31de59d5
    • F
      viafb: cleanup viafb_cursor · 5016af53
      Florian Tobias Schandinat 提交于
      Clean the hardware cursor handling up.
      
      The most notable change is that it no longer buffers the values in
      viacursor but uses the ones in cursor instead as they are guaranteed to be
      always valid.
      
      Furthermore it uses local instead global variables where possible, moves
      the cursor variable in shared as only one hardware cursor is supported and
      returns an error if memory allocation fails.  Last but not least it fixes
      a too small buffer (as u32 has only 4 and not 32 bytes) but this did not
      produce any known problems.
      
      This is mostly a code cleanup, no negative runtime changes are expected.
      Signed-off-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Cc: Harald Welte <laforge@gnumonks.org>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5016af53
    • F
      viafb: 2D engine rewrite · c3e25673
      Florian Tobias Schandinat 提交于
      This patch is a completly rewritten 2D engine.  The engine is no longer in
      a default state but reinitialized every time to allow usage for both
      framebuffers regardless of their settings.
      
      The whole engine handling is concentrated in a big function which takes 16
      parameters.  Although the number of parameters is worryingly it is good to
      have a single funtion to deal with this stuff as it allows to easily
      support different engines and avoids some code duplication.
      
      On the way support for the new 2D engine in VX800 was added.  As the with
      less code duplication but it is probably better to duplicate the code as
      this way is easier to walk if VIA ever decides to release a new engine
      which changes anything the driver touches.
      
      The engine support for VX800 gives a notable boost in speed.  There are no
      known regressions but as this patch changes paths I do neither have the
      hardware nor documentation to check and has the possibility to put the
      system in a critical state heavy testing is appreciated.
      Signed-off-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Cc: Harald Welte <laforge@gnumonks.org>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c3e25673
    • F
      viafb: merge viafb_update_viafb_par in viafb_update_fix · 81228a36
      Florian Tobias Schandinat 提交于
      Shrink and merge viafb_update_viafb_par.  This removes a lot of duplicated
      data in viafb_par.  Use the relevant data of fb_info instead.  On the way
      it removes an inconsistency in handling a second framebuffer which only
      worked because viafbinfo1->par is modified to point to the same viafb_par
      as viafbinfo->par.
      
      Code cleanup only, no runtime change expected.
      Signed-off-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Cc: Harald Welte <laforge@gnumonks.org>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      81228a36
  5. 01 4月, 2009 1 次提交
  6. 17 10月, 2008 1 次提交