|
|
@@ -597,7 +597,7 @@ static int idma64_probe(struct idma64_chip *chip)
|
|
|
idma64->dma.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
|
|
|
idma64->dma.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
|
|
|
|
|
|
- idma64->dma.dev = chip->dev;
|
|
|
+ idma64->dma.dev = chip->sysdev;
|
|
|
|
|
|
dma_set_max_seg_size(idma64->dma.dev, IDMA64C_CTLH_BLOCK_TS_MASK);
|
|
|
|
|
|
@@ -637,6 +637,7 @@ static int idma64_platform_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct idma64_chip *chip;
|
|
|
struct device *dev = &pdev->dev;
|
|
|
+ struct device *sysdev = dev->parent;
|
|
|
struct resource *mem;
|
|
|
int ret;
|
|
|
|
|
|
@@ -653,11 +654,12 @@ static int idma64_platform_probe(struct platform_device *pdev)
|
|
|
if (IS_ERR(chip->regs))
|
|
|
return PTR_ERR(chip->regs);
|
|
|
|
|
|
- ret = dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
|
|
|
+ ret = dma_coerce_mask_and_coherent(sysdev, DMA_BIT_MASK(64));
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
chip->dev = dev;
|
|
|
+ chip->sysdev = sysdev;
|
|
|
|
|
|
ret = idma64_probe(chip);
|
|
|
if (ret)
|