1. 24 3月, 2011 7 次提交
  2. 23 3月, 2011 1 次提交
  3. 17 3月, 2011 2 次提交
  4. 15 3月, 2011 16 次提交
  5. 16 2月, 2011 2 次提交
    • G
      m68knommu: add optimize memmove() function · 982cd252
      Greg Ungerer 提交于
      Add an m68k/coldfire optimized memmove() function for the m68knommu arch.
      This is the same function as used by m68k. Simple speed tests show this
      is faster once buffers are larger than 4 bytes, and significantly faster
      on much larger buffers (4 times faster above about 100 bytes).
      
      This also goes part of the way to fixing a regression caused by commit
      ea61bc46 ("m68k/m68knommu: merge MMU and
      non-MMU string.h"), which breaks non-coldfire non-mmu builds (which is
      the 68x328 and 68360 families). They currently have no memmove() fucntion
      defined, since there was none in the m68knommu/lib functions.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      982cd252
    • G
      m68k: remove arch specific non-optimized memcmp() · f9d693d2
      Greg Ungerer 提交于
      The m68k arch implements its own memcmp() function. It is not optimized
      in any way (it is the most strait forward coding of memcmp you can get).
      Remove it and use the kernels standard memcmp() implementation.
      
      This also goes part of the way to fixing a regression caused by commit
      ea61bc46 ("m68k/m68knommu: merge MMU and
      non-MMU string.h"), which breaks non-coldfire non-mmu builds (which is
      the 68x328 and 68360 families). They currently have no memcmp() function
      defined, since there is none in the m68knommu/lib functions.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      Acked-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      f9d693d2
  6. 23 1月, 2011 2 次提交
    • G
      m68k/atari: Rename "scc" to "atari_scc" · de339e4b
      Geert Uytterhoeven 提交于
      It's a way too generic name for a global #define and conflicts with a variable
      with the same name, causing build errors like:
      
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c: In function ‘_si_clkctl_cc’:
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1364: error: expected identifier or ‘(’ before ‘volatile’
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1364: error: expected ‘)’ before ‘(’ token
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1421: error: incompatible types in assignment
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1422: error: invalid operands to binary &
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1423: error: invalid operands to binary &
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1424: error: invalid operands to binary |
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: incompatible type for argument 4 of ‘bcmsdh_reg_write’
      | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1428: error: invalid operands to binary &
      | make[8]: *** [drivers/staging/brcm80211/brcmfmac/../util/siutils.o] Error 1
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      de339e4b
    • G
      m68k: Uninline strchr() · f9b07897
      Geert Uytterhoeven 提交于
      Some versions of gcc replace calls to strstr() with single-character
      "needle" string parameters by calls to strchr() behind our back.
      
      If strchr() is defined as an inline function, this causes linking errors
      like
      
      	ERROR: "strchr" [drivers/target/target_core_mod.ko] undefined!
      
      As m68k is the only architecture that has an inline strchr() and this
      inline version is not an optimized asm version, uninline strchr() and use
      the standard out-of-line C version in lib/string.c instead.
      
      This also decreases the defconfig/allmodconfig kernel image sizes by a few
      hundred bytes.
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      f9b07897
  7. 12 1月, 2011 1 次提交
  8. 07 1月, 2011 2 次提交
  9. 06 1月, 2011 1 次提交
    • G
      m68k/sun3: Kill pte_unmap() warnings · 0eefed84
      Geert Uytterhoeven 提交于
      Since commit 31c91132 ("mm: check the argument
      of kunmap on architectures without highmem"), we get lots of warnings like
      
      arch/m68k/kernel/sys_m68k.c:508: warning: passing argument 1 of ‘kunmap’ from incompatible pointer type
      
      As m68k doesn't support highmem anyway, open code the calls to kmap() and
      kunmap() (the latter is a no-op) to kill the warnings, like is done on most
      other architectures without CONFIG_HIGHPTE.
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Sam Creasey <sammy@sammy.net>
      0eefed84
  10. 05 1月, 2011 6 次提交
    • G
      m68knommu: create optimal separate instruction and data cache for ColdFire · 07ffee59
      Greg Ungerer 提交于
      Create separate functions to deal with instruction and data cache flushing.
      This way we can optimize them for the vairous cache types and arrangements
      used across the ColdFire family.
      
      For example the unified caches in the version 3 cores means we don't
      need to flush the instruction cache. For the version 2 cores that do
      not do data cacheing (or where we choose instruction cache only) we
      don't need to do any data flushing.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      07ffee59
    • G
      m68knommu: support ColdFire caches that do copyback and write-through · 4a5bae41
      Greg Ungerer 提交于
      The version 3 and version 4 ColdFire cache controllers support both
      write-through and copy-back modes on the data cache. Allow for Kconfig
      time configuration of this, and set the cache mode appropriately.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      4a5bae41
    • G
      m68knommu: support version 2 ColdFire split cache · 0ef6c9b8
      Greg Ungerer 提交于
      The newer version 2 ColdFire CPU cores support a configurable cache
      arrangement. The cache memory can be used as all instruction cache, all
      data cache, or split in half for both instruction and data caching.
      Support this setup via a Kconfig time menu that allows a kernel builder
      to choose the arrangement they want to use.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      0ef6c9b8
    • G
      m68knommu: make cache push code ColdFire generic · d475e3e4
      Greg Ungerer 提交于
      Currently the code to push cache lines is only available to version 4
      cores. Version 3 cores may also need to use this if we support copy-
      back caches on them. Move this code to make it more generic, and
      useful for all version ColdFire cores.
      
      With this in place we can now have a single cache_flush_all() code
      path that does all the right things on all version cores.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      d475e3e4
    • G
      m68knommu: clean up ColdFire cache control code · 8ce877a8
      Greg Ungerer 提交于
      The cache control code for the ColdFire CPU's is a big ugly mess
      of "#ifdef"ery liberally coated with bit constants. Clean it up.
      
      The cache controllers in the various ColdFire parts are actually quite
      similar. Just differing in some bit flags and options supported. Using
      the header defines now in place it is pretty easy to factor out the
      small differences and use common setup and flush/invalidate code.
      
      I have preserved the cache setups as they where in the old code
      (except where obviously wrong - like in the case of the 5249). Following
      from this it should be easy now to extend the possible setups used on
      the CACHE controllers that support split cacheing or copy-back or
      write through options.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      8ce877a8
    • G
      m68knommu: move inclusion of ColdFire v4 cache registers · 3d461401
      Greg Ungerer 提交于
      Move the inclusion of the version 4 cache controller registers so that
      it is with all the other register bit flag definitions. This makes it
      consistent with the other version core inclusion points, and means we
      don't need "#ifdef"ery in odd-ball places for these definitions.
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      3d461401