Re: [PATCH -mm 5/7] powerpc: use generic pci_set_dma_mask andpci_set_consistent_dma_mask

From: Benjamin Herrenschmidt
Date: Sun Feb 14 2010 - 18:36:53 EST


On Fri, 2010-02-12 at 18:33 +0900, FUJITA Tomonori wrote:
> This converts powerpc to use the generic pci_set_dma_mask and
> pci_set_consistent_dma_mask (drivers/pci/pci.c).
>
> The generic pci_set_dma_mask does what powerpc's pci_set_dma_mask
> does.
>
> Unlike powerpc's pci_set_consistent_dma_mask, the gneric
> pci_set_consistent_dma_mask sets only coherent_dma_mask. It doesn't
> work for powerpc? pci_set_consistent_dma_mask API should set only
> coherent_dma_mask?

I don't know why we do it that way, your patch looks correct to me, if
we have a driver bug assuming it does both masks at once, then we'll
fix it.

Do you need me to merge that via powerpc.git or are you happy to carry
it with the rest of your PCI DMA changes ?

> Signed-off-by: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx>

Acked-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> ---
> arch/powerpc/include/asm/dma-mapping.h | 3 ---
> arch/powerpc/kernel/pci-common.c | 15 ---------------
> 2 files changed, 0 insertions(+), 18 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/dma-mapping.h b/arch/powerpc/include/asm/dma-mapping.h
> index 80a973b..c85ef23 100644
> --- a/arch/powerpc/include/asm/dma-mapping.h
> +++ b/arch/powerpc/include/asm/dma-mapping.h
> @@ -127,9 +127,6 @@ static inline int dma_supported(struct device *dev, u64 mask)
> return dma_ops->dma_supported(dev, mask);
> }
>
> -/* We have our own implementation of pci_set_dma_mask() */
> -#define HAVE_ARCH_PCI_SET_DMA_MASK
> -
> static inline int dma_set_mask(struct device *dev, u64 dma_mask)
> {
> struct dma_map_ops *dma_ops = get_dma_ops(dev);
> diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
> index cadbed6..a8bc6f2 100644
> --- a/arch/powerpc/kernel/pci-common.c
> +++ b/arch/powerpc/kernel/pci-common.c
> @@ -63,21 +63,6 @@ struct dma_map_ops *get_pci_dma_ops(void)
> }
> EXPORT_SYMBOL(get_pci_dma_ops);
>
> -int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
> -{
> - return dma_set_mask(&dev->dev, mask);
> -}
> -
> -int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
> -{
> - int rc;
> -
> - rc = dma_set_mask(&dev->dev, mask);
> - dev->dev.coherent_dma_mask = dev->dma_mask;
> -
> - return rc;
> -}
> -
> struct pci_controller *pcibios_alloc_controller(struct device_node *dev)
> {
> struct pci_controller *phb;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/