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 5 次提交
  3. 11 8月, 2016 3 次提交
  4. 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
  5. 13 5月, 2016 2 次提交
  6. 07 5月, 2016 1 次提交
  7. 30 1月, 2016 1 次提交
  8. 26 11月, 2015 1 次提交
    • 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
  9. 18 6月, 2015 1 次提交
  10. 17 6月, 2015 2 次提交
    • 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
  11. 02 5月, 2015 1 次提交
    • S
      remoteproc: fix various checkpatch warnings · 172e6ab1
      Suman Anna 提交于
      Fix all the checkpatch warnings in the core remoteproc
      code. The fixes cover the following warnings:
        1. WARNING: void function return statements are not generally useful
        2. WARNING: Possible unnecessary 'out of memory' message
        3. WARNING: line over 80 characters
        4. WARNING: braces {} are not necessary for single statement blocks
        5. WARNING: Unnecessary space before function pointer arguments
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      172e6ab1
  12. 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
  13. 01 7月, 2013 2 次提交
  14. 30 6月, 2013 1 次提交
  15. 24 4月, 2013 1 次提交
  16. 07 4月, 2013 5 次提交
  17. 05 4月, 2013 3 次提交
  18. 28 2月, 2013 2 次提交
  19. 02 10月, 2012 2 次提交
    • E
      remoteproc: Fix use of format specifyer · d09f53a7
      Emil Goode 提交于
      The dma_addr_t type can be either u32 or u64 depending on
      the configuration. We should use a format specifyer for the
      larger type and explicitly cast to it.
      
      Sparse warnings:
      drivers/remoteproc/remoteproc_core.c:234:2: warning:
      	format ‘%x’ expects argument of type ‘unsigned int’,
      	but argument 6 has type ‘dma_addr_t’ [-Wformat]
      
      drivers/remoteproc/remoteproc_core.c:596:2: warning:
      	format ‘%x’ expects argument of type ‘unsigned int’,
      	but argument 5 has type ‘dma_addr_t’ [-Wformat]
      
      drivers/remoteproc/remoteproc_core.c:634:3:
      	warning: format ‘%x’ expects argument of type ‘unsigned int’,
      	but argument 5 has type ‘dma_addr_t’ [-Wformat]
      Signed-off-by: NEmil Goode <emilgoode@gmail.com>
      [fix commit log typos]
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      d09f53a7
    • D
      remoteproc: fix a potential NULL-dereference on cleanup · 7168d914
      Dan Carpenter 提交于
      We only need to allocate mapping if there is an IOMMU domain.
      
      Otherwise, when the mappings are released, the assumption that
      an IOMMU domain is there will crash and burn.
      
      CC: stable@vger.kernel.org
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      [ohad: revise commit log]
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      7168d914
  20. 19 9月, 2012 1 次提交
  21. 18 9月, 2012 3 次提交
    • F
      remoteproc: create a 'recovery' debugfs entry · 2e37abb8
      Fernando Guzman Lugo 提交于
      Add a 'recovery' debugfs entry to dynamically disable/enable recovery
      at runtime. This is useful when one is trying to debug an rproc crash;
      without it, a recovery will immediately take place, making it harder
      to debug the crash.
      
      Contributions from Subramaniam Chanderashekarapuram.
      
      Examples:
      
      - disabling recovery:
      $ echo disabled > <debugfs>/remoteproc/remoteproc0/recovery
      
      - in case you want to recover a crash, but keep recovery disabled
        (useful in debugging sessions when you expect additional crashes
         you want to debug):
      $ echo recover > <debugfs>/remoteproc/remoteproc0/recovery
      
      - enabling recovery:
      $ echo enabled > <debugfs>/remoteproc/remoteproc0/recovery
      Signed-off-by: NFernando Guzman Lugo <fernando.lugo@ti.com>
      [ohad: some white space, commentary and commit log changes]
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      2e37abb8
    • F
      remoteproc: add actual recovery implementation · 70b85ef8
      Fernando Guzman Lugo 提交于
      Add rproc_trigger_recovery() which takes care of the recovery itself,
      by removing, and re-adding, all of the remoteproc's virtio devices.
      
      This resets all virtio users of the remote processor, during which
      the remote processor is powered off and on again.
      Signed-off-by: NFernando Guzman Lugo <fernando.lugo@ti.com>
      [ohad: introduce rproc_add_virtio_devices to avoid 1.copying code 2.anomaly]
      [ohad: some white space, naming and commit log changes]
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      70b85ef8
    • F
      remoteproc: add rproc_report_crash function to notify rproc crashes · 8afd519c
      Fernando Guzman Lugo 提交于
      Allow low-level remoteproc drivers to report rproc crashes by exporting
      a new rproc_report_crash() function (invoking this from non-rproc drivers
      is probably wrong, and should be carefully scrutinized if ever needed).
      
      rproc_report_crash() can be called from any context; it offloads the
      tasks of handling the crash to a separate thread.
      
      Handling the crash from a separate thread is helpful because:
      - Ability to call invoke rproc_report_crash() from atomic context, due to
        the fact that many crashes trigger an interrupt, so this function can be
        called directly from ISR context.
      - Avoiding deadlocks which could happen if rproc_report_crash() is called
        from a function which indirectly holds the rproc lock.
      
      Handling the crash might involve:
      - Remoteproc register dump
      - Remoteproc stack dump
      - Remoteproc core dump
      - Saving Remoteproc traces so they can be read after the crash
      - Reseting the remoteproc in order to make it functional again (hard recovery)
      
      Right now, we only print the crash type which was detected, and only the
      mmufault type is supported. Remoteproc low-level drivers can add more types
      when needed.
      Signed-off-by: NFernando Guzman Lugo <fernando.lugo@ti.com>
      [ohad: some commentary, white space and commit log changes]
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      8afd519c