1. 10 Oct, 2017 1 commit
    • Arnd Bergmann's avatar
      remoteproc: qcom: fix RPMSG_QCOM_GLINK_SMEM dependencies · ab759b97
      Arnd Bergmann authored
      When RPMSG_QCOM_GLINK_SMEM=m and one driver causes the qcom_common.c file
      to be compiled as built-in, we get a link error:
      
      drivers/remoteproc/qcom_common.o: In function `glink_subdev_remove':
      qcom_common.c:(.text+0x130): undefined reference to `qcom_glink_smem_unregister'
      qcom_common.c:(.text+0x130): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `qcom_glink_smem_unregister'
      drivers/remoteproc/qcom_common.o: In function `glink_subdev_probe':
      qcom_common.c:(.text+0x160): undefined reference to `qcom_glink_smem_register'
      qcom_common.c:(.text+0x160): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `qcom_glink_smem_register'
      
      Out of the three PIL driver instances, QCOM_ADSP_PIL already has a
      Kconfig dependency to prevent this from happening, but the other two
      do not. This adds the same dependency there.
      
      Fixes: eea07023 ("remoteproc: qcom: adsp: Allow defining GLINK edge")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      ab759b97
  2. 01 Sep, 2017 1 commit
  3. 30 Aug, 2017 1 commit
  4. 27 Jun, 2017 3 commits
  5. 26 Jun, 2017 1 commit
    • Suman Anna's avatar
      remoteproc/keystone: Add a remoteproc driver for Keystone 2 DSPs · e88bb8f7
      Suman Anna authored
      The Texas Instrument's Keystone 2 family of SoCs has 1 or more
      TMS320C66x DSP Core Subsystems (C66x CorePacs). Each subsystem has
      a C66x Fixed/Floating-Point DSP Core, with 32KB of L1P and L1D SRAMs,
      that can be configured and partitioned as either RAM and/or Cache,
      and 1 MB of L2 SRAM. The CorePac also includes an Internal DMA (IDMA),
      External Memory Controller (EMC), Extended Memory Controller (XMC)
      with a Memory Protection and Address Extension (MPAX) unit, a Bandwidth
      Management (BWM) unit, an Interrupt Controller (INTC) and a Powerdown
      Controller (PDC).
      
      A new remoteproc module is added to perform the device management of
      these DSP devices. The driver expects the firmware names to be of the
      form "keystone-dsp<X>-fw", where X is the corresponding DSP number, and
      uses the standard remoteproc core ELF loader. The support is limited
      to images only using the DSP internal memories at the moment. This
      remoteproc driver is also designed to work with virtio, and uses the
      IPC Generation registers for performing the virtio signalling and
      getting notified of exceptions.
      
      The driver currently supports the 66AK2H/66AK2K, 66AK2L and 66AK2E
      SoCs.
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      Signed-off-by: default avatarSam Nelson <sam.nelson@ti.com>
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Acked-by: default avatarSantosh Shilimkar <ssantosh@kernel.org>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      e88bb8f7
  6. 25 Jun, 2017 1 commit
    • Suman Anna's avatar
      remoteproc/davinci: Update Kconfig to depend on DMA_CMA · c51e882c
      Suman Anna authored
      The davinci remoteproc driver requires a CMA pool for allocating
      memory for virtio vrings/buffers and other sections of the firmware
      image. The allocations are done using the DMA API. The CMA option is
      currently selected automatically on systems with MMU when davinci
      remoteproc is enabled, switch this to a saner depends on dependency
      convention. The dependency is also updated to use the DMA_CMA kconfig
      symbol that is used for CMA allocations using the DMA API, the CMA
      dependency is inherited implicitly.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      c51e882c
  7. 29 Mar, 2017 1 commit
  8. 20 Mar, 2017 1 commit
    • Arnd Bergmann's avatar
      remoteproc: qcom: fix QCOM_SMD dependencies · c3104aae
      Arnd Bergmann authored
      qcom_smd_register_edge() is provided by either QCOM_SMD or RPMSG_QCOM_SMD,
      and if both of them are disabled, it does nothing.
      
      The check for the PIL drivers however only checks for QCOM_SMD, so it breaks
      with QCOM_SMD=n && RPMSG_QCOM_SMD=m:
      
      drivers/remoteproc/built-in.o: In function `smd_subdev_remove':
      qcom_wcnss_iris.c:(.text+0x231c): undefined reference to `qcom_smd_unregister_edge'
      drivers/remoteproc/built-in.o: In function `smd_subdev_probe':
      qcom_wcnss_iris.c:(.text+0x2344): undefined reference to `qcom_smd_register_edge'
      drivers/remoteproc/built-in.o: In function `smd_subdev_probe':
      qcom_q6v5_pil.c:(.text+0x3538): undefined reference to `qcom_smd_register_edge'
      qcom_q6v5_pil.c:(.text+0x3538): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `qcom_smd_register_edge'
      
      This clarifies the Kconfig dependency.
      
      Fixes: 4b48921a ("remoteproc: qcom: Use common SMD edge handler")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      c3104aae
  9. 06 Feb, 2017 5 commits
  10. 18 Jan, 2017 1 commit
  11. 10 Dec, 2016 2 commits
    • Arnd Bergmann's avatar
      remoteproc: qcom_adsp_pil: select qcom_scm · e2a32b6b
      Arnd Bergmann authored
      The adsp-pil driver relies on SCM and causes a build error without it:
      
      ERROR: "qcom_scm_pas_supported" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_is_available" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_pas_auth_and_reset" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_pas_shutdown" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_pas_mem_setup" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_pas_init_image" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      
      This adds a 'select', as SCM is a silent Kconfig symbol that gets
      enabled implicitly by all its users.
      
      Fixes: b9e718e9 ("remoteproc: Introduce Qualcomm ADSP PIL")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      e2a32b6b
    • Jean Delvare's avatar
      remoteproc/ste: Delete unused driver · 394c6200
      Jean Delvare authored
      Back in July 2014 I asked around what was the intended target
      platform for the STE Modem remoteproc driver, so that I could add the
      proper hardware dependency to its config option. The answer I got was
      that there was no known publicly available hardware needing it and it
      was unlikely that there ever would.
      
      So I think it's time to delete this driver to lower the maintenance
      burden.
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Ohad Ben-Cohen <ohad@wizery.com>
      Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
      Cc: Suman Anna <s-anna@ti.com>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Acked-by: default avatarLoic Pallardy <loic.pallardy@st.com>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      394c6200
  12. 09 Dec, 2016 1 commit
    • Arnd Bergmann's avatar
      remoteproc: qcom_adsp_pil: select qcom_scm · 8af1d63e
      Arnd Bergmann authored
      The adsp-pil driver relies on SCM and causes a build error without it:
      
      ERROR: "qcom_scm_pas_supported" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_is_available" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_pas_auth_and_reset" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_pas_shutdown" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_pas_mem_setup" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      ERROR: "qcom_scm_pas_init_image" [drivers/remoteproc/qcom_adsp_pil.ko] undefined!
      
      This adds a 'select', as SCM is a silent Kconfig symbol that gets
      enabled implicitly by all its users.
      
      Fixes: b9e718e9 ("remoteproc: Introduce Qualcomm ADSP PIL")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      8af1d63e
  13. 18 Nov, 2016 1 commit
    • Arnd Bergmann's avatar
      remoteproc: wcnss-pil: add QCOM_SMD dependency · c496f676
      Arnd Bergmann authored
      When qcom_smd is a loadable module and wcnss-pil is built-in,
      we get a link error:
      
      drivers/remoteproc/qcom_wcnss_pil.o: In function `wcnss_smd_remove':
      qcom_wcnss_iris.c:(.text.wcnss_smd_remove+0x10): undefined reference to `qcom_smd_unregister_edge'
      drivers/remoteproc/qcom_wcnss_pil.o: In function `wcnss_smd_probe':
      qcom_wcnss_iris.c:(.text.wcnss_smd_probe+0x12): undefined reference to `qcom_smd_register_edge'
      
      This adds a Kconfig dependency to avoid this. We can still allow
      build-testing with SMD disabled.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      c496f676
  14. 17 Nov, 2016 1 commit
  15. 16 Nov, 2016 1 commit
  16. 15 Nov, 2016 1 commit
    • Bjorn Andersson's avatar
      remoteproc: qcom_wcnss: Fix circular module dependency · 6de1a507
      Bjorn Andersson authored
      The tie between the main WCNSS driver and the IRIS driver causes a
      circular dependency between the two modules. Neither part makes sense to
      have on their own so lets merge them into one module.
      
      For the sake of picking up the clock and regulator resources described
      in the iris of_node we need an associated struct device. But, to keep
      the size of the patch down we continue to represent the IRIS part as its
      own platform_driver, within the same module, rather than setting up a
      dummy device.
      
      Fixes: aed361ad ("remoteproc: qcom: Introduce WCNSS peripheral image loader")
      Reported-by: default avatarAndreas Färber <afaerber@suse.de>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      6de1a507
  17. 18 Oct, 2016 2 commits
    • Peter Griffin's avatar
      remoteproc: Update Kconfig setup to 'depends on REMOTEPROC' · e41ddbc0
      Peter Griffin authored
      Make REMOTEPROC core a selectable kconfig option, and update
      remoteproc client drivers to 'depends on' the core. This avoids
      some nasty Kconfig recursive dependency issues. Also when using
      menuconfig client drivers will be hidden until the core has been
      enabled.
      
      Documentation/kbuild/kconfig-language.txt:
      
        Note:
              select should be used with care. select will force
              a symbol to a value without visiting the dependencies.
              By abusing select you are able to select a symbol FOO even
              if FOO depends on BAR that is not set.
              In general use select only for non-visible symbols
              (no prompts anywhere) and for symbols with no dependencies.
              That will limit the usefulness but on the other hand avoid
              the illegal configurations all over.
      Signed-off-by: default avatarPeter Griffin <peter.griffin@linaro.org>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      e41ddbc0
    • Peter Griffin's avatar
      remoteproc: st_slim_rproc: add a slimcore rproc driver · bb6869b2
      Peter Griffin authored
      slim core is used as a basis for many IPs in the STi
      chipsets such as fdma and demux. To avoid duplicating
      the elf loading code in each device driver a slim
      rproc driver has been created.
      
      This driver is designed to be used by other device drivers
      such as fdma, or demux whose IP is based around a slim core.
      The device driver can call slim_rproc_alloc() to allocate
      a slim rproc and slim_rproc_put() when finished.
      
      This driver takes care of ioremapping the slim
      registers (dmem, imem, slimcore, peripherals), whose offsets
      and sizes can change between IP's. It also obtains and enables
      any clocks used by the device. This approach avoids having
      a double mapping of the registers as slim_rproc does not register
      its own platform device. It also maps well to device tree
      abstraction as it allows us to have one dt node for the whole
      device.
      
      All of the generic rproc elf loading code can be reused, and
      we provide start() stop() hooks to start and stop the slim
      core once the firmware has been loaded. This has been tested
      successfully with fdma driver.
      Signed-off-by: default avatarPeter Griffin <peter.griffin@linaro.org>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      bb6869b2
  18. 09 Sep, 2016 1 commit
  19. 18 Aug, 2016 1 commit
  20. 13 Jul, 2016 1 commit
  21. 30 Jan, 2016 1 commit
  22. 17 Jun, 2015 1 commit
    • Dave Gerlach's avatar
      remoteproc/wkup_m3: add a remoteproc driver for TI Wakeup M3 · a01bc0d5
      Dave Gerlach authored
      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: default avatarDave Gerlach <d-gerlach@ti.com>
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
      a01bc0d5
  23. 17 Jun, 2014 1 commit
    • Arnd Bergmann's avatar
      remoteproc: da8xx: don't select CMA on no-MMU · 8c094524
      Arnd Bergmann authored
      We can only use CMA on systems that have an MMU, because of
      the requirement to use memory migration. NOMMU systems are
      rather constrained to start with, but it seems reasonable
      to assume that DMA allocations can still succeed in the
      constrained case for remoteproc on NOMMU, so this patch
      changes the da8xx implementation to not rely on CMA when
      the MMU is disabled.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Ohad Ben-Cohen <ohad@wizery.com>
      Cc: Robert Tivy <rtivy@ti.com>
      8c094524
  24. 11 Jun, 2013 1 commit
    • Suman Anna's avatar
      mailbox/omap: move the OMAP mailbox framework to drivers · c869c75c
      Suman Anna authored
      The mailbox hardware (in OMAP) uses a queued mailbox interrupt
      mechanism that provides a communication channel between processors
      through a set of registers and their associated interrupt signals
      by sending and receiving messages.
      
      The OMAP mailbox framework/driver code is moved to be under
      drivers/mailbox, in preparation for adapting to a common mailbox
      driver framework. This allows the build for OMAP mailbox to be
      enabled (it was disabled during the multi-platform support).
      
      As part of the migration from plat and mach code:
      - Kconfig symbols have been renamed to build OMAP1 or OMAP2+ drivers.
      - mailbox.h under plat-omap/plat/include has been split into a public
        and private header files. The public header has only the API related
        functions and types.
      - The module name mailbox.ko from plat-omap is changed to
        omap-mailbox.ko
      - The module name mailbox_mach.ko from mach-omapX is changed as
          mailbox_omap1.ko for OMAP1
          mailbox_omap2.ko for OMAP2+
      
      Cc: Tony Lindgren <tony@atomide.com>
      [gregkh@linuxfoundation.org: ack for staging part]
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarOmar Ramirez Luna <omar.ramirez@copitl.com>
      Signed-off-by: default avatarSuman Anna <s-anna@ti.com>
      c869c75c
  25. 21 Apr, 2013 1 commit
  26. 15 Apr, 2013 1 commit
  27. 07 Apr, 2013 3 commits
  28. 15 Feb, 2013 1 commit
  29. 21 Jan, 2013 1 commit
  30. 02 Oct, 2012 1 commit
    • Ohad Ben-Cohen's avatar
      remoteproc: select VIRTIO to avoid build breakage · 2ed6d29c
      Ohad Ben-Cohen authored
      drivers/built-in.o: In function `rproc_virtio_finalize_features':
      remoteproc_virtio.c:(.text+0x2f9a02): undefined reference to `vring_transport_features'
      drivers/built-in.o: In function `rproc_virtio_del_vqs':
      remoteproc_virtio.c:(.text+0x2f9a74): undefined reference to `vring_del_virtqueue'
      drivers/built-in.o: In function `rproc_virtio_find_vqs':
      remoteproc_virtio.c:(.text+0x2f9c44): undefined reference to `vring_new_virtqueue'
      drivers/built-in.o: In function `rproc_add_virtio_dev':
      (.text+0x2f9e2c): undefined reference to `register_virtio_device'
      drivers/built-in.o: In function `rproc_vq_interrupt':
      (.text+0x2f9db7): undefined reference to `vring_interrupt'
      drivers/built-in.o: In function `rproc_remove_virtio_dev':
      (.text+0x2f9e9f): undefined reference to `unregister_virtio_device'
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarRandy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
      2ed6d29c