Merge branch 'etnaviv/fixes' of https://git.pengutronix.de/git/lst/linux into drm-fixes
one fix to get a proper DMA configuration in place for the etnaviv virtual device. I'm sending this as a fix, as a dma-mapping change at the ARC architecture side during the 4.19 cycle broke etnaviv on this platform, which gets remedied with this patch, but it also enables ARM64. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Lucas Stach <l.stach@pengutronix.de> Link: https://patchwork.freedesktop.org/patch/msgid/ea1f712bf09bf9439c6b092bf2c2bde7bb01cf5e.camel@pengutronix.de
This commit is contained in:
commit
e89fe98bba
|
@ -592,8 +592,6 @@ static int etnaviv_pdev_probe(struct platform_device *pdev)
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
struct component_match *match = NULL;
|
struct component_match *match = NULL;
|
||||||
|
|
||||||
dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
|
|
||||||
|
|
||||||
if (!dev->platform_data) {
|
if (!dev->platform_data) {
|
||||||
struct device_node *core_node;
|
struct device_node *core_node;
|
||||||
|
|
||||||
|
@ -655,13 +653,30 @@ static int __init etnaviv_init(void)
|
||||||
for_each_compatible_node(np, NULL, "vivante,gc") {
|
for_each_compatible_node(np, NULL, "vivante,gc") {
|
||||||
if (!of_device_is_available(np))
|
if (!of_device_is_available(np))
|
||||||
continue;
|
continue;
|
||||||
pdev = platform_device_register_simple("etnaviv", -1,
|
|
||||||
NULL, 0);
|
pdev = platform_device_alloc("etnaviv", -1);
|
||||||
if (IS_ERR(pdev)) {
|
if (!pdev) {
|
||||||
ret = PTR_ERR(pdev);
|
ret = -ENOMEM;
|
||||||
of_node_put(np);
|
of_node_put(np);
|
||||||
goto unregister_platform_driver;
|
goto unregister_platform_driver;
|
||||||
}
|
}
|
||||||
|
pdev->dev.coherent_dma_mask = DMA_BIT_MASK(40);
|
||||||
|
pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Apply the same DMA configuration to the virtual etnaviv
|
||||||
|
* device as the GPU we found. This assumes that all Vivante
|
||||||
|
* GPUs in the system share the same DMA constraints.
|
||||||
|
*/
|
||||||
|
of_dma_configure(&pdev->dev, np, true);
|
||||||
|
|
||||||
|
ret = platform_device_add(pdev);
|
||||||
|
if (ret) {
|
||||||
|
platform_device_put(pdev);
|
||||||
|
of_node_put(np);
|
||||||
|
goto unregister_platform_driver;
|
||||||
|
}
|
||||||
|
|
||||||
etnaviv_drm = pdev;
|
etnaviv_drm = pdev;
|
||||||
of_node_put(np);
|
of_node_put(np);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue