diff options
Diffstat (limited to 'drivers/video/intelfb/intelfbhw.c')
-rw-r--r-- | drivers/video/intelfb/intelfbhw.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c index fe38df8e2b6f..270f6552603c 100644 --- a/drivers/video/intelfb/intelfbhw.c +++ b/drivers/video/intelfb/intelfbhw.c | |||
@@ -434,14 +434,14 @@ void intelfbhw_setcolreg(struct intelfb_info *dinfo, unsigned regno, | |||
434 | unsigned red, unsigned green, unsigned blue, | 434 | unsigned red, unsigned green, unsigned blue, |
435 | unsigned transp) | 435 | unsigned transp) |
436 | { | 436 | { |
437 | u32 palette_reg = (dinfo->pipe == PIPE_A) ? | ||
438 | PALETTE_A : PALETTE_B; | ||
439 | |||
437 | #if VERBOSE > 0 | 440 | #if VERBOSE > 0 |
438 | DBG_MSG("intelfbhw_setcolreg: %d: (%d, %d, %d)\n", | 441 | DBG_MSG("intelfbhw_setcolreg: %d: (%d, %d, %d)\n", |
439 | regno, red, green, blue); | 442 | regno, red, green, blue); |
440 | #endif | 443 | #endif |
441 | 444 | ||
442 | u32 palette_reg = (dinfo->pipe == PIPE_A) ? | ||
443 | PALETTE_A : PALETTE_B; | ||
444 | |||
445 | OUTREG(palette_reg + (regno << 2), | 445 | OUTREG(palette_reg + (regno << 2), |
446 | (red << PALETTE_8_RED_SHIFT) | | 446 | (red << PALETTE_8_RED_SHIFT) | |
447 | (green << PALETTE_8_GREEN_SHIFT) | | 447 | (green << PALETTE_8_GREEN_SHIFT) | |
@@ -1305,8 +1305,8 @@ int intelfbhw_program_mode(struct intelfb_info *dinfo, | |||
1305 | 1305 | ||
1306 | count = 0; | 1306 | count = 0; |
1307 | do { | 1307 | do { |
1308 | tmp_val[count%3] = INREG(0x70000); | 1308 | tmp_val[count % 3] = INREG(PIPEA_DSL); |
1309 | if ((tmp_val[0] == tmp_val[1]) && (tmp_val[1]==tmp_val[2])) | 1309 | if ((tmp_val[0] == tmp_val[1]) && (tmp_val[1] == tmp_val[2])) |
1310 | break; | 1310 | break; |
1311 | count++; | 1311 | count++; |
1312 | udelay(1); | 1312 | udelay(1); |
@@ -2004,7 +2004,6 @@ intelfbhw_enable_irq(struct intelfb_info *dinfo, int reenable) { | |||
2004 | 2004 | ||
2005 | void | 2005 | void |
2006 | intelfbhw_disable_irq(struct intelfb_info *dinfo) { | 2006 | intelfbhw_disable_irq(struct intelfb_info *dinfo) { |
2007 | u16 tmp; | ||
2008 | 2007 | ||
2009 | if (test_and_clear_bit(0, &dinfo->irq_flags)) { | 2008 | if (test_and_clear_bit(0, &dinfo->irq_flags)) { |
2010 | if (dinfo->vsync.pan_display) { | 2009 | if (dinfo->vsync.pan_display) { |
@@ -2016,8 +2015,7 @@ intelfbhw_disable_irq(struct intelfb_info *dinfo) { | |||
2016 | OUTREG16(IMR, 0xffff); | 2015 | OUTREG16(IMR, 0xffff); |
2017 | OUTREG16(IER, 0x0); | 2016 | OUTREG16(IER, 0x0); |
2018 | 2017 | ||
2019 | tmp = INREG16(IIR); | 2018 | OUTREG16(IIR, INREG16(IIR)); /* clear IRQ requests */ |
2020 | OUTREG16(IIR, tmp); | ||
2021 | spin_unlock_irq(&dinfo->int_lock); | 2019 | spin_unlock_irq(&dinfo->int_lock); |
2022 | 2020 | ||
2023 | free_irq(dinfo->pdev->irq, dinfo); | 2021 | free_irq(dinfo->pdev->irq, dinfo); |