Merge branch 'acpi-pci'
* acpi-pci: PCI: ACPI: Add support for PCI device DMA coherency PCI: OF: Move of_pci_dma_configure() to pci_dma_configure() of/pci: Fix pci_get_host_bridge_device leak device property: ACPI: Remove unused DMA APIs device property: ACPI: Make use of the new DMA Attribute APIs device property: Adding DMA Attribute APIs for Generic Devices ACPI: Adding DMA Attribute APIs for ACPI Device device property: Introducing enum dev_dma_attr ACPI: Honor ACPI _CCA attribute setting Conflicts: drivers/crypto/ccp/ccp-platform.c
This commit is contained in:
@@ -390,39 +390,6 @@ struct acpi_data_node {
|
||||
struct completion kobj_done;
|
||||
};
|
||||
|
||||
static inline bool acpi_check_dma(struct acpi_device *adev, bool *coherent)
|
||||
{
|
||||
bool ret = false;
|
||||
|
||||
if (!adev)
|
||||
return ret;
|
||||
|
||||
/**
|
||||
* Currently, we only support _CCA=1 (i.e. coherent_dma=1)
|
||||
* This should be equivalent to specifyig dma-coherent for
|
||||
* a device in OF.
|
||||
*
|
||||
* For the case when _CCA=0 (i.e. coherent_dma=0 && cca_seen=1),
|
||||
* There are two cases:
|
||||
* case 1. Do not support and disable DMA.
|
||||
* case 2. Support but rely on arch-specific cache maintenance for
|
||||
* non-coherence DMA operations.
|
||||
* Currently, we implement case 1 above.
|
||||
*
|
||||
* For the case when _CCA is missing (i.e. cca_seen=0) and
|
||||
* platform specifies ACPI_CCA_REQUIRED, we do not support DMA,
|
||||
* and fallback to arch-specific default handling.
|
||||
*
|
||||
* See acpi_init_coherency() for more info.
|
||||
*/
|
||||
if (adev->flags.coherent_dma) {
|
||||
ret = true;
|
||||
if (coherent)
|
||||
*coherent = adev->flags.coherent_dma;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline bool is_acpi_node(struct fwnode_handle *fwnode)
|
||||
{
|
||||
return fwnode && (fwnode->type == FWNODE_ACPI
|
||||
@@ -595,6 +562,9 @@ struct acpi_pci_root {
|
||||
|
||||
/* helper */
|
||||
|
||||
bool acpi_dma_supported(struct acpi_device *adev);
|
||||
enum dev_dma_attr acpi_get_dma_attr(struct acpi_device *adev);
|
||||
|
||||
struct acpi_device *acpi_find_child_device(struct acpi_device *parent,
|
||||
u64 address, bool check_children);
|
||||
int acpi_is_root_bridge(acpi_handle);
|
||||
|
Reference in New Issue
Block a user