Message ID | 1468867177-15007-5-git-send-email-okaya@codeaurora.org (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On Tue, Jul 19, 2016 at 12:09:31AM +0530, Sinan Kaya wrote: > Configure the DMA bindings for the device tree based firmware. > > Signed-off-by: Sinan Kaya <okaya@codeaurora.org> > --- > drivers/dma/qcom/hidma_mgmt.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/dma/qcom/hidma_mgmt.c b/drivers/dma/qcom/hidma_mgmt.c > index c0e3653..fb30730 100644 > --- a/drivers/dma/qcom/hidma_mgmt.c > +++ b/drivers/dma/qcom/hidma_mgmt.c > @@ -375,8 +375,10 @@ static int __init hidma_mgmt_of_populate_channels(struct device_node *np) > ret = -ENODEV; > goto out; > } > + of_node_get(child); > + new_pdev->dev.of_node = child; > of_dma_configure(&new_pdev->dev, child); > - > + of_msi_configure(&new_pdev->dev, child); How would this work on non MSI platforms?
On 7/24/2016 2:33 AM, Vinod Koul wrote: > On Tue, Jul 19, 2016 at 12:09:31AM +0530, Sinan Kaya wrote: >> Configure the DMA bindings for the device tree based firmware. >> >> Signed-off-by: Sinan Kaya <okaya@codeaurora.org> >> --- >> drivers/dma/qcom/hidma_mgmt.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/dma/qcom/hidma_mgmt.c b/drivers/dma/qcom/hidma_mgmt.c >> index c0e3653..fb30730 100644 >> --- a/drivers/dma/qcom/hidma_mgmt.c >> +++ b/drivers/dma/qcom/hidma_mgmt.c >> @@ -375,8 +375,10 @@ static int __init hidma_mgmt_of_populate_channels(struct device_node *np) >> ret = -ENODEV; >> goto out; >> } >> + of_node_get(child); >> + new_pdev->dev.of_node = child; >> of_dma_configure(&new_pdev->dev, child); >> - >> + of_msi_configure(&new_pdev->dev, child); > > How would this work on non MSI platforms? > The way it works is MSI on OF platforms relies on an optional msi-parent and msi-cells attribute present in the device tree firmware. If these attributes do not exist, the function bails out. The function would create the MSI bindings only if the correct attributes are present.
diff --git a/drivers/dma/qcom/hidma_mgmt.c b/drivers/dma/qcom/hidma_mgmt.c index c0e3653..fb30730 100644 --- a/drivers/dma/qcom/hidma_mgmt.c +++ b/drivers/dma/qcom/hidma_mgmt.c @@ -375,8 +375,10 @@ static int __init hidma_mgmt_of_populate_channels(struct device_node *np) ret = -ENODEV; goto out; } + of_node_get(child); + new_pdev->dev.of_node = child; of_dma_configure(&new_pdev->dev, child); - + of_msi_configure(&new_pdev->dev, child); kfree(res); res = NULL; }
Configure the DMA bindings for the device tree based firmware. Signed-off-by: Sinan Kaya <okaya@codeaurora.org> --- drivers/dma/qcom/hidma_mgmt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)