Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. #include "radeon_reg.h"
  3. #include "radeon.h"
  4. #include "radeon_asic.h"
  5. #include "syscall.h"
  6.  
  7. int radeon_dynclks = -1;
  8.  
  9. static struct pci_device_id pciidlist[] = {
  10.     radeon_PCI_IDS
  11. };
  12.  
  13. static struct drm_driver kms_driver = {
  14.     .driver_features =
  15.         DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG |
  16.         DRIVER_HAVE_IRQ | DRIVER_HAVE_DMA | DRIVER_IRQ_SHARED | DRIVER_GEM,
  17.     .dev_priv_size = 0,
  18.     .load = radeon_driver_load_kms,
  19.     .firstopen = radeon_driver_firstopen_kms,
  20.     .open = radeon_driver_open_kms,
  21.     .preclose = radeon_driver_preclose_kms,
  22.     .postclose = radeon_driver_postclose_kms,
  23.     .lastclose = radeon_driver_lastclose_kms,
  24.     .unload = radeon_driver_unload_kms,
  25.     .suspend = radeon_suspend_kms,
  26.     .resume = radeon_resume_kms,
  27.     .get_vblank_counter = radeon_get_vblank_counter_kms,
  28.     .enable_vblank = radeon_enable_vblank_kms,
  29.     .disable_vblank = radeon_disable_vblank_kms,
  30.     .master_create = radeon_master_create_kms,
  31.     .master_destroy = radeon_master_destroy_kms,
  32.     .irq_preinstall = radeon_driver_irq_preinstall_kms,
  33.     .irq_postinstall = radeon_driver_irq_postinstall_kms,
  34.     .irq_uninstall = radeon_driver_irq_uninstall_kms,
  35.     .irq_handler = radeon_driver_irq_handler_kms,
  36.     .reclaim_buffers = drm_core_reclaim_buffers,
  37.     .get_map_ofs = drm_core_get_map_ofs,
  38.     .get_reg_ofs = drm_core_get_reg_ofs,
  39.     .ioctls = radeon_ioctls_kms,
  40.     .gem_init_object = radeon_gem_object_init,
  41.     .gem_free_object = radeon_gem_object_free,
  42.     .dma_ioctl = radeon_dma_ioctl_kms,
  43.     .fops = {
  44.          .owner = THIS_MODULE,
  45.          .open = drm_open,
  46.          .release = drm_release,
  47.          .ioctl = drm_ioctl,
  48.          .mmap = radeon_mmap,
  49.          .poll = drm_poll,
  50.          .fasync = drm_fasync,
  51.     },
  52.  
  53.     .pci_driver = {
  54.          .name = DRIVER_NAME,
  55.          .id_table = pciidlist,
  56.          .probe = radeon_pci_probe,
  57.          .remove = radeon_pci_remove,
  58.          .suspend = radeon_pci_suspend,
  59.          .resume = radeon_pci_resume,
  60.     },
  61.  
  62.     .name = DRIVER_NAME,
  63.     .desc = DRIVER_DESC,
  64.     .date = DRIVER_DATE,
  65.     .major = KMS_DRIVER_MAJOR,
  66.     .minor = KMS_DRIVER_MINOR,
  67.     .patchlevel = KMS_DRIVER_PATCHLEVEL,
  68. };
  69.  
  70.  
  71. static int __init radeon_init(void)
  72. {
  73.     radeon_modeset = 1;
  74.     driver = &kms_driver;
  75.     driver->driver_features |= DRIVER_MODESET;
  76.     driver->num_ioctls = radeon_max_kms_ioctl;
  77.  
  78.     return drm_init(driver);
  79. }
  80.  
  81. struct pci_driver
  82. {
  83.     struct list_head node;
  84.     char *name;
  85.     const struct pci_device_id *id_table;   /* must be non-NULL for probe to be called */
  86.     int  (*probe)  (struct pci_dev *dev, const struct pci_device_id *id);   /* New device inserted */
  87.     void (*remove) (struct pci_dev *dev);   /* Device removed (NULL if not a hot-plug capable driver) */
  88.     int  (*suspend) (struct pci_dev *dev, pm_message_t state);      /* Device suspended */
  89.     int  (*suspend_late) (struct pci_dev *dev, pm_message_t state);
  90.     int  (*resume_early) (struct pci_dev *dev);
  91.     int  (*resume) (struct pci_dev *dev);                   /* Device woken up */
  92.     void (*shutdown) (struct pci_dev *dev);
  93.  
  94.     struct pci_error_handlers *err_handler;
  95.     struct device_driver    driver;
  96.     struct pci_dynids dynids;
  97. };
  98.  
  99.