xref: /openbmc/linux/drivers/gpu/drm/vboxvideo/vbox_ttm.c (revision 03ab8e6297acd1bc0eedaa050e2a1635c576fd11)
1131abc56SHans de Goede // SPDX-License-Identifier: MIT
2131abc56SHans de Goede /*
3131abc56SHans de Goede  * Copyright (C) 2013-2017 Oracle Corporation
4131abc56SHans de Goede  * This file is based on ast_ttm.c
5131abc56SHans de Goede  * Copyright 2012 Red Hat Inc.
6131abc56SHans de Goede  * Authors: Dave Airlie <airlied@redhat.com>
7131abc56SHans de Goede  *          Michael Thayer <michael.thayer@oracle.com>
8131abc56SHans de Goede  */
9131abc56SHans de Goede #include <linux/pci.h>
10131abc56SHans de Goede #include <drm/drm_file.h>
11131abc56SHans de Goede #include "vbox_drv.h"
12131abc56SHans de Goede 
vbox_mm_init(struct vbox_private * vbox)13131abc56SHans de Goede int vbox_mm_init(struct vbox_private *vbox)
14131abc56SHans de Goede {
15131abc56SHans de Goede 	int ret;
16*c6dc899eSThomas Zimmermann 	resource_size_t base, size;
17131abc56SHans de Goede 	struct drm_device *dev = &vbox->ddev;
1856492fe9SThomas Zimmermann 	struct pci_dev *pdev = to_pci_dev(dev->dev);
19131abc56SHans de Goede 
20*c6dc899eSThomas Zimmermann 	base = pci_resource_start(pdev, 0);
21*c6dc899eSThomas Zimmermann 	size = pci_resource_len(pdev, 0);
22*c6dc899eSThomas Zimmermann 
23*c6dc899eSThomas Zimmermann 	/* Don't fail on errors, but performance might be reduced. */
24*c6dc899eSThomas Zimmermann 	devm_arch_phys_wc_add(&pdev->dev, base, size);
25*c6dc899eSThomas Zimmermann 
26*c6dc899eSThomas Zimmermann 	ret = drmm_vram_helper_init(dev, base, vbox->available_vram_size);
27429fc6f9STian Tao 	if (ret) {
2894065bf5SThomas Zimmermann 		DRM_ERROR("Error initializing VRAM MM; %d\n", ret);
29131abc56SHans de Goede 		return ret;
30131abc56SHans de Goede 	}
31131abc56SHans de Goede 
32131abc56SHans de Goede 	return 0;
33131abc56SHans de Goede }
34