aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/emgd/pvr/services4/srvkm/env/linux/pvr_drm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/emgd/pvr/services4/srvkm/env/linux/pvr_drm.c')
-rw-r--r--drivers/gpu/drm/emgd/pvr/services4/srvkm/env/linux/pvr_drm.c309
1 files changed, 0 insertions, 309 deletions
diff --git a/drivers/gpu/drm/emgd/pvr/services4/srvkm/env/linux/pvr_drm.c b/drivers/gpu/drm/emgd/pvr/services4/srvkm/env/linux/pvr_drm.c
deleted file mode 100644
index e497d4c9adca..000000000000
--- a/drivers/gpu/drm/emgd/pvr/services4/srvkm/env/linux/pvr_drm.c
+++ /dev/null
@@ -1,309 +0,0 @@
-/**********************************************************************
- *
- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful but, except
- * as otherwise stated in writing, without any warranty; without even the
- * implied warranty of merchantability or fitness for a particular purpose.
- * See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * The full GNU General Public License is included in this distribution in
- * the file called "COPYING".
- *
- * Contact Information:
- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
- *
- ******************************************************************************/
-
-#if defined(SUPPORT_DRI_DRM)
-
-#ifndef AUTOCONF_INCLUDED
- #include <linux/config.h>
-#endif
-
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/version.h>
-#include <linux/fs.h>
-#include <linux/proc_fs.h>
-#include <asm/ioctl.h>
-#include <drm/drmP.h>
-#include <drm/drm.h>
-
-#include "img_defs.h"
-#include "services.h"
-#include "kerneldisplay.h"
-#include "kernelbuffer.h"
-#include "sysconfig.h"
-#include "pvrmmap.h"
-#include "mm.h"
-#include "mmap.h"
-#include "mutex.h"
-#include "pvr_debug.h"
-#include "srvkm.h"
-#include "perproc.h"
-#include "handle.h"
-#include "pvr_bridge_km.h"
-#include "pvr_bridge.h"
-#include "proc.h"
-#include "pvrversion.h"
-#include "linkage.h"
-#include "pvr_drm_shared.h"
-#include "pvr_drm.h"
-
-#define MAKENAME_HELPER(x, y) x ## y
-#define MAKENAME(x, y) MAKENAME_HELPER(x, y)
-
-#define PVR_DRM_NAME "pvrsrvkm"
-#define PVR_DRM_DESC "Imagination Technologies PVR DRM"
-
-#define PVR_PCI_IDS \
- {SYS_SGX_DEV_VENDOR_ID, SYS_SGX_DEV_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0, 0, 0}
-
-struct pci_dev *gpsPVRLDMDev;
-struct drm_device *gpsPVRDRMDev;
-
-#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,24))
-#error "Linux kernel version 2.6.25 or later required for PVR DRM support"
-#endif
-
-#define PVR_DRM_FILE struct drm_file *
-
-#if defined(DISPLAY_CONTROLLER)
-extern int MAKENAME(DISPLAY_CONTROLLER, _Init)(struct drm_device *);
-extern void MAKENAME(DISPLAY_CONTROLLER, _Cleanup)(struct drm_device *);
-#endif
-
-
-#if !defined(SUPPORT_DRI_DRM_EXT)
-static struct pci_device_id asPciIdList[] = {
- PVR_PCI_IDS
-};
-#endif
-
-IMG_INT PVRSRVDrmLoad(struct drm_device *dev, unsigned long flags)
-{
- IMG_INT iRes;
-
- PVR_TRACE(("PVRSRVDrmLoad"));
-
- gpsPVRDRMDev = dev;
- gpsPVRLDMDev = dev->pdev;
-
-#if defined(PDUMP)
- iRes = dbgdrv_init();
- if (iRes != 0)
- {
- return iRes;
- }
-#endif
-
- iRes = PVRCore_Init();
- if (iRes != 0)
- {
- goto exit_dbgdrv_cleanup;
- }
-
-#if defined(DISPLAY_CONTROLLER)
- iRes = MAKENAME(DISPLAY_CONTROLLER, _Init)(dev);
- if (iRes != 0)
- {
- goto exit_pvrcore_cleanup;
- }
-#endif
- return 0;
-
-#if defined(DISPLAY_CONTROLLER)
-exit_pvrcore_cleanup:
- PVRCore_Cleanup();
-#endif
-exit_dbgdrv_cleanup:
-#if defined(PDUMP)
- dbgdrv_cleanup();
-#endif
- return iRes;
-}
-
-IMG_INT PVRSRVDrmUnload(struct drm_device *dev)
-{
- PVR_TRACE(("PVRSRVDrmUnload"));
-
-#if defined(DISPLAY_CONTROLLER)
- MAKENAME(DISPLAY_CONTROLLER, _Cleanup)(dev);
-#endif
-
- PVRCore_Cleanup();
-
-#if defined(PDUMP)
- dbgdrv_cleanup();
-#endif
-
- return 0;
-}
-
-IMG_INT PVRSRVDrmOpen(struct drm_device *dev, struct drm_file *file)
-{
- return PVRSRVOpen(dev, file);
-}
-
-IMG_VOID PVRSRVDrmPostClose(struct drm_device *dev, struct drm_file *file)
-{
- PVRSRVRelease(dev, file);
-}
-
-DRI_DRM_STATIC IMG_INT
-PVRDRMIsMaster(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-{
- return 0;
-}
-
-#if defined(SUPPORT_DRI_DRM_EXT)
-IMG_INT
-PVRDRM_Dummy_ioctl(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-{
- return 0;
-}
-#endif
-
-static IMG_INT
-PVRDRMPCIBusIDField(struct drm_device *dev, IMG_UINT32 *pui32Field, IMG_UINT32 ui32FieldType)
-{
- struct pci_dev *psPCIDev = (struct pci_dev *)dev->pdev;
-
- switch (ui32FieldType)
- {
- case PVR_DRM_PCI_DOMAIN:
- *pui32Field = pci_domain_nr(psPCIDev->bus);
- break;
-
- case PVR_DRM_PCI_BUS:
- *pui32Field = psPCIDev->bus->number;
- break;
-
- case PVR_DRM_PCI_DEV:
- *pui32Field = PCI_SLOT(psPCIDev->devfn);
- break;
-
- case PVR_DRM_PCI_FUNC:
- *pui32Field = PCI_FUNC(psPCIDev->devfn);
- break;
-
- default:
- return -EFAULT;
- }
-
- return 0;
-}
-
-DRI_DRM_STATIC IMG_INT
-PVRDRMUnprivCmd(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile)
-{
- IMG_UINT32 *pui32Args = (IMG_UINT32 *)arg;
- IMG_UINT32 ui32Cmd = pui32Args[0];
- IMG_UINT32 ui32Arg1 = pui32Args[1];
- IMG_UINT32 *pui32OutArg = (IMG_UINT32 *)arg;
-
- switch (ui32Cmd)
- {
- case PVR_DRM_UNPRIV_INIT_SUCCESFUL:
- *pui32OutArg = PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_SUCCESSFUL) ? 1 : 0;
- break;
-
- case PVR_DRM_UNPRIV_BUSID_TYPE:
- *pui32OutArg = PVR_DRM_BUS_TYPE_PCI;
- break;
-
- case PVR_DRM_UNPRIV_BUSID_FIELD:
- return PVRDRMPCIBusIDField(dev, pui32OutArg, ui32Arg1);
-
- default:
- return -EFAULT;
- }
-
- return 0;
-}
-
-#if !defined(SUPPORT_DRI_DRM_EXT)
-struct drm_ioctl_desc sPVRDrmIoctls[] = {
- DRM_IOCTL_DEF(PVR_DRM_SRVKM_IOCTL, PVRSRV_BridgeDispatchKM, 0),
- DRM_IOCTL_DEF(PVR_DRM_IS_MASTER_IOCTL, PVRDRMIsMaster, DRM_MASTER),
- DRM_IOCTL_DEF(PVR_DRM_UNPRIV_IOCTL, PVRDRMUnprivCmd, 0),
-#if defined(PDUMP)
- DRM_IOCTL_DEF(PVR_DRM_DBGDRV_IOCTL, dbgdrv_ioctl, 0),
-#endif
-};
-
-static IMG_INT pvr_max_ioctl = DRM_ARRAY_SIZE(sPVRDrmIoctls);
-
-static struct drm_driver sPVRDrmDriver =
-{
- .driver_features = 0,
- .dev_priv_size = 0,
- .load = PVRSRVDrmLoad,
- .unload = PVRSRVDrmUnload,
- .open = PVRSRVDrmOpen,
- .postclose = PVRSRVDrmPostClose,
- .suspend = PVRSRVDriverSuspend,
- .resume = PVRSRVDriverResume,
- .get_map_ofs = drm_core_get_map_ofs,
- .get_reg_ofs = drm_core_get_reg_ofs,
- .ioctls = sPVRDrmIoctls,
- .fops =
- {
- .owner = THIS_MODULE,
- .open = drm_open,
- .release = drm_release,
- .ioctl = drm_ioctl,
- .mmap = PVRMMap,
- .poll = drm_poll,
- .fasync = drm_fasync,
- },
- .pci_driver =
- {
- .name = PVR_DRM_NAME,
- .id_table = asPciIdList,
- },
-
- .name = PVR_DRM_NAME,
- .desc = PVR_DRM_DESC,
- .date = PVR_BUILD_DATE,
- .major = PVRVERSION_MAJ,
- .minor = PVRVERSION_MIN,
- .patchlevel = PVRVERSION_BUILD,
-};
-
-static IMG_INT __init PVRSRVDrmInit(IMG_VOID)
-{
- IMG_INT iRes;
- sPVRDrmDriver.num_ioctls = pvr_max_ioctl;
-
-
- PVRDPFInit();
-
- iRes = drm_init(&sPVRDrmDriver);
-
- return iRes;
-}
-
-static IMG_VOID __exit PVRSRVDrmExit(IMG_VOID)
-{
- drm_exit(&sPVRDrmDriver);
-}
-
-module_init(PVRSRVDrmInit);
-module_exit(PVRSRVDrmExit);
-#endif
-#endif
-
-