aboutsummaryrefslogtreecommitdiff
path: root/include/linux/fsl/mc.h
AgeCommit message (Collapse)AuthorFilesLines
2020-10-02bus/fsl-mc: Extend ICID size from 16bit to 32bitBharat Bhushan1-1/+1
In virtual machines the device-id range is defined between 0x10000-0x20000. The reason for using such a large range is to avoid overlapping with the PCI range. Reviewed-by: Laurentiu Tudor <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Signed-off-by: Bharat Bhushan <[email protected]> Signed-off-by: Laurentiu Tudor <[email protected]> Signed-off-by: Diana Craciun <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-10-02bus/fsl-mc: Export IRQ pool handling functions to be used by VFIODiana Craciun1-0/+11
The IRQ pool handling functions can be used by both DPRC driver and VFIO. Adapt and export those functions. Reviewed-by: Laurentiu Tudor <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Signed-off-by: Diana Craciun <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-10-02bus/fsl-mc: Add a container setup functionDiana Craciun1-0/+2
Both DPRC driver and VFIO driver use the same initialization code for the DPRC. Introduced a new function which groups this initialization code. The function is exported and may be used by VFIO as well. Reviewed-by: Laurentiu Tudor <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Signed-off-by: Diana Craciun <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-10-02bus/fsl-mc: Export a cleanup function for DPRCDiana Craciun1-0/+2
Create and export a cleanup function for DPRC. The function is used by the DPRC driver, but it will be used by the VFIO driver as well. Reviewed-by: Laurentiu Tudor <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Signed-off-by: Diana Craciun <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-10-02bus/fsl-mc: Export dprc_scan/dprc_remove functions to be used by multiple ↵Diana Craciun1-0/+7
entities Currently the DPRC scan function is used only by the bus driver. But the same functionality will be needed by the VFIO driver. To support this, the dprc scan function was exported and a little bit adjusted to fit both scenarios. Also the scan mutex initialization is done when the bus object is created, not in dprc_probe in order to be used by both VFIO and bus driver. Similarily dprc_remove_devices is exported to be used by VFIO. Reviewed-by: Laurentiu Tudor <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Signed-off-by: Diana Craciun <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-10-02bus/fsl-mc: Add dprc-reset-container supportBharat Bhushan1-0/+7
DPRC reset is required by VFIO-mc in order to stop a device to further generate DMA transactions. Reviewed-by: Laurentiu Tudor <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Signed-off-by: Bharat Bhushan <[email protected]> Signed-off-by: Laurentiu Tudor <[email protected]> Signed-off-by: Diana Craciun <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-10-02bus/fsl-mc: Set the QMAN/BMAN region flagsDiana Craciun1-0/+8
The QMAN region is memory mapped, so it should be of type IORESOURCE_MEM. The region flags bits were wrongly used to pass additional information. Use the bus specific bits for this purpose. Reviewed-by: Laurentiu Tudor <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Signed-off-by: Diana Craciun <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-10-02bus/fsl-mc: add support for 'driver_override' in the mc-busBharat Bhushan1-0/+2
This patch is required for vfio-fsl-mc meta driver to successfully bind layerscape container devices for device passthrough. This patch adds a mechanism to allow a layerscape device to specify a driver rather than a layerscape driver provide a device match. Example to allow a device (dprc.1) to specifically bind with driver (vfio-fsl-mc):- - echo vfio-fsl-mc > /sys/bus/fsl-mc/devices/dprc.1/driver_override - echo dprc.1 > /sys/bus/fsl-mc/drivers/fsl_mc_dprc/unbind - echo dprc.1 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/bind Reviewed-by: Laurentiu Tudor <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Signed-off-by: Bharat Bhushan <[email protected]> Signed-off-by: Laurentiu Tudor <[email protected]> Signed-off-by: Diana Craciun <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-07-23bus: fsl-mc: use raw spin lock to serialize mc cmdsLaurentiu Tudor1-1/+1
Replace the spinlock that serializes the MC commands with a raw spinlock. This is needed for the RT kernel because there are MC commands sent in interrupt context. Signed-off-by: Laurentiu Tudor <[email protected]> Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Laurentiu Tudor <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-07-23bus: fsl-mc: add missing device typesIoana Ciornei1-0/+30
The MC bus has different types of devices that can be discovered on the bus. Add the missing device types. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Laurentiu Tudor <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2020-03-30bus: fsl-mc: add api to retrieve mc versionAndrei Botila1-0/+16
Add a new api that returns Management Complex firmware version and make the required structure public. The api's first user will be the caam driver for setting prediction resistance bits. Signed-off-by: Andrei Botila <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Reviewed-by: Horia Geantă <[email protected]> Cc: Chris Healy <[email protected]> Cc: Lucas Stach <[email protected]> Cc: Horia Geantă <[email protected]> Cc: Herbert Xu <[email protected]> Cc: Iuliana Prodan <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Signed-off-by: Herbert Xu <[email protected]>
2019-10-31bus: fsl-mc: add the fsl_mc_get_endpoint functionIoana Ciornei1-0/+2
Using the newly added fsl_mc_get_endpoint function a fsl-mc driver can find its associated endpoint (another object at the other link of a MC firmware link). The API will be used in the following patch in order to discover the connected DPMAC object of a DPNI. Also, the fsl_mc_device_lookup function is made available to the entire fsl-mc bus driver and not just for the dprc driver. Signed-off-by: Ioana Ciornei <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2019-01-11bus: fsl-mc: automatically add a device_link on fsl_mc_[portal,object]_allocateIoana Ciornei1-0/+1
Allocatable devices can be acquired by drivers on the fsl-mc bus using the fsl_mc_portal_allocate or fsl_mc_object_allocate functions. Add a device link between the consumer device and the supplier device so that proper resource management is achieved. Also, adding a link between these devices ensures that a proper unbind order is respected (ie before the supplier device is unbound from its respective driver all consumer devices will be notified and unbound first). Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Laurentiu Tudor <[email protected]> Signed-off-by: Li Yang <[email protected]>
2018-12-06bus: fsl-mc: explicitly define the fsl_mc_command endiannessIoana Ciornei1-6/+6
Both the header and the command parameters of the fsl_mc_command are 64-bit little-endian words. Use the appropriate type to explicitly specify their endianness. Signed-off-by: Ioana Ciornei <[email protected]> Reviewed-by: Laurentiu Tudor <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-10-26Merge tag 'iommu-updates-v4.20' of ↵Linus Torvalds1-0/+8
git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull IOMMU updates from Joerg Roedel: - Debugfs support for the Intel VT-d driver. When enabled, it now also exposes some of its internal data structures to user-space for debugging purposes. - ARM-SMMU driver now uses the generic deferred flushing and fast-path iova allocation code. This is expected to be a major performance improvement, as this allocation path scales a lot better. - Support for r8a7744 in the Renesas iommu driver - Couple of minor fixes and improvements all over the place * tag 'iommu-updates-v4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (39 commits) iommu/arm-smmu-v3: Remove unnecessary wrapper function iommu/arm-smmu-v3: Add SPDX header iommu/amd: Add default branch in amd_iommu_capable() dt-bindings: iommu: ipmmu-vmsa: Add r8a7744 support iommu/amd: Move iommu_init_pci() to .init section iommu/arm-smmu: Support non-strict mode iommu/io-pgtable-arm-v7s: Add support for non-strict mode iommu/arm-smmu-v3: Add support for non-strict mode iommu/io-pgtable-arm: Add support for non-strict mode iommu: Add "iommu.strict" command line option iommu/dma: Add support for non-strict mode iommu/arm-smmu: Ensure that page-table updates are visible before TLBI iommu/arm-smmu-v3: Implement flush_iotlb_all hook iommu/arm-smmu-v3: Avoid back-to-back CMD_SYNC operations iommu/arm-smmu-v3: Fix unexpected CMD_SYNC timeout iommu/io-pgtable-arm: Fix race handling in split_blk_unmap() iommu/arm-smmu-v3: Fix a couple of minor comment typos iommu: Fix a typo iommu: Remove .domain_{get,set}_windows iommu: Tidy up window attributes ...
2018-09-25iommu/arm-smmu: Add support for the fsl-mc busNipun Gupta1-0/+8
Implement bus specific support for the fsl-mc bus including registering arm_smmu_ops and bus specific device add operations. Signed-off-by: Nipun Gupta <[email protected]> Reviewed-by: Robin Murphy <[email protected]> Signed-off-by: Joerg Roedel <[email protected]>
2018-09-21bus: fsl-mc: add support for dpseci device typeHoria Geantă1-0/+6
Signed-off-by: Horia Geantă <[email protected]> Acked-by: Laurentiu Tudor <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
2018-03-23bus: fsl-mc: change mc_command in fsl_mc_commandIoana Ciornei1-5/+5
The "struct mc_command" is a very generic name for a global kernel structure. Change its name in "struct fsl_mc_command". Signed-off-by: Ioana Ciornei <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-03-14staging: fsl-mc: Move DPCON out of stagingBogdan Purcareata1-0/+66
Move the source files out of staging into their final locations: - dpcon.c goes to drivers/bus/fsl-mc/, next to the core infrastructure - dpcon-cmd.h gets merged into drivers/bus/fsl-mc/fsl-mc-private.h, next to the other internally used APIs - dpcon.h gets merged into include/linux/fsl/mc.h, exposing the public API Update references in the dpaa2-eth staging driver. DPCON stands for Data Path Concentrator - an interface between DPIO (Data Path IO) and its users (e.g. dpaa2-eth). You can read more about DPIO in Documentation/networking/dpaa2/overview.rst Signed-off-by: Bogdan Purcareata <[email protected]> Reviewed-by: Laurentiu Tudor <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-03-14staging: fsl-mc: Move DPBP out of stagingBogdan Purcareata1-0/+42
Move the source files out of staging into their final locations: - dpbp.c goes to drivers/bus/fsl-mc/, next to the core infrastructure - dpbp-cmd.h gets merged into drivers/bus/fsl-mc/fsl-mc-private.h, next to the other internally used APIs - dpbp.h gets merged into include/linux/fsl/mc.h, exposing the public API Update references in the dpaa2-eth staging driver. DPBP stands for Data Path Buffer Pool - you can read more about the object in Documentation/networking/dpaa2/overview.rst Signed-off-by: Bogdan Purcareata <[email protected]> Reviewed-by: Laurentiu Tudor <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2018-02-22staging: fsl-mc: Move core bus out of stagingBogdan Purcareata1-0/+454
Move the source files out of staging into their final locations: -mc.h include file in drivers/staging/fsl-mc/include go to include/linux/fsl -source files in drivers/staging/fsl-mc/bus go to drivers/bus/fsl-mc -overview.rst, providing an overview of DPAA2, goes to Documentation/networking/dpaa2/overview.rst Update or delete other remaining staging files -- Makefile, Kconfig, TODO. Update dpaa2_eth and dpio staging drivers. Add integration bits for the documentation build system. Signed-off-by: Stuart Yoder <[email protected]> [rebased, add dpaa2_eth and dpio #include updates] Signed-off-by: Laurentiu Tudor <[email protected]> [rebased, split irqchip to separate patch] Signed-off-by: Bogdan Purcareata <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Jason Cooper <[email protected]> Cc: Marc Zyngier <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>