aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/xgifb/vb_init.c
diff options
context:
space:
mode:
authorAaro Koskinen <aaro.koskinen@iki.fi>2011-10-11 14:47:32 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-12 11:51:48 -0400
commitee055a48ce6272016cbb7e6f1a7de151bab7e1e0 (patch)
tree8e1656ca50b1ae5fea968c3c7e37992eb0308e28 /drivers/staging/xgifb/vb_init.c
parent2af1a29da78d8ba8076556e75a8e69f443ecf33d (diff)
staging: xgifb: move XGINew_ChannelAB into vb_device_info
Move the memory channel info into vb_device_info. Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/xgifb/vb_init.c')
-rw-r--r--drivers/staging/xgifb/vb_init.c52
1 files changed, 26 insertions, 26 deletions
diff --git a/drivers/staging/xgifb/vb_init.c b/drivers/staging/xgifb/vb_init.c
index 58b23303814..036d1e41e0d 100644
--- a/drivers/staging/xgifb/vb_init.c
+++ b/drivers/staging/xgifb/vb_init.c
@@ -15,7 +15,7 @@
15 15
16#include <linux/io.h> 16#include <linux/io.h>
17 17
18static unsigned char XGINew_ChannelAB, XGINew_DataBusWidth; 18static unsigned char XGINew_DataBusWidth;
19 19
20static unsigned short XGINew_DDRDRAM_TYPE340[4][5] = { 20static unsigned short XGINew_DDRDRAM_TYPE340[4][5] = {
21 { 2, 13, 9, 64, 0x45}, 21 { 2, 13, 9, 64, 0x45},
@@ -619,10 +619,10 @@ static unsigned short XGINew_SetDRAMSizeReg(int index,
619 619
620 data = 0; 620 data = 0;
621 621
622 if (XGINew_ChannelAB == 3) 622 if (pVBInfo->ram_channel == 3)
623 ChannelNo = 4; 623 ChannelNo = 4;
624 else 624 else
625 ChannelNo = XGINew_ChannelAB; 625 ChannelNo = pVBInfo->ram_channel;
626 626
627 if (ChannelNo * RankSize <= 256) { 627 if (ChannelNo * RankSize <= 256) {
628 while ((RankSize >>= 1) > 0) 628 while ((RankSize >>= 1) > 0)
@@ -636,7 +636,7 @@ static unsigned short XGINew_SetDRAMSizeReg(int index,
636 (xgifb_reg_get(pVBInfo->P3c4, 0x14) & 0x0F) | 636 (xgifb_reg_get(pVBInfo->P3c4, 0x14) & 0x0F) |
637 (data & 0xF0)); 637 (data & 0xF0));
638 638
639 /* data |= XGINew_ChannelAB << 2; */ 639 /* data |= pVBInfo->ram_channel << 2; */
640 /* data |= (XGINew_DataBusWidth / 64) << 1; */ 640 /* data |= (XGINew_DataBusWidth / 64) << 1; */
641 /* xgifb_reg_set(pVBInfo->P3c4, 0x14, data); */ 641 /* xgifb_reg_set(pVBInfo->P3c4, 0x14, data); */
642 642
@@ -663,10 +663,10 @@ static unsigned short XGINew_SetDRAMSize20Reg(int index,
663 663
664 data = 0; 664 data = 0;
665 665
666 if (XGINew_ChannelAB == 3) 666 if (pVBInfo->ram_channel == 3)
667 ChannelNo = 4; 667 ChannelNo = 4;
668 else 668 else
669 ChannelNo = XGINew_ChannelAB; 669 ChannelNo = pVBInfo->ram_channel;
670 670
671 if (ChannelNo * RankSize <= 256) { 671 if (ChannelNo * RankSize <= 256) {
672 while ((RankSize >>= 1) > 0) 672 while ((RankSize >>= 1) > 0)
@@ -681,7 +681,7 @@ static unsigned short XGINew_SetDRAMSize20Reg(int index,
681 (data & 0xF0)); 681 (data & 0xF0));
682 udelay(15); 682 udelay(15);
683 683
684 /* data |= XGINew_ChannelAB << 2; */ 684 /* data |= pVBInfo->ram_channel << 2; */
685 /* data |= (XGINew_DataBusWidth / 64) << 1; */ 685 /* data |= (XGINew_DataBusWidth / 64) << 1; */
686 /* xgifb_reg_set(pVBInfo->P3c4, 0x14, data); */ 686 /* xgifb_reg_set(pVBInfo->P3c4, 0x14, data); */
687 687
@@ -746,7 +746,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
746 case XG21: 746 case XG21:
747 data = xgifb_reg_get(pVBInfo->P3d4, 0x97); 747 data = xgifb_reg_get(pVBInfo->P3d4, 0x97);
748 data = data & 0x01; 748 data = data & 0x01;
749 XGINew_ChannelAB = 1; /* XG20 "JUST" one channel */ 749 pVBInfo->ram_channel = 1; /* XG20 "JUST" one channel */
750 750
751 if (data == 0) { /* Single_32_16 */ 751 if (data == 0) { /* Single_32_16 */
752 752
@@ -851,20 +851,20 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
851 851
852 case XG27: 852 case XG27:
853 XGINew_DataBusWidth = 16; /* 16 bits */ 853 XGINew_DataBusWidth = 16; /* 16 bits */
854 XGINew_ChannelAB = 1; /* Single channel */ 854 pVBInfo->ram_channel = 1; /* Single channel */
855 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x51); /* 32Mx16 bit*/ 855 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x51); /* 32Mx16 bit*/
856 break; 856 break;
857 case XG41: 857 case XG41:
858 if (XGINew_CheckFrequence(pVBInfo) == 1) { 858 if (XGINew_CheckFrequence(pVBInfo) == 1) {
859 XGINew_DataBusWidth = 32; /* 32 bits */ 859 XGINew_DataBusWidth = 32; /* 32 bits */
860 XGINew_ChannelAB = 3; /* Quad Channel */ 860 pVBInfo->ram_channel = 3; /* Quad Channel */
861 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1); 861 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1);
862 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x4C); 862 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x4C);
863 863
864 if (XGINew_ReadWriteRest(25, 23, pVBInfo) == 1) 864 if (XGINew_ReadWriteRest(25, 23, pVBInfo) == 1)
865 return; 865 return;
866 866
867 XGINew_ChannelAB = 2; /* Dual channels */ 867 pVBInfo->ram_channel = 2; /* Dual channels */
868 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x48); 868 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x48);
869 869
870 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1) 870 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1)
@@ -875,7 +875,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
875 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1) 875 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1)
876 return; 876 return;
877 877
878 XGINew_ChannelAB = 3; 878 pVBInfo->ram_channel = 3;
879 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0x21); 879 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0x21);
880 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x3C); 880 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x3C);
881 881
@@ -890,14 +890,14 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
890 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x39); 890 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x39);
891 } else { /* DDR */ 891 } else { /* DDR */
892 XGINew_DataBusWidth = 64; /* 64 bits */ 892 XGINew_DataBusWidth = 64; /* 64 bits */
893 XGINew_ChannelAB = 2; /* Dual channels */ 893 pVBInfo->ram_channel = 2; /* Dual channels */
894 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1); 894 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1);
895 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x5A); 895 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x5A);
896 896
897 if (XGINew_ReadWriteRest(25, 24, pVBInfo) == 1) 897 if (XGINew_ReadWriteRest(25, 24, pVBInfo) == 1)
898 return; 898 return;
899 899
900 XGINew_ChannelAB = 1; /* Single channels */ 900 pVBInfo->ram_channel = 1; /* Single channels */
901 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x52); 901 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x52);
902 902
903 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1) 903 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1)
@@ -908,14 +908,14 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
908 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1) 908 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1)
909 return; 909 return;
910 910
911 XGINew_ChannelAB = 2; /* Dual channels */ 911 pVBInfo->ram_channel = 2; /* Dual channels */
912 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0x21); 912 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0x21);
913 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x4A); 913 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x4A);
914 914
915 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1) 915 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1)
916 return; 916 return;
917 917
918 XGINew_ChannelAB = 1; /* Single channels */ 918 pVBInfo->ram_channel = 1; /* Single channels */
919 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x42); 919 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x42);
920 920
921 if (XGINew_ReadWriteRest(8, 4, pVBInfo) == 1) 921 if (XGINew_ReadWriteRest(8, 4, pVBInfo) == 1)
@@ -936,7 +936,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
936 */ 936 */
937 if (XGINew_CheckFrequence(pVBInfo) == 1) { /* DDRII, DDR2x */ 937 if (XGINew_CheckFrequence(pVBInfo) == 1) { /* DDRII, DDR2x */
938 XGINew_DataBusWidth = 32; /* 32 bits */ 938 XGINew_DataBusWidth = 32; /* 32 bits */
939 XGINew_ChannelAB = 2; /* 2 Channel */ 939 pVBInfo->ram_channel = 2; /* 2 Channel */
940 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1); 940 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1);
941 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x44); 941 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x44);
942 942
@@ -948,7 +948,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
948 if (XGINew_ReadWriteRest(23, 22, pVBInfo) == 1) 948 if (XGINew_ReadWriteRest(23, 22, pVBInfo) == 1)
949 return; 949 return;
950 950
951 XGINew_ChannelAB = 1; /* Single Channel */ 951 pVBInfo->ram_channel = 1; /* Single Channel */
952 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1); 952 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1);
953 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x40); 953 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x40);
954 954
@@ -960,7 +960,7 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
960 } 960 }
961 } else { /* DDR */ 961 } else { /* DDR */
962 XGINew_DataBusWidth = 64; /* 64 bits */ 962 XGINew_DataBusWidth = 64; /* 64 bits */
963 XGINew_ChannelAB = 1; /* 1 channels */ 963 pVBInfo->ram_channel = 1; /* 1 channels */
964 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1); 964 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1);
965 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x52); 965 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x52);
966 966
@@ -978,14 +978,14 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
978 978
979 if (XGINew_CheckFrequence(pVBInfo) == 1) { /* DDRII */ 979 if (XGINew_CheckFrequence(pVBInfo) == 1) { /* DDRII */
980 XGINew_DataBusWidth = 32; /* 32 bits */ 980 XGINew_DataBusWidth = 32; /* 32 bits */
981 XGINew_ChannelAB = 3; 981 pVBInfo->ram_channel = 3;
982 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1); 982 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1);
983 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x4C); 983 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x4C);
984 984
985 if (XGINew_ReadWriteRest(25, 23, pVBInfo) == 1) 985 if (XGINew_ReadWriteRest(25, 23, pVBInfo) == 1)
986 return; 986 return;
987 987
988 XGINew_ChannelAB = 2; /* 2 channels */ 988 pVBInfo->ram_channel = 2; /* 2 channels */
989 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x48); 989 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x48);
990 990
991 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1) 991 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1)
@@ -995,14 +995,14 @@ static void XGINew_CheckChannel(struct xgi_hw_device_info *HwDeviceExtension,
995 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x3C); 995 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x3C);
996 996
997 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1) { 997 if (XGINew_ReadWriteRest(24, 23, pVBInfo) == 1) {
998 XGINew_ChannelAB = 3; /* 4 channels */ 998 pVBInfo->ram_channel = 3; /* 4 channels */
999 } else { 999 } else {
1000 XGINew_ChannelAB = 2; /* 2 channels */ 1000 pVBInfo->ram_channel = 2; /* 2 channels */
1001 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x38); 1001 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x38);
1002 } 1002 }
1003 } else { /* DDR */ 1003 } else { /* DDR */
1004 XGINew_DataBusWidth = 64; /* 64 bits */ 1004 XGINew_DataBusWidth = 64; /* 64 bits */
1005 XGINew_ChannelAB = 2; /* 2 channels */ 1005 pVBInfo->ram_channel = 2; /* 2 channels */
1006 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1); 1006 xgifb_reg_set(pVBInfo->P3c4, 0x13, 0xA1);
1007 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x5A); 1007 xgifb_reg_set(pVBInfo->P3c4, 0x14, 0x5A);
1008 1008
@@ -1038,7 +1038,7 @@ static int XGINew_DDRSizing340(struct xgi_hw_device_info *HwDeviceExtension,
1038 if (memsize == 0) 1038 if (memsize == 0)
1039 continue; 1039 continue;
1040 1040
1041 addr = memsize + (XGINew_ChannelAB - 2) + 20; 1041 addr = memsize + (pVBInfo->ram_channel - 2) + 20;
1042 if ((HwDeviceExtension->ulVideoMemorySize - 1) < 1042 if ((HwDeviceExtension->ulVideoMemorySize - 1) <
1043 (unsigned long) (1 << addr)) 1043 (unsigned long) (1 << addr))
1044 continue; 1044 continue;
@@ -1058,7 +1058,7 @@ static int XGINew_DDRSizing340(struct xgi_hw_device_info *HwDeviceExtension,
1058 if (memsize == 0) 1058 if (memsize == 0)
1059 continue; 1059 continue;
1060 1060
1061 addr = memsize + (XGINew_ChannelAB - 2) + 20; 1061 addr = memsize + (pVBInfo->ram_channel - 2) + 20;
1062 if ((HwDeviceExtension->ulVideoMemorySize - 1) < 1062 if ((HwDeviceExtension->ulVideoMemorySize - 1) <
1063 (unsigned long) (1 << addr)) 1063 (unsigned long) (1 << addr))
1064 continue; 1064 continue;