1. 18 8月, 2016 1 次提交
    • B
      remoteproc: Introduce auto-boot flag · ddf71187
      Bjorn Andersson 提交于
      Introduce an "auto-boot" flag on rprocs to make it possible to flag
      remote processors without vdevs to automatically boot once the firmware
      is found.
      
      Preserve previous behavior of the wkup_m3 processor being explicitly
      booted by a consumer.
      
      Cc: Lee Jones <lee.jones@linaro.org>
      Cc: Loic Pallardy <loic.pallardy@st.com>
      Cc: Suman Anna <s-anna@ti.com>
      Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
      ddf71187
  2. 13 8月, 2016 8 次提交
  3. 11 8月, 2016 4 次提交
  4. 04 8月, 2016 1 次提交
    • K
      dma-mapping: use unsigned long for dma_attrs · 00085f1e
      Krzysztof Kozlowski 提交于
      The dma-mapping core and the implementations do not change the DMA
      attributes passed by pointer.  Thus the pointer can point to const data.
      However the attributes do not have to be a bitfield.  Instead unsigned
      long will do fine:
      
      1. This is just simpler.  Both in terms of reading the code and setting
         attributes.  Instead of initializing local attributes on the stack
         and passing pointer to it to dma_set_attr(), just set the bits.
      
      2. It brings safeness and checking for const correctness because the
         attributes are passed by value.
      
      Semantic patches for this change (at least most of them):
      
          virtual patch
          virtual context
      
          @r@
          identifier f, attrs;
      
          @@
          f(...,
          - struct dma_attrs *attrs
          + unsigned long attrs
          , ...)
          {
          ...
          }
      
          @@
          identifier r.f;
          @@
          f(...,
          - NULL
          + 0
           )
      
      and
      
          // Options: --all-includes
          virtual patch
          virtual context
      
          @r@
          identifier f, attrs;
          type t;
      
          @@
          t f(..., struct dma_attrs *attrs);
      
          @@
          identifier r.f;
          @@
          f(...,
          - NULL
          + 0
           )
      
      Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.comSigned-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Acked-by: NVineet Gupta <vgupta@synopsys.com>
      Acked-by: NRobin Murphy <robin.murphy@arm.com>
      Acked-by: NHans-Christian Noren Egtvedt <egtvedt@samfundet.no>
      Acked-by: Mark Salter <msalter@redhat.com> [c6x]
      Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> [cris]
      Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> [drm]
      Reviewed-by: NBart Van Assche <bart.vanassche@sandisk.com>
      Acked-by: Joerg Roedel <jroedel@suse.de> [iommu]
      Acked-by: Fabien Dessenne <fabien.dessenne@st.com> [bdisp]
      Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> [vb2-core]
      Acked-by: David Vrabel <david.vrabel@citrix.com> [xen]
      Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> [xen swiotlb]
      Acked-by: Joerg Roedel <jroedel@suse.de> [iommu]
      Acked-by: Richard Kuo <rkuo@codeaurora.org> [hexagon]
      Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> [m68k]
      Acked-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> [s390]
      Acked-by: NBjorn Andersson <bjorn.andersson@linaro.org>
      Acked-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no> [avr32]
      Acked-by: Vineet Gupta <vgupta@synopsys.com> [arc]
      Acked-by: Robin Murphy <robin.murphy@arm.com> [arm64 and dma-iommu]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      00085f1e
  5. 15 7月, 2016 2 次提交
  6. 14 7月, 2016 1 次提交
  7. 15 6月, 2016 1 次提交
    • D
      remoteproc: Fix potential race condition in rproc_add · d2e12e66
      Dave Gerlach 提交于
      rproc_add adds the newly created remoteproc to a list for use by
      rproc_get_by_phandle and then does some additional processing to finish
      adding the remoteproc. This leaves a small window of time in which the
      rproc is available in the list but not yet fully initialized, so if
      another driver comes along and gets a handle to the rproc, it will be
      invalid. Rearrange the code in rproc_add to make sure the rproc is added
      to the list only after it has been successfuly initialized.
      
      Fixes: fec47d86 ("remoteproc: introduce rproc_get_by_phandle API")
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Gerlach <d-gerlach@ti.com>
      Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
      d2e12e66
  8. 13 5月, 2016 2 次提交
  9. 07 5月, 2016 1 次提交
  10. 29 3月, 2016 1 次提交
  11. 30 1月, 2016 5 次提交
  12. 13 1月, 2016 1 次提交
  13. 26 11月, 2015 2 次提交
    • S
      remoteproc: fix memory leak of remoteproc ida cache layers · f42f79af
      Suman Anna 提交于
      The remoteproc core uses a static ida named rproc_dev_index for
      assigning an automatic index number to a registered remoteproc.
      The ida core may allocate some internal idr cache layers and ida
      bitmap upon any ida allocation, and all these layers are truely
      freed only upon the ida destruction. The rproc_dev_index ida is
      not destroyed at present, leading to a memory leak when using the
      remoteproc core as a module and atleast one rproc device is
      registered and unregistered.
      
      Fix this by invoking ida_destroy() in the remoteproc core module
      exit.
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      f42f79af
    • A
      remoteproc: avoid stack overflow in debugfs file · 92792e48
      Arnd Bergmann 提交于
      Recent gcc versions warn about reading from a negative offset of
      an on-stack array:
      
      drivers/remoteproc/remoteproc_debugfs.c: In function 'rproc_recovery_write':
      drivers/remoteproc/remoteproc_debugfs.c:167:9: warning: 'buf[4294967295u]' may be used uninitialized in this function [-Wmaybe-uninitialized]
      
      I don't see anything in sys_write() that prevents us from
      being called with a zero 'count' argument, so we should
      add an extra check in rproc_recovery_write() to prevent the
      access and avoid the warning.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: 2e37abb8 ("remoteproc: create a 'recovery' debugfs entry")
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      92792e48
  14. 18 6月, 2015 1 次提交
  15. 17 6月, 2015 3 次提交
    • D
      remoteproc/wkup_m3: add a remoteproc driver for TI Wakeup M3 · a01bc0d5
      Dave Gerlach 提交于
      Add a remoteproc driver to load the firmware and boot a small
      Wakeup M3 processor present on TI AM33xx and AM43xx SoCs. This
      Wakeup M3 remote processor is an integrated Cortex M3 that allows
      the SoC to enter the lowest possible power state by taking control
      from the MPU after it has gone into its own low power state and
      shutting off any additional peripherals.
      
      The Wakeup M3 processor has two internal memory regions - 16 kB of
      unified instruction memory called UMEM used to store executable
      code, and 8 kB of data memory called DMEM used for all data sections.
      The Wakeup M3 processor executes its code entirely from within the
      UMEM and uses the DMEM for any data. It does not use any external
      memory or any other external resources. The device address view has
      the UMEM at address 0x0 and DMEM at address 0x80000, and these are
      computed automatically within the driver based on relative address
      calculation from the corresponding device tree IOMEM resources.
      These device addresses are used to aid the core remoteproc ELF
      loader code to properly translate and load the firmware segments
      through the .rproc_da_to_va ops.
      Signed-off-by: NDave Gerlach <d-gerlach@ti.com>
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      a01bc0d5
    • S
      remoteproc: add a rproc ops for performing address translation · a01f7cd6
      Suman Anna 提交于
      The rproc_da_to_va API is currently used to perform any device to
      kernel address translations to meet the different needs of the remoteproc
      core/drivers (eg: loading). The functionality is achieved within the
      remoteproc core, and is limited only for carveouts allocated within the
      core.
      
      A new rproc ops, da_to_va, is added to provide flexibility to platform
      implementations to perform the address translation themselves when the
      above conditions cannot be met by the implementations. The rproc_da_to_va()
      API is extended to invoke this ops if present, and fallback to regular
      processing if the platform implementation cannot provide the translation.
      This will allow any remoteproc implementations to translate addresses for
      dedicated memories like internal memories.
      
      While at this, also update the rproc_da_to_va() documentation since it
      is an exported function.
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NDave Gerlach <d-gerlach@ti.com>
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      a01f7cd6
    • D
      remoteproc: introduce rproc_get_by_phandle API · fec47d86
      Dave Gerlach 提交于
      Allow users of remoteproc the ability to get a handle to an rproc by
      passing a phandle supplied in the user's device tree node. This is
      useful in situations that require manual booting of the rproc.
      
      This patch uses the code removed by commit 40e575b1 ("remoteproc:
      remove the get_by_name/put API") for the ref counting but is modified
      to use a simple list and locking mechanism and has rproc_get_by_name
      replaced with an rproc_get_by_phandle API.
      Signed-off-by: NDave Gerlach <d-gerlach@ti.com>
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      [fix order of Signed-off-by tags]
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      fec47d86
  16. 02 5月, 2015 3 次提交
  17. 12 3月, 2015 1 次提交
    • S
      remoteproc: add IOMMU hardware capability flag · 315491e5
      Suman Anna 提交于
      The remoteproc framework currently relies on iommu_present() on
      the bus the device is on, to perform MMU management. However, this
      logic doesn't scale for multi-arch, especially for processors that
      do not have an IOMMU. Replace this logic instead by using a h/w
      capability flag for the presence of IOMMU in the rproc structure.
      
      This issue is seen on OMAP platforms when trying to add a remoteproc
      driver for a small Cortex M3 called the WkupM3 used for suspend /
      resume management on TI AM335/AM437x SoCs. This processor does not
      have an MMU. Same is the case with another processor subsystem
      PRU-ICSS on AM335/AM437x. All these are platform devices, and the
      current iommu_present check will not scale for the same kernel image
      to support OMAP4/OMAP5 and AM335/AM437x.
      
      The existing platform implementation drivers - OMAP remoteproc, STE
      Modem remoteproc and DA8xx remoteproc, are updated as well to properly
      configure the newly added rproc field.
      
      Cc: Robert Tivy <rtivy@ti.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      [small change in the commit title and in a single comment]
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      315491e5
  18. 09 12月, 2014 2 次提交