Читаю LDD 3. Scatter list используются, когда нет возможности выделить один непрерывный буфер для обмена через DMA. Значит создаем и заполняем данными несколько буферов. Инициализируем массив структур типа scatterlist соответствующими параметрами созданных ранее буферов (пусть массив будет называться sg, для определенности). Теперь выполняем dma_map_sg(..., sg, ...). Теперь в элементах sg должны быть прописаны шинные адреса, с которыми может работать контроллер DMA. А возвращается нам актуальное число (N) элементов sg, так как dma_map_sg мог некоторые сшить/объединить. Но теперь в соответствии с LDD нужно опять последовательно для каждого из этих N элементов sg получать шинный адрес и длину (sg_dma_address и sg_dma_len) и отдавать их контроллеру DMA. Т.е. в итоге получается, что все равно приходится отрабатывать с каждым буфером последовательно и по отдельности? Ради чего тогда все это городилось? Ну может быть IOMMU некоторые буфера «сшил». И это вся польза? Или все-таки есть некоторые DMA контроллеры, которые могут работать напрямую со scatterlist? Или я что-то не понимаю?


Ответ на:
комментарий
от I-Love-Microsoft

Ответ на:
комментарий
от zloy_starper

Ответ на:
комментарий
от I-Love-Microsoft


Ответ на:
комментарий
от anonymous


Ответ на:
комментарий
от zloy_starper

Ответ на:
комментарий
от zloy_starper

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Уточнить хочу (2010)
- Форум Хочу уточнить (2022)
- Форум Scatter Gather DMA передача данных в буфер драйвера (+) (2011)
- Форум Scatter/Gather (2011)
- Форум mips assembler - хочу уточнить логику. (2018)
- Форум mmap scatter-gather (2006)
- Форум Хочу уточнить по https ssl-сертификатам (2014)
- Форум DMA (2011)
- Форум dma (2007)
- Форум DMA (2006)