Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1353265
| From | Bjorn Helgaas <helgaas@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 3/3] pci: move pci_dma_* helpers to common code |
| Date | 2016-03-08 18:50 +0100 |
| Message-ID | <ratVH-47w-61@gated-at.bofh.it> (permalink) |
| References | <r9IDn-6Jh-1@gated-at.bofh.it> <r9IDo-6Jh-11@gated-at.bofh.it> <ra84O-6rV-9@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Mon, Mar 07, 2016 at 12:28:48PM -0600, Bjorn Helgaas wrote:
> commit fe537670eab767157eecc50538bd28e8d9b0ce9f
> Author: Bjorn Helgaas <bhelgaas@google.com>
> Date: Mon Mar 7 11:39:16 2016 -0600
>
> PCI: Consolidate PCI DMA constants and interfaces in linux/pci-dma-compat.h
>
> Christoph added a generic include/linux/pci-dma-compat.h, so now there's
> one place with most of the PCI DMA interfaces. Move more PCI DMA-related
> things there:
>
> - The PCI_DMA_* direction constants from linux/pci.h
> - The pci_set_dma_max_seg_size() and pci_set_dma_seg_boundary()
> CONFIG_PCI implementations from drivers/pci/pci.c
> - The pci_set_dma_max_seg_size() and pci_set_dma_seg_boundary()
> !CONFIG_PCI stubs from linux/pci.h
> - The pci_set_dma_mask() and pci_set_consistent_dma_mask()
> !CONFIG_PCI stubs from linux/pci.h
>
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
I applied the patch below to pci/misc for v4.6.
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 64c0a12..0a9c8db 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -3385,18 +3385,6 @@ bool pci_check_and_unmask_intx(struct pci_dev *dev)
> }
> EXPORT_SYMBOL_GPL(pci_check_and_unmask_intx);
>
> -int pci_set_dma_max_seg_size(struct pci_dev *dev, unsigned int size)
> -{
> - return dma_set_max_seg_size(&dev->dev, size);
> -}
> -EXPORT_SYMBOL(pci_set_dma_max_seg_size);
> -
> -int pci_set_dma_seg_boundary(struct pci_dev *dev, unsigned long mask)
> -{
> - return dma_set_seg_boundary(&dev->dev, mask);
> -}
> -EXPORT_SYMBOL(pci_set_dma_seg_boundary);
> -
> /**
> * pci_wait_for_pending_transaction - waits for pending transaction
> * @dev: the PCI device to operate on
> diff --git a/include/linux/pci-dma-compat.h b/include/linux/pci-dma-compat.h
> index eafce7b..39726ca 100644
> --- a/include/linux/pci-dma-compat.h
> +++ b/include/linux/pci-dma-compat.h
> @@ -6,6 +6,12 @@
>
> #include <linux/dma-mapping.h>
>
> +/* This defines the direction arg to the DMA mapping routines. */
> +#define PCI_DMA_BIDIRECTIONAL 0
> +#define PCI_DMA_TODEVICE 1
> +#define PCI_DMA_FROMDEVICE 2
> +#define PCI_DMA_NONE 3
> +
> static inline void *
> pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
> dma_addr_t *dma_handle)
> @@ -113,6 +119,29 @@ static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
> {
> return dma_set_coherent_mask(&dev->dev, mask);
> }
> +
> +static inline int pci_set_dma_max_seg_size(struct pci_dev *dev,
> + unsigned int size)
> +{
> + return dma_set_max_seg_size(&dev->dev, size);
> +}
> +
> +static inline int pci_set_dma_seg_boundary(struct pci_dev *dev,
> + unsigned long mask)
> +{
> + return dma_set_seg_boundary(&dev->dev, mask);
> +}
> +#else
> +static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
> +{ return -EIO; }
> +static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
> +{ return -EIO; }
> +static inline int pci_set_dma_max_seg_size(struct pci_dev *dev,
> + unsigned int size)
> +{ return -EIO; }
> +static inline int pci_set_dma_seg_boundary(struct pci_dev *dev,
> + unsigned long mask)
> +{ return -EIO; }
> #endif
>
> #endif
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 5db6e0c..5049bd6 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -70,12 +70,6 @@ enum pci_mmap_state {
> pci_mmap_mem
> };
>
> -/* This defines the direction arg to the DMA mapping routines. */
> -#define PCI_DMA_BIDIRECTIONAL 0
> -#define PCI_DMA_TODEVICE 1
> -#define PCI_DMA_FROMDEVICE 2
> -#define PCI_DMA_NONE 3
> -
> /*
> * For PCI devices, the region numbers are assigned this way:
> */
> @@ -1038,8 +1032,6 @@ void pci_intx(struct pci_dev *dev, int enable);
> bool pci_intx_mask_supported(struct pci_dev *dev);
> bool pci_check_and_mask_intx(struct pci_dev *dev);
> bool pci_check_and_unmask_intx(struct pci_dev *dev);
> -int pci_set_dma_max_seg_size(struct pci_dev *dev, unsigned int size);
> -int pci_set_dma_seg_boundary(struct pci_dev *dev, unsigned long mask);
> int pci_wait_for_pending(struct pci_dev *dev, int pos, u16 mask);
> int pci_wait_for_pending_transaction(struct pci_dev *dev);
> int pcix_get_max_mmrbc(struct pci_dev *dev);
> @@ -1255,6 +1247,7 @@ resource_size_t pcibios_iov_resource_alignment(struct pci_dev *dev, int resno);
>
> int pci_set_vga_state(struct pci_dev *pdev, bool decode,
> unsigned int command_bits, u32 flags);
> +
> /* kmem_cache style wrapper around pci_alloc_consistent() */
>
> #include <linux/pci-dma.h>
> @@ -1466,16 +1459,6 @@ static inline struct pci_dev *pci_get_class(unsigned int class,
> static inline void pci_set_master(struct pci_dev *dev) { }
> static inline int pci_enable_device(struct pci_dev *dev) { return -EIO; }
> static inline void pci_disable_device(struct pci_dev *dev) { }
> -static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
> -{ return -EIO; }
> -static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
> -{ return -EIO; }
> -static inline int pci_set_dma_max_seg_size(struct pci_dev *dev,
> - unsigned int size)
> -{ return -EIO; }
> -static inline int pci_set_dma_seg_boundary(struct pci_dev *dev,
> - unsigned long mask)
> -{ return -EIO; }
> static inline int pci_assign_resource(struct pci_dev *dev, int i)
> { return -EBUSY; }
> static inline int __pci_register_driver(struct pci_driver *drv,
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arch" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
two small PCI header cleanups Christoph Hellwig <hch@lst.de> - 2016-03-06 16:20 +0100
[PATCH 1/3] frv: remove stray pci_{alloc,free}_consistent declaration Christoph Hellwig <hch@lst.de> - 2016-03-06 16:20 +0100
Re: [PATCH 1/3] frv: remove stray pci_{alloc,free}_consistent declaration Bjorn Helgaas <helgaas@kernel.org> - 2016-03-07 19:00 +0100
[PATCH 3/3] pci: move pci_dma_* helpers to common code Christoph Hellwig <hch@lst.de> - 2016-03-06 16:20 +0100
Re: [PATCH 3/3] pci: move pci_dma_* helpers to common code Bjorn Helgaas <helgaas@kernel.org> - 2016-03-07 19:30 +0100
Re: [PATCH 3/3] pci: move pci_dma_* helpers to common code Christoph Hellwig <hch@lst.de> - 2016-03-08 08:40 +0100
Re: [PATCH 3/3] pci: move pci_dma_* helpers to common code Christoph Hellwig <hch@lst.de> - 2016-03-08 18:50 +0100
Re: [PATCH 3/3] pci: move pci_dma_* helpers to common code Bjorn Helgaas <helgaas@kernel.org> - 2016-03-08 19:00 +0100
Re: [PATCH 3/3] pci: move pci_dma_* helpers to common code Bjorn Helgaas <helgaas@kernel.org> - 2016-03-08 18:50 +0100
[PATCH 2/3] pci: move pci-bridge.h out of asm-generic Christoph Hellwig <hch@lst.de> - 2016-03-06 16:20 +0100
Re: [PATCH 2/3] pci: move pci-bridge.h out of asm-generic Bjorn Helgaas <helgaas@kernel.org> - 2016-03-07 17:40 +0100
Re: [PATCH 2/3] pci: move pci-bridge.h out of asm-generic Christoph Hellwig <hch@lst.de> - 2016-03-07 17:40 +0100
Re: two small PCI header cleanups Arnd Bergmann <arnd@arndb.de> - 2016-03-06 21:50 +0100
Re: two small PCI header cleanups Christoph Hellwig <hch@lst.de> - 2016-03-06 22:00 +0100
csiph-web