diff options
author | Aaro Koskinen <aaro.koskinen@iki.fi> | 2011-10-11 14:47:32 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-10-12 11:51:48 -0400 |
commit | ee055a48ce6272016cbb7e6f1a7de151bab7e1e0 (patch) | |
tree | 8e1656ca50b1ae5fea968c3c7e37992eb0308e28 /drivers/staging/xgifb/vb_init.c | |
parent | 2af1a29da78d8ba8076556e75a8e69f443ecf33d (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.c | 52 |
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 | ||
18 | static unsigned char XGINew_ChannelAB, XGINew_DataBusWidth; | 18 | static unsigned char XGINew_DataBusWidth; |
19 | 19 | ||
20 | static unsigned short XGINew_DDRDRAM_TYPE340[4][5] = { | 20 | static 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; |