1. 26 6月, 2013 2 次提交
  2. 24 4月, 2013 2 次提交
    • D
      ARM: mcpm: Add baremetal voting mutexes · 9762f12d
      Dave Martin 提交于
      This patch adds a simple low-level voting mutex implementation
      to be used to arbitrate during first man selection when no load/store
      exclusive instructions are usable.
      
      For want of a better name, these are called "vlocks".  (I was
      tempted to call them ballot locks, but "block" is way too confusing
      an abbreviation...)
      
      There is no function to wait for the lock to be released, and no
      vlock_lock() function since we don't need these at the moment.
      These could straightforwardly be added if vlocks get used for other
      purposes.
      
      For architectural correctness even Strongly-Ordered memory accesses
      require barriers in order to guarantee that multiple CPUs have a
      coherent view of the ordering of memory accesses.  Whether or not
      this matters depends on hardware implementation details of the
      memory system.  Since the purpose of this code is to provide a clean,
      generic locking mechanism with no platform-specific dependencies the
      barriers should be present to avoid unpleasant surprises on future
      platforms.
      
      Note:
      
        * When taking the lock, we don't care about implicit background
          memory operations and other signalling which may be pending,
          because those are not part of the critical section anyway.
      
          A DMB is sufficient to ensure correctly observed ordering if
          the explicit memory accesses in vlock_trylock.
      
        * No barrier is required after checking the election result,
          because the result is determined by the store to
          VLOCK_OWNER_OFFSET and is already globally observed due to the
          barriers in voting_end.  This means that global agreement on
          the winner is guaranteed, even before the winner is known
          locally.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Signed-off-by: NNicolas Pitre <nicolas.pitre@linaro.org>
      Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Reviewed-by: NWill Deacon <will.deacon@arm.com>
      9762f12d
    • D
      ARM: mcpm: introduce helpers for platform coherency exit/setup · 7fe31d28
      Dave Martin 提交于
      This provides helper methods to coordinate between CPUs coming down
      and CPUs going up, as well as documentation on the used algorithms,
      so that cluster teardown and setup
      operations are not done for a cluster simultaneously.
      
      For use in the power_down() implementation:
        * __mcpm_cpu_going_down(unsigned int cluster, unsigned int cpu)
        * __mcpm_outbound_enter_critical(unsigned int cluster)
        * __mcpm_outbound_leave_critical(unsigned int cluster)
        * __mcpm_cpu_down(unsigned int cluster, unsigned int cpu)
      
      The power_up_setup() helper should do platform-specific setup in
      preparation for turning the CPU on, such as invalidating local caches
      or entering coherency.  It must be assembler for now, since it must
      run before the MMU can be switched on.  It is passed the affinity level
      for which initialization should be performed.
      
      Because the mcpm_sync_struct content is looked-up and modified
      with the cache enabled or disabled depending on the code path, it is
      crucial to always ensure proper cache maintenance to update main memory
      right away.  The sync_cache_*() helpers are used to that end.
      
      Also, in order to prevent a cached writer from interfering with an
      adjacent non-cached writer, we ensure each state variable is located to
      a separate cache line.
      
      Thanks to Nicolas Pitre and Achin Gupta for the help with this
      patch.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Reviewed-by: NWill Deacon <will.deacon@arm.com>
      7fe31d28
  3. 09 4月, 2013 1 次提交
    • T
      ARM: Add interface for registering and calling firmware-specific operations · 7366b92a
      Tomasz Figa 提交于
      Some boards are running with secure firmware running in TrustZone secure
      world, which changes the way some things have to be initialized.
      
      This patch adds an interface for platforms to specify available firmware
      operations and call them.
      
      A wrapper macro, call_firmware_op(), checks if the operation is provided
      and calls it if so, otherwise returns -ENOSYS to allow fallback to
      legacy operation..
      
      By default no operations are provided.
      
      Example of use:
      
      In code using firmware ops:
      
        __raw_writel(virt_to_phys(exynos4_secondary_startup),
                     CPU1_BOOT_REG);
      
        /* Call Exynos specific smc call */
        if (call_firmware_op(cpu_boot, cpu) == -ENOSYS)
                cpu_boot_legacy(...); /* Try legacy way */
      
        gic_raise_softirq(cpumask_of(cpu), 1);
      
      In board-/platform-specific code:
      
        static int platformX_do_idle(void)
        {
                /* tell platformX firmware to enter idle */
                return 0;
        }
      
        static int platformX_cpu_boot(int i)
        {
                /* tell platformX firmware to boot CPU i */
                return 0;
        }
      
        static const struct firmware_ops platformX_firmware_ops = {
                .do_idle      = exynos_do_idle,
                .cpu_boot     = exynos_cpu_boot,
                /* other operations not available on platformX */
        };
      
        static void __init board_init_early(void)
        {
                register_firmware_ops(&platformX_firmware_ops);
        }
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NTomasz Figa <t.figa@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      7366b92a
  4. 27 3月, 2013 1 次提交
  5. 17 11月, 2012 1 次提交
  6. 13 11月, 2012 1 次提交
    • T
      OMAPFB: use dma_alloc_attrs to allocate memory · 0049fb26
      Tomi Valkeinen 提交于
      Use dma_alloc_attrs to allocate memory instead of omap specific vram
      allocator. After this we can remove the omap vram allocator.
      
      There are some downsides to this change:
      
      1) dma_alloc_attrs doesn't let us allocate at certain physical address.
      However, this should not be a problem as this feature of vram allocator
      is only used when reserving the framebuffer that was initialized by the
      bootloader, and we don't currently support "passing" a framebuffer from
      the bootloader to the kernel anyway.
      
      2) dma_alloc_attrs, as of now, always ioremaps the allocated area, and
      we don't need the ioremap when using VRFB. This patch uses
      DMA_ATTR_NO_KERNEL_MAPPING for the allocation, but the flag is currently
      not operational.
      
      3) OMAPFB_GET_VRAM_INFO ioctl cannot return real values anymore. I
      changed the ioctl to return 64M for all the values, which, I hope, the
      applications will interpret as "there's enough vram".
      
      4) "vram" kernel parameter to define how much ram to reserve for video
      use no longer works. The user needs to enable CMA and use "cma"
      parameter.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0049fb26
  7. 21 9月, 2012 1 次提交
    • T
      arm: add documentation describing Marvell families of SoC · 90323467
      Thomas Petazzoni 提交于
      As stated in the introduction of the document, the families of ARM
      SoCs at Marvell are very complicated, and it is difficult for
      newcomers to understand the organization of this SoC family and how it
      relates to the Linux kernel support for those hardware platforms.
      
      This document is only at RFC stage for now, it requires reviews and
      comments from the Marvell maintainers, the PXA maintainers and the MMP
      maintainers. For correctness of course, but also to add any other
      information that would be useful. For example, one of the thing that
      wasn't clear how to detail in the documentation is how the SoCs relate
      to each other in terms of hardware IP blocks. For example, most of the
      Kirkwood/Dove/Armada 370-XP/etc. hardware IPs (I2C, SPI, USB, SATA,
      etc.) are identical, while the PXA and MMP families are completely
      separate.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Gregory Clement <gregory.clement@free-electrons.com>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Cc: Nicolas Pitre <nico@fluxnic.net>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Lior Amsalem <alior@marvell.com>
      Cc: Maen Suleiman <maen@marvell.com>
      Cc: Tawfik Bayouk <tawfik@marvell.com>
      Cc: Shadi Ammouri <shadi@marvell.com>
      Cc: Eran Ben-Avi <benavi@marvell.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NJason Cooper <jason@lakedaemon.net>
      90323467
  8. 19 9月, 2012 1 次提交
  9. 07 9月, 2012 1 次提交
  10. 11 8月, 2012 1 次提交
    • T
      arm: add documentation describing Marvell families of SoC · 9ee99783
      Thomas Petazzoni 提交于
      As stated in the introduction of the document, the families of ARM
      SoCs at Marvell are very complicated, and it is difficult for
      newcomers to understand the organization of this SoC family and how it
      relates to the Linux kernel support for those hardware platforms.
      
      This document is only at RFC stage for now, it requires reviews and
      comments from the Marvell maintainers, the PXA maintainers and the MMP
      maintainers. For correctness of course, but also to add any other
      information that would be useful. For example, one of the thing that
      wasn't clear how to detail in the documentation is how the SoCs relate
      to each other in terms of hardware IP blocks. For example, most of the
      Kirkwood/Dove/Armada 370-XP/etc. hardware IPs (I2C, SPI, USB, SATA,
      etc.) are identical, while the PXA and MMP families are completely
      separate.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Gregory Clement <gregory.clement@free-electrons.com>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Cc: Nicolas Pitre <nico@fluxnic.net>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Lior Amsalem <alior@marvell.com>
      Cc: Maen Suleiman <maen@marvell.com>
      Cc: Tawfik Bayouk <tawfik@marvell.com>
      Cc: Shadi Ammouri <shadi@marvell.com>
      Cc: Eran Ben-Avi <benavi@marvell.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      
      ---
      Changes from v3:
       * Add Arnd Bergmann Acked-by.
      
      Changes from v2:
       * Mention the plat-<foo> directory that each SoC family is using.
       * Take into account Eric Miao's comments on the PXA/MMP families: add
         PXA21x/PXA25x/PXA26x to the list, mention which processors are
         AP+CP or AP only. Clarify the comments on which SoCs were designed
         by Intel, which ones were designed by Marvell after the acquisition
         of the XScale family.
       * Mention long-term plans regarding the support of those SoC
         families.
      
      Changes from v1:
       * Added publicly available datasheet for the 88F5182 pointed by
         Andrew Lunn.
       * Added publicly available datasheet for the 88F5281 found with
         Google searches
       * Mentionned the Feroceon core name where appropriate, and Sheeva
         where appropriate
       * Fixed the core names for PXA930, PXA935 and PXA955 after comments
         from Arnd Bergmann. Wikipedia is mistakenly suggesting that PXA93x
         are Sheeva-based, and there isn't much information available on the
         web about the 955.
      9ee99783
  11. 31 7月, 2012 1 次提交
    • J
      [media] Documentation: Add newline at end-of-file to files lacking one · 79980d9c
      Jesper Juhl 提交于
      This patch simply adds a newline character at end-of-file to those
      files in Documentation/ that currently lack one.
      
      This is done for a few different reasons:
      
      A) It's rather annoying when you do "cat some_file.txt" that your
         prompt/cursor ends up at the end of the last line of output rather
         than on a new line.
      
      B) Some tools that process files line-by-line may get confused by the
         lack of a newline on the last line.
      
      C) The "\ No newline at end of file" line in diffs annoys me for some
         reason.
      
      So, let's just add the missing newline once and for all.
      Signed-off-by: NJesper Juhl <jj@chaosbits.net>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      79980d9c
  12. 25 7月, 2012 1 次提交
    • R
      ARM: Add fixed PCI i/o mapping · c2794437
      Rob Herring 提交于
      This adds a fixed virtual mapping for PCI i/o addresses. The mapping is
      located at the last 2MB of vmalloc region (0xfee00000-0xff000000). 2MB
      is used to align with PMD size, but IO_SPACE_LIMIT is 1MB. The space
      is reserved after .map_io and can be mapped at any time later with
      pci_ioremap_io. Platforms which need early i/o mapping (e.g. for vga
      console) can call pci_map_io_early in their .map_io function.
      
      This has changed completely from the 1st implementation which only
      supported creating the static mapping at .map_io.
      Signed-off-by: NRob Herring <rob.herring@calxeda.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      c2794437
  13. 21 7月, 2012 1 次提交
    • J
      Documentation: Add newline at end-of-file to files lacking one · f9028317
      Jesper Juhl 提交于
      This patch simply adds a newline character at end-of-file to those
      files in Documentation/ that currently lack one.
      
      This is done for a few different reasons:
      
      A) It's rather annoying when you do "cat some_file.txt" that your
         prompt/cursor ends up at the end of the last line of output rather
         than on a new line.
      
      B) Some tools that process files line-by-line may get confused by the
         lack of a newline on the last line.
      
      C) The "\ No newline at end of file" line in diffs annoys me for some
         reason.
      
      So, let's just add the missing newline once and for all.
      Signed-off-by: NJesper Juhl <jj@chaosbits.net>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      f9028317
  14. 21 6月, 2012 1 次提交
  15. 14 5月, 2012 1 次提交
  16. 11 5月, 2012 2 次提交
    • R
      OMAPDSS: Provide an interface for audio support · 9c0b8420
      Ricardo Neri 提交于
      There exist several display technologies and standards that support audio as
      well. Hence, it is relevant to update the DSS device driver to provide an audio
      interface that may be used by an audio driver or any other driver interested in
      the functionality.
      
      The audio_enable function is intended to prepare the relevant
      IP for playback (e.g., enabling an audio FIFO, taking in/out of reset
      some IP, enabling companion chips, etc). It is intended to be called before
      audio_start. The audio_disable function performs the reverse operation and is
      intended to be called after audio_stop.
      
      While a given DSS device driver may support audio, it is possible that for
      certain configurations audio is not supported (e.g., an HDMI display using a
      VESA video timing). The audio_supported function is intended to query whether
      the current configuration of the display supports audio.
      
      The audio_config function is intended to configure all the relevant audio
      parameters of the display. In order to make the function independent of any
      specific DSS device driver, a struct omap_dss_audio is defined. Its purpose
      is to contain all the required parameters for audio configuration. At the
      moment, such structure contains pointers to IEC-60958 channel status word and
      CEA-861 audio infoframe structures. This should be enough to support HDMI and
      DisplayPort, as both are based on CEA-861 and IEC-60958. The omap_dss_audio
      structure may be extended in the future if required.
      
      The audio_enable/disable, audio_config and audio_supported functions could be
      implemented as functions that may sleep. Hence, they should not be called
      while holding a spinlock or a readlock.
      
      The audio_start/audio_stop function is intended to effectively start/stop audio
      playback after the configuration has taken place. These functions are designed
      to be used in an atomic context. Hence, audio_start should return quickly and be
      called only after all the needed resources for audio playback (audio FIFOs,
      DMA channels, companion chips, etc) have been enabled to begin data transfers.
      audio_stop is designed to only stop the audio transfers. The resources used
      for playback are released using audio_disable.
      
      A new enum omap_dss_audio_state is introduced to help the implementations of
      the interface to keep track of the audio state. The initial state is _DISABLED;
      then, the state transitions to _CONFIGURED, and then, when it is ready to
      play audio, to _ENABLED. The state _PLAYING is used when the audio is being
      rendered.
      Signed-off-by: NRicardo Neri <ricardo.neri@ti.com>
      9c0b8420
    • G
      OMAPDSS: VENC: allow switching venc output type at runtime · 0aca3c63
      Grazvydas Ignotas 提交于
      VENC output type (composite/svideo) doesn't have to be fixed by board
      wiring, it is possible to also provide composite signal through svideo
      luminance connector (software enabled), which is what pandora does.
      
      Having to recompile the kernel for users who have TV connector types
      that don't match default board setting is very inconvenient, especially
      for users of a consumer device, so add support for switching VENC output
      type at runtime over a new sysfs file output_type.
      Signed-off-by: NGrazvydas Ignotas <notasas@gmail.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      0aca3c63
  17. 23 4月, 2012 1 次提交
    • V
      ARM: SPEAr3xx: Add device-tree support to SPEAr3xx architecture · c5fa4fdc
      Viresh Kumar 提交于
      This patch adds a generic target for SPEAr3xx machines that can be configured
      via the device-tree. Currently the following devices are supported via the
      devicetree:
      
      - VIC interrupts
      - PL011 UART
      - PL061 GPIO
      - PL110 CLCD
      - SP805 WDT
      - Synopsys DW I2C
      - Synopsys DW ethernet
      - ST FSMC-NAND
      - ST SPEAR-SMI
      - ST SPEAR-KEYBOARD
      - ST SPEAR-RTC
      - ARASAN SDHCI-SPEAR
      - SPEAR-EHCI
      - SPEAR-OHCI
      
      Other peripheral devices will follow in later patches.
      
      This also removes IO_ADDRESS macro and creates 16 MB static mappings instead of
      4K for individual peripherals. This is done to have efficient TLB lookup for any
      I/O windows that are located closely together. ioremap() on this range will
      return this mapping only instead of creating another.
      Signed-off-by: NViresh Kumar <viresh.kumar@st.com>
      c5fa4fdc
  18. 06 4月, 2012 1 次提交
    • R
      ARM: remove ixp23xx and ixp2000 platforms · c65f2abf
      Rob Herring 提交于
      ixp2xxx platforms have had no real changes since ~2006 and the maintainer
      has said on irc that they can be removed:
      
      13:05 < nico> do you still care about ixp2000?
      13:22 < lennert> not really, no
      13:58 < nico> do you think we could remove it from the kernel tree?
      14:01 < lennert> go for it, and remove ixp23xx too while you're at it
      
      Removing will help simplify ARM consolidation in general and PCI re-work
      specifically.
      Signed-off-by: NRob Herring <rob.herring@calxeda.com>
      Cc: Randy Dunlap <rdunlap@xenotime.net>
      Acked-by: NLennert Buytenhek <buytenh@wantstofly.org>
      c65f2abf
  19. 07 3月, 2012 1 次提交
  20. 27 11月, 2011 1 次提交
  21. 19 7月, 2011 1 次提交
    • D
      ARM: 6999/1: head, zImage: Always Enter the kernel in ARM state · 540b5738
      Dave Martin 提交于
      Currently, the documented kernel entry requirements are not
      explicit about whether the kernel should be entered in ARM or
      Thumb, leading to an ambiguitity about how to enter Thumb-2
      kernels.  As a result, the kernel is reliant on the zImage
      decompressor to enter the kernel proper in the correct instruction
      set state.
      
      This patch changes the boot entry protocol for head.S and Image to
      be the same as for zImage: in all cases, the kernel is now entered
      in ARM.
      
      Documentation/arm/Booting is updated to reflect this new policy.
      
      A different rule will be needed for Cortex-M class CPUs as and when
      support for those lands in mainline, since these CPUs don't support
      the ARM instruction set at all: a note is added to the effect that
      the kernel must be entered in Thumb on such systems.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Acked-by: NNicolas Pitre <nicolas.pitre@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      540b5738
  22. 18 7月, 2011 1 次提交
    • N
      ARM: mach-s3c2400: delete · 632b7cf6
      Nicolas Pitre 提交于
      On Tue, 28 Jun 2011, Ben Dooks wrote:
      
      > On Tue, Jun 28, 2011 at 11:22:57PM +0200, Arnd Bergmann wrote:
      >
      > > On a related note, what about mach-s3c2400? It seems to be even more
      > > incomplete.
      >
      > Probably the same fate awaits that. It is so old that there's little
      > incentive to do anything with it.
      
      So out it goes as well.
      
      The PORT_S3C2400 definition in include/linux/serial_core.h is left there
      to prevent a reuse of the same number for another port type.
      Signed-off-by: NNicolas Pitre <nicolas.pitre@linaro.org>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      632b7cf6
  23. 29 6月, 2011 2 次提交
  24. 20 6月, 2011 1 次提交
  25. 23 5月, 2011 1 次提交
  26. 12 5月, 2011 1 次提交
  27. 31 3月, 2011 1 次提交
  28. 14 2月, 2011 1 次提交
  29. 01 2月, 2011 1 次提交
  30. 25 1月, 2011 2 次提交
    • S
      ARM: 6617/1: mmc, Add zboot from MMC support for SuperH Mobile ARM · f45b1149
      Simon Horman 提交于
      This allows a ROM-able zImage to be written to MMC and
      for SuperH Mobile ARM to boot directly from the MMCIF
      hardware block.
      
      This is achieved by the MaskROM loading the first portion
      of the image into MERAM and then jumping to it. This portion
      contains loader code which copies the entire image to SDRAM
      and jumps to it. From there the zImage boot code proceeds
      as normal, uncompressing the image into its final location
      and then jumping to it.
      
      Cc: Magnus Damm <magnus.damm@gmail.com>
      
      Russell, please consider merging this for 2.6.38.
      
      This patch depends on:
      * "mmc, sh: Move MMCIF_PROGRESS_* into sh_mmcif.h"
        which will be merged though Paul Mundt's rmobile sh-2.6.
        The absence of this patch will break the build if
        the (new) CONFIG_ZBOOT_ROM_MMCIF option is set.
        There are no subtle side-effects.
      
      v2:
      Addressed comments by Magnus Damm
      * Fix copyright in vrl4.c
      * Fix use of #define CONFIG_ZBOOT_ROM_MMCIF in mmcif-sh7372.c
      * Initialise LED GPIO lines in head-ap4evb.txt instead of mmcif-sh7372.c
        as this is considered board-specific.
      
      v3:
      Addressed comments made in person by Magnus Damm
      * Move mmcif_loader to be earlier in the image and
        reduce the number of blocks of boot program loaded by the MaskRom
        from 40 to 8 accordingly.
      * Move LED GPIO initialisation into mmcif_progress_init
        - This leaves the partner jet script unbloated
      Other
      * inline mmcif_update_progress so it is a static inline in a header file
      
      v4:
      * Use htole16() and htole32() in v4rl.c to ensure
        that the output is little endian
      
      v5:
      Addressed comments by Russell King
      * Simplify assembly code
      * Jump to code rather than an address <- bug fix
      * Use (void __iomem *) as appropriate
      Roll in mackerel support
      * This was previously a separate patch, only because of the order
        in which this code was developed
      Signed-off-by: NSimon Horman <horms@verge.net.au>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      f45b1149
    • R
      ARM: lh7a40x: remove unmaintained platform support · 82e6923e
      Russell King 提交于
      lh7a40x has only been receiving updates for updates to generic code.
      The last involvement from the maintainer according to the git logs was
      in 2006.  As such, it is a maintainence burden with no benefit.
      
      This gets rid of two defconfigs.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      82e6923e
  31. 22 12月, 2010 1 次提交
  32. 10 11月, 2010 1 次提交
  33. 04 11月, 2010 1 次提交
  34. 07 10月, 2010 1 次提交
  35. 10 8月, 2010 1 次提交