aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/xgifb/XGI_main_26.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/staging/xgifb/XGI_main_26.c b/drivers/staging/xgifb/XGI_main_26.c
index 98b8b096d58c..f775c5453845 100644
--- a/drivers/staging/xgifb/XGI_main_26.c
+++ b/drivers/staging/xgifb/XGI_main_26.c
@@ -6,6 +6,7 @@
6 6
7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
8 8
9#include <linux/sizes.h>
9#include <linux/module.h> 10#include <linux/module.h>
10 11
11#ifdef CONFIG_MTRR 12#ifdef CONFIG_MTRR
@@ -1470,6 +1471,9 @@ static int XGIfb_get_dram_size(struct xgifb_video_info *xgifb_info)
1470 xgifb_reg_set(XGISR, IND_SIS_DRAM_SIZE, 0x51); 1471 xgifb_reg_set(XGISR, IND_SIS_DRAM_SIZE, 0x51);
1471 1472
1472 reg = xgifb_reg_get(XGISR, IND_SIS_DRAM_SIZE); 1473 reg = xgifb_reg_get(XGISR, IND_SIS_DRAM_SIZE);
1474 if (!reg)
1475 return -1;
1476
1473 switch ((reg & XGI_DRAM_SIZE_MASK) >> 4) { 1477 switch ((reg & XGI_DRAM_SIZE_MASK) >> 4) {
1474 case XGI_DRAM_SIZE_1MB: 1478 case XGI_DRAM_SIZE_1MB:
1475 xgifb_info->video_size = 0x100000; 1479 xgifb_info->video_size = 0x100000;
@@ -1778,10 +1782,8 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
1778 hw_info->jChipType = xgifb_info->chip; 1782 hw_info->jChipType = xgifb_info->chip;
1779 1783
1780 if (XGIfb_get_dram_size(xgifb_info)) { 1784 if (XGIfb_get_dram_size(xgifb_info)) {
1781 dev_err(&pdev->dev, 1785 xgifb_info->video_size = min_t(unsigned long, video_size_max,
1782 "Fatal error: Unable to determine RAM size.\n"); 1786 SZ_16M);
1783 ret = -ENODEV;
1784 goto error_disable;
1785 } else if (xgifb_info->video_size > video_size_max) { 1787 } else if (xgifb_info->video_size > video_size_max) {
1786 xgifb_info->video_size = video_size_max; 1788 xgifb_info->video_size = video_size_max;
1787 } 1789 }