Set the coherent_dma_mask for the PS3 ehci, ohci, and snd devices.

Silences WARN_ON_ONCE messages emitted by the dma_alloc_attrs() routine.

Reported-by: Fredrik Noring <nor...@nocrew.org>
Signed-off-by: Geoff Levand <ge...@infradead.org>
---
Hi Michael,

This just silences some warnings.  Can you take it through the powerpc
tree?

-Geoff


 drivers/usb/host/ehci-ps3.c | 6 ++++--
 drivers/usb/host/ohci-ps3.c | 6 ++++--
 sound/ppc/snd_ps3.c         | 5 +++++
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/host/ehci-ps3.c b/drivers/usb/host/ehci-ps3.c
index 8c733492d8fe..454d8c624a3f 100644
--- a/drivers/usb/host/ehci-ps3.c
+++ b/drivers/usb/host/ehci-ps3.c
@@ -86,7 +86,7 @@ static int ps3_ehci_probe(struct ps3_system_bus_device *dev)
        int result;
        struct usb_hcd *hcd;
        unsigned int virq;
-       static u64 dummy_mask = DMA_BIT_MASK(32);
+       static u64 dummy_mask;
 
        if (usb_disabled()) {
                result = -ENODEV;
@@ -131,7 +131,9 @@ static int ps3_ehci_probe(struct ps3_system_bus_device *dev)
                goto fail_irq;
        }
 
-       dev->core.dma_mask = &dummy_mask; /* FIXME: for improper usb code */
+       dummy_mask = DMA_BIT_MASK(32);
+       dev->core.dma_mask = &dummy_mask;
+       dma_set_coherent_mask(&dev->core, dummy_mask);
 
        hcd = usb_create_hcd(&ps3_ehci_hc_driver, &dev->core, 
dev_name(&dev->core));
 
diff --git a/drivers/usb/host/ohci-ps3.c b/drivers/usb/host/ohci-ps3.c
index 20a23d795adf..395f9d3bc849 100644
--- a/drivers/usb/host/ohci-ps3.c
+++ b/drivers/usb/host/ohci-ps3.c
@@ -69,7 +69,7 @@ static int ps3_ohci_probe(struct ps3_system_bus_device *dev)
        int result;
        struct usb_hcd *hcd;
        unsigned int virq;
-       static u64 dummy_mask = DMA_BIT_MASK(32);
+       static u64 dummy_mask;
 
        if (usb_disabled()) {
                result = -ENODEV;
@@ -115,7 +115,9 @@ static int ps3_ohci_probe(struct ps3_system_bus_device *dev)
                goto fail_irq;
        }
 
-       dev->core.dma_mask = &dummy_mask; /* FIXME: for improper usb code */
+       dummy_mask = DMA_BIT_MASK(32);
+       dev->core.dma_mask = &dummy_mask;
+       dma_set_coherent_mask(&dev->core, dummy_mask);
 
        hcd = usb_create_hcd(&ps3_ohci_hc_driver, &dev->core, 
dev_name(&dev->core));
 
diff --git a/sound/ppc/snd_ps3.c b/sound/ppc/snd_ps3.c
index 36f34f434ecb..abe031c9d592 100644
--- a/sound/ppc/snd_ps3.c
+++ b/sound/ppc/snd_ps3.c
@@ -930,6 +930,7 @@ static int snd_ps3_driver_probe(struct 
ps3_system_bus_device *dev)
 {
        int i, ret;
        u64 lpar_addr, lpar_size;
+       static u64 dummy_mask;
 
        if (WARN_ON(!firmware_has_feature(FW_FEATURE_PS3_LV1)))
                return -ENODEV;
@@ -970,6 +971,10 @@ static int snd_ps3_driver_probe(struct 
ps3_system_bus_device *dev)
                goto clean_mmio;
        }
 
+       dummy_mask = DMA_BIT_MASK(32);
+       dev->core.dma_mask = &dummy_mask;
+       dma_set_coherent_mask(&dev->core, dummy_mask);
+
        snd_ps3_audio_set_base_addr(dev->d_region->bus_addr);
 
        /* CONFIG_SND_PS3_DEFAULT_START_DELAY */
-- 
2.14.1

Reply via email to