diff --git a/drivers/char/drm/Kconfig b/drivers/char/drm/Kconfig index 56ace9d..ee97581 100644 --- a/drivers/char/drm/Kconfig +++ b/drivers/char/drm/Kconfig @@ -16,6 +16,13 @@ config DRM details. You should also select and configure AGP (/dev/agpgart) support. +config DRM_BLADE + tristate "Trident Cyberblade" + depends on DRM && PCI + help + Choose this option if you have a Trident Cyberblade device. If M is + selected, the module will be called blade. + config DRM_TDFX tristate "3dfx Banshee/Voodoo3+" depends on DRM && PCI diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile index 9d180c4..a212175 100644 --- a/drivers/char/drm/Makefile +++ b/drivers/char/drm/Makefile @@ -8,6 +8,7 @@ drm-objs := drm_auth.o drm_bufs.o drm drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o \ drm_sysfs.o +blade-objs := blade_drv.o tdfx-objs := tdfx_drv.o r128-objs := r128_drv.o r128_cce.o r128_state.o r128_irq.o mga-objs := mga_drv.o mga_dma.o mga_state.o mga_warp.o mga_irq.o @@ -30,6 +31,7 @@ endif obj-$(CONFIG_DRM) += drm.o obj-$(CONFIG_DRM_TDFX) += tdfx.o +obj-$(CONFIG_DRM_BLADE) += blade.o obj-$(CONFIG_DRM_R128) += r128.o obj-$(CONFIG_DRM_RADEON)+= radeon.o obj-$(CONFIG_DRM_MGA) += mga.o diff --git a/drivers/char/drm/drm_pciids.h b/drivers/char/drm/drm_pciids.h index 2c17e88..0441d52 100644 --- a/drivers/char/drm/drm_pciids.h +++ b/drivers/char/drm/drm_pciids.h @@ -245,3 +245,5 @@ {0x8086, 0x27a2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ {0, 0, 0} +#define blade_PCI_IDS \ + {0x1023, 0x8500, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0} --- /dev/null 2006-03-02 18:11:38.777108750 -0800 +++ drivers/char/drm/blade_drv.c 2006-03-04 08:51:24.000000000 -0800 @@ -0,0 +1,64 @@ +#include +#include "drm_pciids.h" +#include "drmP.h" + +#define DRIVER_AUTHOR "Jesse Barnes" + +#define DRIVER_NAME "blade_drm" +#define DRIVER_DESC "Trident CyberBlade" +#define DRIVER_DATE "20060303" + +#define DRIVER_MAJOR 1 +#define DRIVER_MINOR 0 +#define DRIVER_PATCHLEVEL 0 + +static struct pci_device_id blade_pciids[] = { + blade_PCI_IDS +}; + +#define BLADE_FEATURES +static struct drm_driver blade_driver = { + .driver_features = (DRIVER_USE_AGP | DRIVER_USE_MTRR | + DRIVER_PCI_DMA | DRIVER_SG | DRIVER_HAVE_DMA | + DRIVER_HAVE_IRQ | DRIVER_FB_DMA), /* IRQ_VBL? */ + .reclaim_buffers = drm_core_reclaim_buffers, + .get_map_ofs = drm_core_get_map_ofs, + .get_reg_ofs = drm_core_get_reg_ofs, + .fops = { + .owner = THIS_MODULE, + .open = drm_open, + .release = drm_release, + .ioctl = drm_ioctl, + .mmap = drm_mmap, + .poll = drm_poll, + .fasync = drm_fasync, + }, + .pci_driver = { + .name = DRIVER_NAME, + .id_table = blade_pciids, + }, + + .name = DRIVER_NAME, + .desc = DRIVER_DESC, + .date = DRIVER_DATE, + .major = DRIVER_MAJOR, + .minor = DRIVER_MINOR, + .patchlevel = DRIVER_PATCHLEVEL, +}; + +static int __init blade_init(void) +{ + return drm_init(&blade_driver); +} + +static void __exit blade_exit(void) +{ + drm_exit(&blade_driver); +} + +module_init(blade_init); +module_exit(blade_exit); + +MODULE_AUTHOR(DRIVER_AUTHOR); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL");