-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
port to linux-5.19.x; (patch from lwfinger/rtw8852be@4cff135)
- Loading branch information
pom
committed
Aug 25, 2022
1 parent
909155f
commit 8e3a013
Showing
6 changed files
with
151 additions
and
1,446 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
/* SPDX-License-Identifier: GPL-2.0 */ | ||
/* include this file if the platform implements the dma_ DMA Mapping API | ||
* and wants to provide the pci_ DMA Mapping API in terms of it */ | ||
|
||
#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H | ||
#define _ASM_GENERIC_PCI_DMA_COMPAT_H | ||
|
||
#include <linux/dma-mapping.h> | ||
#include <linux/pci.h> | ||
|
||
/* This defines the direction arg to the DMA mapping routines. */ | ||
#define PCI_DMA_BIDIRECTIONAL DMA_BIDIRECTIONAL | ||
#define PCI_DMA_TODEVICE DMA_TO_DEVICE | ||
#define PCI_DMA_FROMDEVICE DMA_FROM_DEVICE | ||
#define PCI_DMA_NONE DMA_NONE | ||
|
||
static inline void * | ||
pci_alloc_consistent(struct pci_dev *hwdev, size_t size, | ||
dma_addr_t *dma_handle) | ||
{ | ||
return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC); | ||
} | ||
|
||
static inline void * | ||
pci_zalloc_consistent(struct pci_dev *hwdev, size_t size, | ||
dma_addr_t *dma_handle) | ||
{ | ||
return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC); | ||
} | ||
|
||
static inline void | ||
pci_free_consistent(struct pci_dev *hwdev, size_t size, | ||
void *vaddr, dma_addr_t dma_handle) | ||
{ | ||
dma_free_coherent(&hwdev->dev, size, vaddr, dma_handle); | ||
} | ||
|
||
static inline dma_addr_t | ||
pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction) | ||
{ | ||
return dma_map_single(&hwdev->dev, ptr, size, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline void | ||
pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr, | ||
size_t size, int direction) | ||
{ | ||
dma_unmap_single(&hwdev->dev, dma_addr, size, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline dma_addr_t | ||
pci_map_page(struct pci_dev *hwdev, struct page *page, | ||
unsigned long offset, size_t size, int direction) | ||
{ | ||
return dma_map_page(&hwdev->dev, page, offset, size, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline void | ||
pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address, | ||
size_t size, int direction) | ||
{ | ||
dma_unmap_page(&hwdev->dev, dma_address, size, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline int | ||
pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, | ||
int nents, int direction) | ||
{ | ||
return dma_map_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline void | ||
pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg, | ||
int nents, int direction) | ||
{ | ||
dma_unmap_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline void | ||
pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t dma_handle, | ||
size_t size, int direction) | ||
{ | ||
dma_sync_single_for_cpu(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline void | ||
pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t dma_handle, | ||
size_t size, int direction) | ||
{ | ||
dma_sync_single_for_device(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline void | ||
pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sg, | ||
int nelems, int direction) | ||
{ | ||
dma_sync_sg_for_cpu(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline void | ||
pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sg, | ||
int nelems, int direction) | ||
{ | ||
dma_sync_sg_for_device(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction); | ||
} | ||
|
||
static inline int | ||
pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr) | ||
{ | ||
return dma_mapping_error(&pdev->dev, dma_addr); | ||
} | ||
|
||
#ifdef CONFIG_PCI | ||
static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) | ||
{ | ||
return dma_set_mask(&dev->dev, mask); | ||
} | ||
|
||
static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) | ||
{ | ||
return dma_set_coherent_mask(&dev->dev, mask); | ||
} | ||
#else | ||
static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) | ||
{ return -EIO; } | ||
static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) | ||
{ return -EIO; } | ||
#endif | ||
|
||
#endif |
Oops, something went wrong.