Skip to content

Commit

Permalink
staging/xgifb: Simplify XGI_GetRatePtrCRT2
Browse files Browse the repository at this point in the history
Since the smaller LCDRefreshIndex is contained identically in LCDARefreshIndex
we can simply use LCDARefreshIndex and skip the if/else.

Since LCDARefreshIndex is only used readonly and contains only small
unsigned values we also change its declaration to const u8.

In order to prevent an out-of-bounds access I changed the mask from 0x0F
to 0x07 and added a dummy value.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Peter Huewe authored and Greg Kroah-Hartman committed Feb 4, 2013
1 parent 3de738c commit f2c2260
Showing 1 changed file with 4 additions and 12 deletions.
16 changes: 4 additions & 12 deletions drivers/staging/xgifb/vb_setmode.c
Original file line number Diff line number Diff line change
Expand Up @@ -5470,9 +5470,8 @@ unsigned short XGI_GetRatePtrCRT2(struct xgi_hw_device_info *pXGIHWDE,
unsigned short ModeNo, unsigned short ModeIdIndex,
struct vb_device_info *pVBInfo)
{
short LCDRefreshIndex[] = { 0x00, 0x00, 0x03, 0x01 },
LCDARefreshIndex[] = { 0x00, 0x00, 0x03, 0x01, 0x01,
0x01, 0x01 };
const u8 LCDARefreshIndex[] = {
0x00, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x00 };

unsigned short RefreshRateTableIndex, i, index, temp;

Expand All @@ -5489,15 +5488,8 @@ unsigned short XGI_GetRatePtrCRT2(struct xgi_hw_device_info *pXGIHWDE,
if (pVBInfo->SetFlag & ProgrammingCRT2) {
if (pVBInfo->VBInfo & (SetCRT2ToLCD | XGI_SetCRT2ToLCDA)) {
if (pVBInfo->IF_DEF_LVDS == 0) {
if (pVBInfo->VBType & (VB_SIS301B | VB_SIS302B
| VB_SIS301LV | VB_SIS302LV
| VB_XGI301C))
/* 301b */
temp = LCDARefreshIndex[
pVBInfo->LCDResInfo & 0x0F];
else
temp = LCDRefreshIndex[
pVBInfo->LCDResInfo & 0x0F];
temp = LCDARefreshIndex[
pVBInfo->LCDResInfo & 0x07];

if (index > temp)
index = temp;
Expand Down

0 comments on commit f2c2260

Please sign in to comment.