powerpc: Remove IOMMU_VMERGE config option
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Tue, 2 Mar 2010 14:25:38 +0000 (14:25 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 19 Mar 2010 05:38:16 +0000 (16:38 +1100)
commit191aee58b6568cf8143901bfa3f57a9b8faa6f1c
tree296e0a4815c59e0289d88cbec8bfe6d02b50bb85
parenta93272969c6b1d59883fcbb04845420bd72c9a20
powerpc: Remove IOMMU_VMERGE config option

The description says:

 Cause IO segments sent to a device for DMA to be merged virtually
 by the IOMMU when they happen to have been allocated contiguously.
 This doesn't add pressure to the IOMMU allocator. However, some
 drivers don't support getting large merged segments coming back
 from *_map_sg().

 Most drivers don't have this problem; it is safe to say Y here.

It's out of date. Long ago, drivers didn't have a way to tell IOMMUs
about their segment length limit (that is, the maximum segment length
that they can handle). So IOMMUs merged as many segments as possible
and gave too large segments to drivers.

dma_get_max_seg_size() was introduced to solve the above
problem. Device drives can use the API to tell IOMMU about the maximum
segment length that they can handle. In addition, the default limit
(64K) should be safe for everyone.

So this config option seems to be unnecessary.

Note that this config option just enables users to disable the virtual
merging by default. Users can still disable the virtual merging by the
boot parameter.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/Kconfig
arch/powerpc/kernel/iommu.c