Re: [PATCH] drm/prime: Only call dma_map_sgtable() for devices with DMA support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

Am 19.02.21 um 16:53 schrieb Alan Stern:
On Fri, Feb 19, 2021 at 02:45:54PM +0100, Christian König wrote:
Well as far as I can see this is a relative clear NAK.

When a device can't do DMA and has no DMA mask then why it is requesting an
sg-table in the first place?

This may not be important for your discussion, but I'd like to give an
answer to the question -- at least, for the case of USB.

A USB device cannot do DMA and has no DMA mask.  Nevertheless, if you
want to send large amounts of bulk data to/from a USB device then using
an SG table is often a good way to do it.  The reason is simple: All
communication with a USB device has to go through a USB host controller,
and many (though not all) host controllers _can_ do DMA and _do_ have a
DMA mask.

It's semi-related. One idea we had for speeding up transfers is to use the USB controller's DMA functionality and allocate framebuffers accordingly. It needs a bit of work in the DRM memory-management code IIRC. And we do some internal modifications if the frambuffer's data, so direct forwarding from renderer to USB controller is not always possible.

Best regards
Thomas


The USB mass-storage and uas drivers in particular make heavy use of
this mechanism.

Alan Stern


--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux