X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fvideo%2Fsunxvr2500.c;h=b1dde09e70156d31c8cfcd7a5345b241155875d7;hb=754cdd4aba225b74dcc35cc384aeb0c42b505e8b;hp=4010492c692004a379ab64d754646df567a20131;hpb=71227521459872c321e7a581e82723bbc1aa33e1;p=linux-2.6 diff --git a/drivers/video/sunxvr2500.c b/drivers/video/sunxvr2500.c index 4010492c69..b1dde09e70 100644 --- a/drivers/video/sunxvr2500.c +++ b/drivers/video/sunxvr2500.c @@ -9,10 +9,9 @@ #include #include #include +#include #include -#include -#include struct s3d_info { struct fb_info *info; @@ -28,7 +27,7 @@ struct s3d_info { unsigned int depth; unsigned int fb_size; - u32 pseudo_palette[256]; + u32 pseudo_palette[16]; }; static int __devinit s3d_get_props(struct s3d_info *sp) @@ -52,15 +51,14 @@ static int s3d_setcolreg(unsigned regno, { u32 value; - if (regno >= 256) - return 1; + if (regno < 16) { + red >>= 8; + green >>= 8; + blue >>= 8; - red >>= 8; - green >>= 8; - blue >>= 8; - - value = (blue << 24) | (green << 16) | (red << 8); - ((u32 *)info->pseudo_palette)[regno] = value; + value = (blue << 24) | (green << 16) | (red << 8); + ((u32 *)info->pseudo_palette)[regno] = value; + } return 0; } @@ -237,14 +235,14 @@ static void __devexit s3d_pci_unregister(struct pci_dev *pdev) } static struct pci_device_id s3d_pci_table[] = { - { /* XVR-2500 */ - PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x0032), - .driver_data = 1, - }, - { /* XVR-500 */ - PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x07a2), - .driver_data = 0, - }, + { PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x002c), }, + { PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x002d), }, + { PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x002e), }, + { PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x002f), }, + { PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x0030), }, + { PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x0031), }, + { PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x0032), }, + { PCI_DEVICE(PCI_VENDOR_ID_3DLABS, 0x0033), }, { 0, } };