swiotlb: Add is_swiotlb_active() function
This function will be used from dma_direct code to determine the maximum segment size of a dma mapping. Cc: stable@vger.kernel.org Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Joerg Roedel <jroedel@suse.de> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>hifive-unleashed-5.1
parent
abe420bfae
commit
492366f7b4
|
@ -77,6 +77,7 @@ bool swiotlb_map(struct device *dev, phys_addr_t *phys, dma_addr_t *dma_addr,
|
||||||
void __init swiotlb_exit(void);
|
void __init swiotlb_exit(void);
|
||||||
unsigned int swiotlb_max_segment(void);
|
unsigned int swiotlb_max_segment(void);
|
||||||
size_t swiotlb_max_mapping_size(struct device *dev);
|
size_t swiotlb_max_mapping_size(struct device *dev);
|
||||||
|
bool is_swiotlb_active(void);
|
||||||
#else
|
#else
|
||||||
#define swiotlb_force SWIOTLB_NO_FORCE
|
#define swiotlb_force SWIOTLB_NO_FORCE
|
||||||
static inline bool is_swiotlb_buffer(phys_addr_t paddr)
|
static inline bool is_swiotlb_buffer(phys_addr_t paddr)
|
||||||
|
@ -100,6 +101,11 @@ static inline size_t swiotlb_max_mapping_size(struct device *dev)
|
||||||
{
|
{
|
||||||
return SIZE_MAX;
|
return SIZE_MAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool is_swiotlb_active(void)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
#endif /* CONFIG_SWIOTLB */
|
#endif /* CONFIG_SWIOTLB */
|
||||||
|
|
||||||
extern void swiotlb_print_info(void);
|
extern void swiotlb_print_info(void);
|
||||||
|
|
|
@ -667,3 +667,12 @@ size_t swiotlb_max_mapping_size(struct device *dev)
|
||||||
{
|
{
|
||||||
return ((size_t)1 << IO_TLB_SHIFT) * IO_TLB_SEGSIZE;
|
return ((size_t)1 << IO_TLB_SHIFT) * IO_TLB_SEGSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_swiotlb_active(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* When SWIOTLB is initialized, even if io_tlb_start points to physical
|
||||||
|
* address zero, io_tlb_end surely doesn't.
|
||||||
|
*/
|
||||||
|
return io_tlb_end != 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue