The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/drm/via_drv.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* via_drv.c -- VIA unichrome driver -*- linux-c -*-
    2  * Created: Fri Aug 12 2005 by anholt@FreeBSD.org
    3  */
    4 /*-
    5  * Copyright 2005 Eric Anholt
    6  * All Rights Reserved.
    7  *
    8  * Permission is hereby granted, free of charge, to any person obtaining a
    9  * copy of this software and associated documentation files (the "Software"),
   10  * to deal in the Software without restriction, including without limitation
   11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
   12  * and/or sell copies of the Software, and to permit persons to whom the
   13  * Software is furnished to do so, subject to the following conditions:
   14  *
   15  * The above copyright notice and this permission notice (including the next
   16  * paragraph) shall be included in all copies or substantial portions of the
   17  * Software.
   18  *
   19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   20  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   21  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
   22  * ERIC ANHOLT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
   23  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
   24  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   25  *
   26  * Authors:
   27  *    Eric Anholt <anholt@FreeBSD.org>
   28  *
   29  */
   30 
   31 #include <sys/cdefs.h>
   32 __FBSDID("$FreeBSD: releng/9.0/sys/dev/drm/via_drv.c 203288 2010-01-31 14:30:39Z rnoland $");
   33 
   34 #include "dev/drm/drmP.h"
   35 #include "dev/drm/drm.h"
   36 #include "dev/drm/via_drm.h"
   37 #include "dev/drm/via_drv.h"
   38 #include "dev/drm/drm_pciids.h"
   39 
   40 /* drv_PCI_IDs comes from drm_pciids.h, generated from drm_pciids.txt. */
   41 static drm_pci_id_list_t via_pciidlist[] = {
   42         viadrv_PCI_IDS
   43 };
   44 
   45 static void via_configure(struct drm_device *dev)
   46 {
   47         dev->driver->driver_features =
   48             DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_HAVE_IRQ;
   49 
   50         dev->driver->buf_priv_size      = sizeof(drm_via_private_t);
   51         dev->driver->load               = via_driver_load;
   52         dev->driver->unload             = via_driver_unload;
   53         dev->driver->lastclose          = via_lastclose;
   54         dev->driver->get_vblank_counter = via_get_vblank_counter;
   55         dev->driver->enable_vblank      = via_enable_vblank;
   56         dev->driver->disable_vblank     = via_disable_vblank;
   57         dev->driver->irq_preinstall     = via_driver_irq_preinstall;
   58         dev->driver->irq_postinstall    = via_driver_irq_postinstall;
   59         dev->driver->irq_uninstall      = via_driver_irq_uninstall;
   60         dev->driver->irq_handler        = via_driver_irq_handler;
   61         dev->driver->dma_quiescent      = via_driver_dma_quiescent;
   62 
   63         dev->driver->ioctls             = via_ioctls;
   64         dev->driver->max_ioctl          = via_max_ioctl;
   65 
   66         dev->driver->name               = DRIVER_NAME;
   67         dev->driver->desc               = DRIVER_DESC;
   68         dev->driver->date               = DRIVER_DATE;
   69         dev->driver->major              = DRIVER_MAJOR;
   70         dev->driver->minor              = DRIVER_MINOR;
   71         dev->driver->patchlevel         = DRIVER_PATCHLEVEL;
   72 }
   73 
   74 static int
   75 via_probe(device_t kdev)
   76 {
   77         return drm_probe(kdev, via_pciidlist);
   78 }
   79 
   80 static int
   81 via_attach(device_t kdev)
   82 {
   83         struct drm_device *dev = device_get_softc(kdev);
   84 
   85         dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER,
   86             M_WAITOK | M_ZERO);
   87 
   88         via_configure(dev);
   89 
   90         return drm_attach(kdev, via_pciidlist);
   91 }
   92 
   93 static int
   94 via_detach(device_t kdev)
   95 {
   96         struct drm_device *dev = device_get_softc(kdev);
   97         int ret;
   98 
   99         ret = drm_detach(kdev);
  100 
  101         free(dev->driver, DRM_MEM_DRIVER);
  102 
  103         return ret;
  104 }
  105 
  106 static device_method_t via_methods[] = {
  107         /* Device interface */
  108         DEVMETHOD(device_probe,         via_probe),
  109         DEVMETHOD(device_attach,        via_attach),
  110         DEVMETHOD(device_detach,        via_detach),
  111 
  112         { 0, 0 }
  113 };
  114 
  115 static driver_t via_driver = {
  116         "drm",
  117         via_methods,
  118         sizeof(struct drm_device)
  119 };
  120 
  121 extern devclass_t drm_devclass;
  122 DRIVER_MODULE(via, vgapci, via_driver, drm_devclass, 0, 0);
  123 MODULE_DEPEND(via, drm, 1, 1, 1);

Cache object: b2e1061faef51c106ed0947a4940db8e


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.