On Nov 22, 2012, at 10:29 PM, Yuanquan Chen wrote: > On powerpc arch, dma_ops of rescanned pci device after system's booting up > won't be > initialized by system, so it will fail to execute the dma_set_mask in the > device's > driver. Initialize it to solve this issue. > > Signed-off-by: Yuanquan Chen <b41...@freescale.com> > --- > arch/powerpc/include/asm/dma-mapping.h | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-)
This is not the right way to get the dma_ops setup. You need to find some other point for the hotplug scenario to get the dma_ops setup. - k > > diff --git a/arch/powerpc/include/asm/dma-mapping.h > b/arch/powerpc/include/asm/dma-mapping.h > index 7816087..22eae53 100644 > --- a/arch/powerpc/include/asm/dma-mapping.h > +++ b/arch/powerpc/include/asm/dma-mapping.h > @@ -126,8 +126,11 @@ static inline int dma_supported(struct device *dev, u64 > mask) > { > struct dma_map_ops *dma_ops = get_dma_ops(dev); > > - if (unlikely(dma_ops == NULL)) > - return 0; > + if (unlikely(dma_ops == NULL)) { > + set_dma_ops(dev, &dma_direct_ops); > + set_dma_offset(dev, PCI_DRAM_OFFSET); > + dma_ops = &dma_direct_ops; > + } > if (dma_ops->dma_supported == NULL) > return 1; > return dma_ops->dma_supported(dev, mask); > -- > 1.7.9.5 > > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev