1. 09 Sep, 2009 4 commits
    • Florian Tobias Schandinat's avatar
      The main motivation of this patch was to merge the three initialization · d7ae6ffa
      Florian Tobias Schandinat authored
      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: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      d7ae6ffa
    • Florian Tobias Schandinat's avatar
      Split the pitch handling up and replaces the calculation from virtual xres · 6203e15a
      Florian Tobias Schandinat authored
      and bpp with fix.line_length which already contains the pitch and does not
      add any constrains for the virtual resolution.
      
      Also add a bit to the second pitch which the documentation mentions but
      which was ignored by the driver.
      
      Although it is a bit unclear what the right pitch for some LCD modes is
      this patch should have no negative runtime impact.
      Signed-off-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      6203e15a
    • Florian Tobias Schandinat's avatar
      Clean the hardware cursor handling up. · a809bda2
      Florian Tobias Schandinat authored
      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: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      a809bda2
    • Alexey Dobriyan's avatar
      Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> · fc06e8cb
      Alexey Dobriyan authored
      Acked-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      fc06e8cb
  2. 05 Sep, 2009 1 commit
  3. 03 Sep, 2009 1 commit
    • Florian Tobias Schandinat's avatar
      This patch is a completly rewritten 2D engine. The engine is no longer in · 366244e4
      Florian Tobias Schandinat authored
      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: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: Scott Fang <ScottFang@viatech.com.cn>
      Cc: Joseph Chan <JosephChan@via.com.tw>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      366244e4
  4. 27 Aug, 2009 3 commits
  5. 22 Aug, 2009 1 commit
  6. 20 Aug, 2009 4 commits
  7. 15 Aug, 2009 1 commit
  8. 06 Aug, 2009 2 commits
  9. 31 Jul, 2009 2 commits
  10. 25 Jul, 2009 1 commit
  11. 24 Aug, 2009 1 commit
  12. 31 Jul, 2009 1 commit
  13. 25 Jul, 2009 1 commit
  14. 31 Jul, 2009 1 commit
  15. 24 Jul, 2009 2 commits
  16. 24 Aug, 2009 1 commit
  17. 13 Jul, 2009 1 commit
  18. 29 Jun, 2009 1 commit
  19. 24 Aug, 2009 1 commit
  20. 26 Jun, 2009 1 commit
  21. 25 Jun, 2009 9 commits