mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-06 06:21:31 +00:00
ACPI: Introduce DMA ranges parsing
Some devices have limited addressing capabilities and cannot reference the whole memory address space while carrying out DMA operations (eg some devices with bus address bits range smaller than system bus - which prevents them from using bus addresses that are otherwise valid for the system). The ACPI _DMA object allows bus devices to define the DMA window that is actually addressable by devices that sit upstream the bus, therefore providing a means to parse and initialize the devices DMA masks and addressable DMA range size. By relying on the generic ACPI kernel layer to retrieve and parse resources, introduce ACPI core code to parse the _DMA object. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Tested-by: Nate Watterson <nwatters@codeaurora.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
4f0450af53
commit
c04ac679c6
4 changed files with 124 additions and 0 deletions
|
@ -427,6 +427,8 @@ void acpi_dev_free_resource_list(struct list_head *list);
|
|||
int acpi_dev_get_resources(struct acpi_device *adev, struct list_head *list,
|
||||
int (*preproc)(struct acpi_resource *, void *),
|
||||
void *preproc_data);
|
||||
int acpi_dev_get_dma_resources(struct acpi_device *adev,
|
||||
struct list_head *list);
|
||||
int acpi_dev_filter_resource_type(struct acpi_resource *ares,
|
||||
unsigned long types);
|
||||
|
||||
|
@ -774,6 +776,12 @@ static inline enum dev_dma_attr acpi_get_dma_attr(struct acpi_device *adev)
|
|||
return DEV_DMA_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
static inline int acpi_dma_get_range(struct device *dev, u64 *dma_addr,
|
||||
u64 *offset, u64 *size)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static inline int acpi_dma_configure(struct device *dev,
|
||||
enum dev_dma_attr attr)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue