1. 22 12月, 2010 1 次提交
  2. 21 12月, 2010 29 次提交
  3. 19 12月, 2010 5 次提交
    • S
      omap4: l2x0: Enable early BRESP bit · b89cd71a
      Santosh Shilimkar 提交于
      The AXI protocol specifies that the write response can only
      be sent back to an AXI master when the last write data has been
      accepted. This optimization enables the PL310 to send the write
      response of certain write transactions as soon as the store buffer
      accepts the write address. This behavior is not compatible with
      the AXI protocol and is disabled by default. You enable this
      optimization by setting the Early BRESP Enable bit in the
      Auxiliary Control Register (bit [30]).
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Signed-off-by: NMans Rullgard <mans@mansr.com>
      Tested-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      b89cd71a
    • S
      omap4: l2x0: Set share override bit · b0f20ff9
      Santosh Shilimkar 提交于
      Clearing bit 22 in the PL310 Auxiliary Control register (shared
      attribute override enable) has the side effect of transforming Normal
      Shared Non-cacheable reads into Cacheable no-allocate reads.
      
      Coherent DMA buffers in Linux always have a Cacheable alias via the
      kernel linear mapping and the processor can speculatively load cache
      lines into the PL310 controller. With bit 22 cleared, Non-cacheable
      reads would unexpectedly hit such cache lines leading to buffer
      corruption
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Tested-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      b0f20ff9
    • M
      omap4: l2x0: enable instruction and data prefetching · 11e02640
      Mans Rullgard 提交于
      Enabling L2 prefetching improves performance as shown on Panda
      ES2.1 board with mem test, and it has measurable impact on
      performances. I think we should consider it, even though it damages
      "writes" a bit. (rebased to k.org)
      Usually the prefetch is used at both levels together L1 + L2, however,
      to enable the CP15 prefetch engines, these are under security, and on
      GP devices, we cannot enable it(e.g. on PandaBoard). However, just
      enabling PL310 prefetch seems to provide performance improvement,
      as shown in the data below (from Ubuntu) and would be a great thing
      to pull in.
      
      What prefetch does is enable automatic next line prefetching. With this
      enabled, whenever the PL310 receives a cachable read request, it
      automatically prefetches the following cache line as well.
      
      Measurement Data:
      ==
      STOCK 10.10 WITHOUT PATCH
      
      ========================
      ~# ./memspeed
      size    8388608 8192k 8M
      offset  8388608, 0
      buffers 0x2aaad000 0x2b2ad000
      copy  libc          133 MB/s
      copy  Android v5    273 MB/s
      copy  Android NEON  235 MB/s
      copy  INT32         116 MB/s
      copy  ASM ARM       187 MB/s
      copy  ASM VLDM 64   204 MB/s
      copy  ASM VLDM 128  173 MB/s
      copy  ASM VLD1      216 MB/s
      read  ASM ARM       286 MB/s
      read  ASM VLDM      242 MB/s
      read  ASM VLD1      286 MB/s
      write libc         1947 MB/s
      write ASM ARM      1943 MB/s
      write ASM VSTM     1942 MB/s
      write ASM VST1     1935 MB/s
      
      10.10 + PATCH
      =============
      ~# ./memspeed
      size    8388608 8192k 8M
      offset  8388608, 0
      buffers 0x2ab17000 0x2b317000
      copy  libc          129 MB/s
      copy  Android v5    256 MB/s
      copy  Android NEON  356 MB/s
      copy  INT32         127 MB/s
      copy  ASM ARM       321 MB/s
      copy  ASM VLDM 64   337 MB/s
      copy  ASM VLDM 128  321 MB/s
      copy  ASM VLD1      350 MB/s
      read  ASM ARM       496 MB/s
      read  ASM VLDM      470 MB/s
      read  ASM VLD1      488 MB/s
      write libc         1701 MB/s
      write ASM ARM      1682 MB/s
      write ASM VSTM     1693 MB/s
      write ASM VST1     1681 MB/s
      Signed-off-by: NMans Rullgard <mans@mansr.com>
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Tested-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      11e02640
    • S
      omap4: l2x0: Construct the AUXCTRL value using defines · 1773e60a
      Santosh Shilimkar 提交于
      This patch removes the hardcoded value of auxctrl value and
      construct it using bitfields
      
      Bit 25 is reserved and is always set to 1. Same value
      of this bit is retained in this patch
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Tested-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      1773e60a
    • S
      ARM: l2x0: Add aux control register bitfields · 0aaa6f8f
      Santosh Shilimkar 提交于
      This patch adds the PL310 Auxiliary Control Register bitfields
      so that SOC's can use these bit fields to construct the AUXCTRL
      value to be passed/programmed instead of hardcoding it.
      Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      0aaa6f8f
  4. 18 12月, 2010 5 次提交
    • T
      Merge branch 'for_2.6.38' of git://gitorious.org/iommu_mailbox/iommu_mailbox... · c7d3e9e8
      Tony Lindgren 提交于
      Merge branch 'for_2.6.38' of git://gitorious.org/iommu_mailbox/iommu_mailbox into devel-iommu-mailbox
      c7d3e9e8
    • A
      omap: remove dead wdt code in plat-omap/devices.c · 6bc56aae
      Anand Gadiyar 提交于
      Commit f2ce6231 (OMAP: WDT: Split OMAP1 and OMAP2PLUS device
      registration) removed omap_init_wdt and related structures from
      plat-omap/devices.c. However a subsequent commit or merge
      seems to have reintroduced these by accident. The caller of
      omap_init_wdt was also removed by that commit, and this did
      not get restored. So we have the following build warning now:
      
        CC      arch/arm/plat-omap/devices.o
      arch/arm/plat-omap/devices.c:252: warning: 'omap_init_wdt' defined but not used
      
      Fix this by removing this dead code.
      Signed-off-by: NAnand Gadiyar <gadiyar@ti.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      6bc56aae
    • J
      OMAP4: enable smc instruction in new assembler versions · fe297dde
      John Rigby 提交于
      New assemblers need -march=armv7-a+sec on command line or
      .arch_extension sec inline to enable use of the smc instruction.
      
      This patch uses as-instr to check the latter to conditionally
      enable the former in AFLAGS for files that use smc.
      
      Checked on both old and new binutils to verify that it does
      not break old versions.
      Signed-off-by: NJohn Rigby <john.rigby@linaro.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      fe297dde
    • B
      omap: kill all section mismatch warning for omap2plus_defconfig · 1a6b5923
      Bryan Wu 提交于
      This patch will kill following section mismatch warnings:
      
      WARNING: vmlinux.o(.text+0x24a00): Section mismatch in reference from the function zoom_twl_gpio_setup() to the (unknown reference) .init.data:(unknown)
      The function zoom_twl_gpio_setup() references
      the (unknown reference) __initdata (unknown).
      This is often because zoom_twl_gpio_setup lacks a __initdata
      annotation or the annotation of (unknown) is wrong.
      
      WARNING: vmlinux.o(.text+0x24bfc): Section mismatch in reference from the function cm_t35_twl_gpio_setup() to the (unknown reference) .init.data:(unknown)
      The function cm_t35_twl_gpio_setup() references
      the (unknown reference) __initdata (unknown).
      This is often because cm_t35_twl_gpio_setup lacks a __initdata
      annotation or the annotation of (unknown) is wrong.
      
      WARNING: vmlinux.o(.data+0x1d3e0): Section mismatch in reference from the variable h4_config to the (unknown reference) .init.data:(unknown)
      The variable h4_config references
      the (unknown reference) __initdata (unknown)
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
      
      WARNING: vmlinux.o(.data+0x1dc08): Section mismatch in reference from the variable sdp2430_config to the (unknown reference) .init.data:(unknown)
      The variable sdp2430_config references
      the (unknown reference) __initdata (unknown)
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
      
      WARNING: vmlinux.o(.data+0x1e1d8): Section mismatch in reference from the variable apollon_config to the (unknown reference) .init.data:(unknown)
      The variable apollon_config references
      the (unknown reference) __initdata (unknown)
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
      Signed-off-by: NBryan Wu <bryan.wu@canonical.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      1a6b5923
    • O
      omap: boards w/ wl12xx should select REGULATOR_FIXED_VOLTAGE · 7c50152f
      Ohad Ben-Cohen 提交于
      Power to the wl12xx wlan device is controlled by a fixed regulator.
      
      Boards that have the wl12xx should select REGULATOR_FIXED_VOLTAGE so
      users will not be baffled.
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      7c50152f