diff options
author | FUJITA Tomonori <tomof@acm.org> | 2008-02-05 01:27:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-05 12:44:10 -0500 |
commit | 4d57cdfacaa1c207bf4c071f89835e0368766a50 (patch) | |
tree | b0b617efcd2e228573e42e7efbea4a95955ddf70 /drivers/pci | |
parent | 6b7b651055221127304a4e373ee9b762398d54d7 (diff) |
iommu sg merging: PCI: add device_dma_parameters support
This adds struct device_dma_parameters in struct pci_dev and properly
sets up a pointer in struct device.
The default max_segment_size is set to 64K, same to the block layer's
default value.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Mostly-acked-by: Jeff Garzik <jeff@garzik.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/pci.c | 8 | ||||
-rw-r--r-- | drivers/pci/probe.c | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 04aac7782468..be97090ddf32 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c | |||
@@ -1451,6 +1451,14 @@ pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) | |||
1451 | } | 1451 | } |
1452 | #endif | 1452 | #endif |
1453 | 1453 | ||
1454 | #ifndef HAVE_ARCH_PCI_SET_DMA_MAX_SEGMENT_SIZE | ||
1455 | int pci_set_dma_max_seg_size(struct pci_dev *dev, unsigned int size) | ||
1456 | { | ||
1457 | return dma_set_max_seg_size(&dev->dev, size); | ||
1458 | } | ||
1459 | EXPORT_SYMBOL(pci_set_dma_max_seg_size); | ||
1460 | #endif | ||
1461 | |||
1454 | /** | 1462 | /** |
1455 | * pcix_get_max_mmrbc - get PCI-X maximum designed memory read byte count | 1463 | * pcix_get_max_mmrbc - get PCI-X maximum designed memory read byte count |
1456 | * @dev: PCI device to query | 1464 | * @dev: PCI device to query |
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 7f5dab34d315..f47d596d5ebc 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -933,8 +933,11 @@ void pci_device_add(struct pci_dev *dev, struct pci_bus *bus) | |||
933 | 933 | ||
934 | set_dev_node(&dev->dev, pcibus_to_node(bus)); | 934 | set_dev_node(&dev->dev, pcibus_to_node(bus)); |
935 | dev->dev.dma_mask = &dev->dma_mask; | 935 | dev->dev.dma_mask = &dev->dma_mask; |
936 | dev->dev.dma_parms = &dev->dma_parms; | ||
936 | dev->dev.coherent_dma_mask = 0xffffffffull; | 937 | dev->dev.coherent_dma_mask = 0xffffffffull; |
937 | 938 | ||
939 | pci_set_dma_max_seg_size(dev, 65536); | ||
940 | |||
938 | /* Fix up broken headers */ | 941 | /* Fix up broken headers */ |
939 | pci_fixup_device(pci_fixup_header, dev); | 942 | pci_fixup_device(pci_fixup_header, dev); |
940 | 943 | ||