diff options
author | Jean Delvare <khali@linux-fr.org> | 2009-09-22 19:47:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 10:39:57 -0400 |
commit | fc2d10ddfc8989e82f74d2a38c7d6bfa45bcaba9 (patch) | |
tree | bda524a0244bb7df1e0f315b1344989564f63765 /drivers/video/matrox/matroxfb_crtc2.c | |
parent | 0728bacbba3b0267fa8ca8be69aa43d81b57ab51 (diff) |
matroxfb: get rid of unneeded macros ACCESS_FBINFO and MINFO
With multihead support always enabled, these macros are no longer needed
and make the code harder to read.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Petr Vandrovec <vandrove@vc.cvut.cz>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/matrox/matroxfb_crtc2.c')
-rw-r--r-- | drivers/video/matrox/matroxfb_crtc2.c | 130 |
1 files changed, 65 insertions, 65 deletions
diff --git a/drivers/video/matrox/matroxfb_crtc2.c b/drivers/video/matrox/matroxfb_crtc2.c index ebcb5c6b496..8249959cde2 100644 --- a/drivers/video/matrox/matroxfb_crtc2.c +++ b/drivers/video/matrox/matroxfb_crtc2.c | |||
@@ -81,11 +81,11 @@ static void matroxfb_dh_restore(struct matroxfb_dh_fb_info* m2info, | |||
81 | } | 81 | } |
82 | tmp |= 0x00000001; /* enable CRTC2 */ | 82 | tmp |= 0x00000001; /* enable CRTC2 */ |
83 | datactl = 0; | 83 | datactl = 0; |
84 | if (ACCESS_FBINFO(outputs[1]).src == MATROXFB_SRC_CRTC2) { | 84 | if (minfo->outputs[1].src == MATROXFB_SRC_CRTC2) { |
85 | if (ACCESS_FBINFO(devflags.g450dac)) { | 85 | if (minfo->devflags.g450dac) { |
86 | tmp |= 0x00000006; /* source from secondary pixel PLL */ | 86 | tmp |= 0x00000006; /* source from secondary pixel PLL */ |
87 | /* no vidrst when in monitor mode */ | 87 | /* no vidrst when in monitor mode */ |
88 | if (ACCESS_FBINFO(outputs[1]).mode != MATROXFB_OUTPUT_MODE_MONITOR) { | 88 | if (minfo->outputs[1].mode != MATROXFB_OUTPUT_MODE_MONITOR) { |
89 | tmp |= 0xC0001000; /* Enable H/V vidrst */ | 89 | tmp |= 0xC0001000; /* Enable H/V vidrst */ |
90 | } | 90 | } |
91 | } else { | 91 | } else { |
@@ -93,11 +93,11 @@ static void matroxfb_dh_restore(struct matroxfb_dh_fb_info* m2info, | |||
93 | tmp |= 0xC0000000; /* enable vvidrst & hvidrst */ | 93 | tmp |= 0xC0000000; /* enable vvidrst & hvidrst */ |
94 | /* MGA TVO is our clock source */ | 94 | /* MGA TVO is our clock source */ |
95 | } | 95 | } |
96 | } else if (ACCESS_FBINFO(outputs[0]).src == MATROXFB_SRC_CRTC2) { | 96 | } else if (minfo->outputs[0].src == MATROXFB_SRC_CRTC2) { |
97 | tmp |= 0x00000004; /* source from pixclock */ | 97 | tmp |= 0x00000004; /* source from pixclock */ |
98 | /* PIXPLL is our clock source */ | 98 | /* PIXPLL is our clock source */ |
99 | } | 99 | } |
100 | if (ACCESS_FBINFO(outputs[0]).src == MATROXFB_SRC_CRTC2) { | 100 | if (minfo->outputs[0].src == MATROXFB_SRC_CRTC2) { |
101 | tmp |= 0x00100000; /* connect CRTC2 to DAC */ | 101 | tmp |= 0x00100000; /* connect CRTC2 to DAC */ |
102 | } | 102 | } |
103 | if (mt->interlaced) { | 103 | if (mt->interlaced) { |
@@ -146,7 +146,7 @@ static void matroxfb_dh_restore(struct matroxfb_dh_fb_info* m2info, | |||
146 | } | 146 | } |
147 | } | 147 | } |
148 | mga_outl(0x3C10, tmp); | 148 | mga_outl(0x3C10, tmp); |
149 | ACCESS_FBINFO(hw).crtc2.ctl = tmp; | 149 | minfo->hw.crtc2.ctl = tmp; |
150 | 150 | ||
151 | tmp = mt->VDisplay << 16; /* line compare */ | 151 | tmp = mt->VDisplay << 16; /* line compare */ |
152 | if (mt->sync & FB_SYNC_HOR_HIGH_ACT) | 152 | if (mt->sync & FB_SYNC_HOR_HIGH_ACT) |
@@ -160,7 +160,7 @@ static void matroxfb_dh_disable(struct matroxfb_dh_fb_info* m2info) { | |||
160 | MINFO_FROM(m2info->primary_dev); | 160 | MINFO_FROM(m2info->primary_dev); |
161 | 161 | ||
162 | mga_outl(0x3C10, 0x00000004); /* disable CRTC2, CRTC1->DAC1, PLL as clock source */ | 162 | mga_outl(0x3C10, 0x00000004); /* disable CRTC2, CRTC1->DAC1, PLL as clock source */ |
163 | ACCESS_FBINFO(hw).crtc2.ctl = 0x00000004; | 163 | minfo->hw.crtc2.ctl = 0x00000004; |
164 | } | 164 | } |
165 | 165 | ||
166 | static void matroxfb_dh_pan_var(struct matroxfb_dh_fb_info* m2info, | 166 | static void matroxfb_dh_pan_var(struct matroxfb_dh_fb_info* m2info, |
@@ -262,13 +262,13 @@ static int matroxfb_dh_open(struct fb_info* info, int user) { | |||
262 | #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) | 262 | #define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) |
263 | MINFO_FROM(m2info->primary_dev); | 263 | MINFO_FROM(m2info->primary_dev); |
264 | 264 | ||
265 | if (MINFO) { | 265 | if (minfo) { |
266 | int err; | 266 | int err; |
267 | 267 | ||
268 | if (ACCESS_FBINFO(dead)) { | 268 | if (minfo->dead) { |
269 | return -ENXIO; | 269 | return -ENXIO; |
270 | } | 270 | } |
271 | err = ACCESS_FBINFO(fbops).fb_open(&ACCESS_FBINFO(fbcon), user); | 271 | err = minfo->fbops.fb_open(&minfo->fbcon, user); |
272 | if (err) { | 272 | if (err) { |
273 | return err; | 273 | return err; |
274 | } | 274 | } |
@@ -282,8 +282,8 @@ static int matroxfb_dh_release(struct fb_info* info, int user) { | |||
282 | int err = 0; | 282 | int err = 0; |
283 | MINFO_FROM(m2info->primary_dev); | 283 | MINFO_FROM(m2info->primary_dev); |
284 | 284 | ||
285 | if (MINFO) { | 285 | if (minfo) { |
286 | err = ACCESS_FBINFO(fbops).fb_release(&ACCESS_FBINFO(fbcon), user); | 286 | err = minfo->fbops.fb_release(&minfo->fbcon, user); |
287 | } | 287 | } |
288 | return err; | 288 | return err; |
289 | #undef m2info | 289 | #undef m2info |
@@ -352,18 +352,18 @@ static int matroxfb_dh_set_par(struct fb_info* info) { | |||
352 | pos = (m2info->fbcon.var.yoffset * m2info->fbcon.var.xres_virtual + m2info->fbcon.var.xoffset) * m2info->fbcon.var.bits_per_pixel >> 3; | 352 | pos = (m2info->fbcon.var.yoffset * m2info->fbcon.var.xres_virtual + m2info->fbcon.var.xoffset) * m2info->fbcon.var.bits_per_pixel >> 3; |
353 | pos += m2info->video.offbase; | 353 | pos += m2info->video.offbase; |
354 | cnt = 0; | 354 | cnt = 0; |
355 | down_read(&ACCESS_FBINFO(altout).lock); | 355 | down_read(&minfo->altout.lock); |
356 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { | 356 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { |
357 | if (ACCESS_FBINFO(outputs[out]).src == MATROXFB_SRC_CRTC2) { | 357 | if (minfo->outputs[out].src == MATROXFB_SRC_CRTC2) { |
358 | cnt++; | 358 | cnt++; |
359 | if (ACCESS_FBINFO(outputs[out]).output->compute) { | 359 | if (minfo->outputs[out].output->compute) { |
360 | ACCESS_FBINFO(outputs[out]).output->compute(ACCESS_FBINFO(outputs[out]).data, &mt); | 360 | minfo->outputs[out].output->compute(minfo->outputs[out].data, &mt); |
361 | } | 361 | } |
362 | } | 362 | } |
363 | } | 363 | } |
364 | ACCESS_FBINFO(crtc2).pixclock = mt.pixclock; | 364 | minfo->crtc2.pixclock = mt.pixclock; |
365 | ACCESS_FBINFO(crtc2).mnp = mt.mnp; | 365 | minfo->crtc2.mnp = mt.mnp; |
366 | up_read(&ACCESS_FBINFO(altout).lock); | 366 | up_read(&minfo->altout.lock); |
367 | if (cnt) { | 367 | if (cnt) { |
368 | matroxfb_dh_restore(m2info, &mt, mode, pos); | 368 | matroxfb_dh_restore(m2info, &mt, mode, pos); |
369 | } else { | 369 | } else { |
@@ -371,20 +371,20 @@ static int matroxfb_dh_set_par(struct fb_info* info) { | |||
371 | } | 371 | } |
372 | DAC1064_global_init(PMINFO2); | 372 | DAC1064_global_init(PMINFO2); |
373 | DAC1064_global_restore(PMINFO2); | 373 | DAC1064_global_restore(PMINFO2); |
374 | down_read(&ACCESS_FBINFO(altout).lock); | 374 | down_read(&minfo->altout.lock); |
375 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { | 375 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { |
376 | if (ACCESS_FBINFO(outputs[out]).src == MATROXFB_SRC_CRTC2 && | 376 | if (minfo->outputs[out].src == MATROXFB_SRC_CRTC2 && |
377 | ACCESS_FBINFO(outputs[out]).output->program) { | 377 | minfo->outputs[out].output->program) { |
378 | ACCESS_FBINFO(outputs[out]).output->program(ACCESS_FBINFO(outputs[out]).data); | 378 | minfo->outputs[out].output->program(minfo->outputs[out].data); |
379 | } | 379 | } |
380 | } | 380 | } |
381 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { | 381 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { |
382 | if (ACCESS_FBINFO(outputs[out]).src == MATROXFB_SRC_CRTC2 && | 382 | if (minfo->outputs[out].src == MATROXFB_SRC_CRTC2 && |
383 | ACCESS_FBINFO(outputs[out]).output->start) { | 383 | minfo->outputs[out].output->start) { |
384 | ACCESS_FBINFO(outputs[out]).output->start(ACCESS_FBINFO(outputs[out]).data); | 384 | minfo->outputs[out].output->start(minfo->outputs[out].data); |
385 | } | 385 | } |
386 | } | 386 | } |
387 | up_read(&ACCESS_FBINFO(altout).lock); | 387 | up_read(&minfo->altout.lock); |
388 | } | 388 | } |
389 | m2info->initialized = 1; | 389 | m2info->initialized = 1; |
390 | return 0; | 390 | return 0; |
@@ -409,11 +409,11 @@ static int matroxfb_dh_get_vblank(const struct matroxfb_dh_fb_info* m2info, stru | |||
409 | /* compatibility stuff */ | 409 | /* compatibility stuff */ |
410 | if (vblank->vcount >= m2info->fbcon.var.yres) | 410 | if (vblank->vcount >= m2info->fbcon.var.yres) |
411 | vblank->flags |= FB_VBLANK_VBLANKING; | 411 | vblank->flags |= FB_VBLANK_VBLANKING; |
412 | if (test_bit(0, &ACCESS_FBINFO(irq_flags))) { | 412 | if (test_bit(0, &minfo->irq_flags)) { |
413 | vblank->flags |= FB_VBLANK_HAVE_COUNT; | 413 | vblank->flags |= FB_VBLANK_HAVE_COUNT; |
414 | /* Only one writer, aligned int value... | 414 | /* Only one writer, aligned int value... |
415 | it should work without lock and without atomic_t */ | 415 | it should work without lock and without atomic_t */ |
416 | vblank->count = ACCESS_FBINFO(crtc2).vsync.cnt; | 416 | vblank->count = minfo->crtc2.vsync.cnt; |
417 | } | 417 | } |
418 | return 0; | 418 | return 0; |
419 | } | 419 | } |
@@ -455,7 +455,7 @@ static int matroxfb_dh_ioctl(struct fb_info *info, | |||
455 | case MATROXFB_GET_OUTPUT_MODE: | 455 | case MATROXFB_GET_OUTPUT_MODE: |
456 | case MATROXFB_GET_ALL_OUTPUTS: | 456 | case MATROXFB_GET_ALL_OUTPUTS: |
457 | { | 457 | { |
458 | return ACCESS_FBINFO(fbcon.fbops)->fb_ioctl(&ACCESS_FBINFO(fbcon), cmd, arg); | 458 | return minfo->fbcon.fbops->fb_ioctl(&minfo->fbcon, cmd, arg); |
459 | } | 459 | } |
460 | case MATROXFB_SET_OUTPUT_CONNECTION: | 460 | case MATROXFB_SET_OUTPUT_CONNECTION: |
461 | { | 461 | { |
@@ -469,9 +469,9 @@ static int matroxfb_dh_ioctl(struct fb_info *info, | |||
469 | if (tmp & (1 << out)) { | 469 | if (tmp & (1 << out)) { |
470 | if (out >= MATROXFB_MAX_OUTPUTS) | 470 | if (out >= MATROXFB_MAX_OUTPUTS) |
471 | return -ENXIO; | 471 | return -ENXIO; |
472 | if (!ACCESS_FBINFO(outputs[out]).output) | 472 | if (!minfo->outputs[out].output) |
473 | return -ENXIO; | 473 | return -ENXIO; |
474 | switch (ACCESS_FBINFO(outputs[out]).src) { | 474 | switch (minfo->outputs[out].src) { |
475 | case MATROXFB_SRC_NONE: | 475 | case MATROXFB_SRC_NONE: |
476 | case MATROXFB_SRC_CRTC2: | 476 | case MATROXFB_SRC_CRTC2: |
477 | break; | 477 | break; |
@@ -480,22 +480,22 @@ static int matroxfb_dh_ioctl(struct fb_info *info, | |||
480 | } | 480 | } |
481 | } | 481 | } |
482 | } | 482 | } |
483 | if (ACCESS_FBINFO(devflags.panellink)) { | 483 | if (minfo->devflags.panellink) { |
484 | if (tmp & MATROXFB_OUTPUT_CONN_DFP) | 484 | if (tmp & MATROXFB_OUTPUT_CONN_DFP) |
485 | return -EINVAL; | 485 | return -EINVAL; |
486 | if ((ACCESS_FBINFO(outputs[2]).src == MATROXFB_SRC_CRTC1) && tmp) | 486 | if ((minfo->outputs[2].src == MATROXFB_SRC_CRTC1) && tmp) |
487 | return -EBUSY; | 487 | return -EBUSY; |
488 | } | 488 | } |
489 | changes = 0; | 489 | changes = 0; |
490 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { | 490 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { |
491 | if (tmp & (1 << out)) { | 491 | if (tmp & (1 << out)) { |
492 | if (ACCESS_FBINFO(outputs[out]).src != MATROXFB_SRC_CRTC2) { | 492 | if (minfo->outputs[out].src != MATROXFB_SRC_CRTC2) { |
493 | changes = 1; | 493 | changes = 1; |
494 | ACCESS_FBINFO(outputs[out]).src = MATROXFB_SRC_CRTC2; | 494 | minfo->outputs[out].src = MATROXFB_SRC_CRTC2; |
495 | } | 495 | } |
496 | } else if (ACCESS_FBINFO(outputs[out]).src == MATROXFB_SRC_CRTC2) { | 496 | } else if (minfo->outputs[out].src == MATROXFB_SRC_CRTC2) { |
497 | changes = 1; | 497 | changes = 1; |
498 | ACCESS_FBINFO(outputs[out]).src = MATROXFB_SRC_NONE; | 498 | minfo->outputs[out].src = MATROXFB_SRC_NONE; |
499 | } | 499 | } |
500 | } | 500 | } |
501 | if (!changes) | 501 | if (!changes) |
@@ -509,7 +509,7 @@ static int matroxfb_dh_ioctl(struct fb_info *info, | |||
509 | int out; | 509 | int out; |
510 | 510 | ||
511 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { | 511 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { |
512 | if (ACCESS_FBINFO(outputs[out]).src == MATROXFB_SRC_CRTC2) { | 512 | if (minfo->outputs[out].src == MATROXFB_SRC_CRTC2) { |
513 | conn |= 1 << out; | 513 | conn |= 1 << out; |
514 | } | 514 | } |
515 | } | 515 | } |
@@ -523,8 +523,8 @@ static int matroxfb_dh_ioctl(struct fb_info *info, | |||
523 | int out; | 523 | int out; |
524 | 524 | ||
525 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { | 525 | for (out = 0; out < MATROXFB_MAX_OUTPUTS; out++) { |
526 | if (ACCESS_FBINFO(outputs[out]).output) { | 526 | if (minfo->outputs[out].output) { |
527 | switch (ACCESS_FBINFO(outputs[out]).src) { | 527 | switch (minfo->outputs[out].src) { |
528 | case MATROXFB_SRC_NONE: | 528 | case MATROXFB_SRC_NONE: |
529 | case MATROXFB_SRC_CRTC2: | 529 | case MATROXFB_SRC_CRTC2: |
530 | tmp |= 1 << out; | 530 | tmp |= 1 << out; |
@@ -532,9 +532,9 @@ static int matroxfb_dh_ioctl(struct fb_info *info, | |||
532 | } | 532 | } |
533 | } | 533 | } |
534 | } | 534 | } |
535 | if (ACCESS_FBINFO(devflags.panellink)) { | 535 | if (minfo->devflags.panellink) { |
536 | tmp &= ~MATROXFB_OUTPUT_CONN_DFP; | 536 | tmp &= ~MATROXFB_OUTPUT_CONN_DFP; |
537 | if (ACCESS_FBINFO(outputs[2]).src == MATROXFB_SRC_CRTC1) { | 537 | if (minfo->outputs[2].src == MATROXFB_SRC_CRTC1) { |
538 | tmp = 0; | 538 | tmp = 0; |
539 | } | 539 | } |
540 | } | 540 | } |
@@ -611,21 +611,21 @@ static int matroxfb_dh_regit(CPMINFO struct matroxfb_dh_fb_info* m2info) { | |||
611 | if (mem < 64*1024) | 611 | if (mem < 64*1024) |
612 | mem *= 1024; | 612 | mem *= 1024; |
613 | mem &= ~0x00000FFF; /* PAGE_MASK? */ | 613 | mem &= ~0x00000FFF; /* PAGE_MASK? */ |
614 | if (ACCESS_FBINFO(video.len_usable) + mem <= ACCESS_FBINFO(video.len)) | 614 | if (minfo->video.len_usable + mem <= minfo->video.len) |
615 | m2info->video.offbase = ACCESS_FBINFO(video.len) - mem; | 615 | m2info->video.offbase = minfo->video.len - mem; |
616 | else if (ACCESS_FBINFO(video.len) < mem) { | 616 | else if (minfo->video.len < mem) { |
617 | return -ENOMEM; | 617 | return -ENOMEM; |
618 | } else { /* check yres on first head... */ | 618 | } else { /* check yres on first head... */ |
619 | m2info->video.borrowed = mem; | 619 | m2info->video.borrowed = mem; |
620 | ACCESS_FBINFO(video.len_usable) -= mem; | 620 | minfo->video.len_usable -= mem; |
621 | m2info->video.offbase = ACCESS_FBINFO(video.len_usable); | 621 | m2info->video.offbase = minfo->video.len_usable; |
622 | } | 622 | } |
623 | m2info->video.base = ACCESS_FBINFO(video.base) + m2info->video.offbase; | 623 | m2info->video.base = minfo->video.base + m2info->video.offbase; |
624 | m2info->video.len = m2info->video.len_usable = m2info->video.len_maximum = mem; | 624 | m2info->video.len = m2info->video.len_usable = m2info->video.len_maximum = mem; |
625 | m2info->video.vbase.vaddr = vaddr_va(ACCESS_FBINFO(video.vbase)) + m2info->video.offbase; | 625 | m2info->video.vbase.vaddr = vaddr_va(minfo->video.vbase) + m2info->video.offbase; |
626 | m2info->mmio.base = ACCESS_FBINFO(mmio.base); | 626 | m2info->mmio.base = minfo->mmio.base; |
627 | m2info->mmio.vbase = ACCESS_FBINFO(mmio.vbase); | 627 | m2info->mmio.vbase = minfo->mmio.vbase; |
628 | m2info->mmio.len = ACCESS_FBINFO(mmio.len); | 628 | m2info->mmio.len = minfo->mmio.len; |
629 | 629 | ||
630 | matroxfb_dh_init_fix(m2info); | 630 | matroxfb_dh_init_fix(m2info); |
631 | if (register_framebuffer(&m2info->fbcon)) { | 631 | if (register_framebuffer(&m2info->fbcon)) { |
@@ -633,10 +633,10 @@ static int matroxfb_dh_regit(CPMINFO struct matroxfb_dh_fb_info* m2info) { | |||
633 | } | 633 | } |
634 | if (!m2info->initialized) | 634 | if (!m2info->initialized) |
635 | fb_set_var(&m2info->fbcon, &matroxfb_dh_defined); | 635 | fb_set_var(&m2info->fbcon, &matroxfb_dh_defined); |
636 | down_write(&ACCESS_FBINFO(crtc2.lock)); | 636 | down_write(&minfo->crtc2.lock); |
637 | oldcrtc2 = ACCESS_FBINFO(crtc2.info); | 637 | oldcrtc2 = minfo->crtc2.info; |
638 | ACCESS_FBINFO(crtc2.info) = m2info; | 638 | minfo->crtc2.info = m2info; |
639 | up_write(&ACCESS_FBINFO(crtc2.lock)); | 639 | up_write(&minfo->crtc2.lock); |
640 | if (oldcrtc2) { | 640 | if (oldcrtc2) { |
641 | printk(KERN_ERR "matroxfb_crtc2: Internal consistency check failed: crtc2 already present: %p\n", | 641 | printk(KERN_ERR "matroxfb_crtc2: Internal consistency check failed: crtc2 already present: %p\n", |
642 | oldcrtc2); | 642 | oldcrtc2); |
@@ -654,7 +654,7 @@ static int matroxfb_dh_registerfb(struct matroxfb_dh_fb_info* m2info) { | |||
654 | return -1; | 654 | return -1; |
655 | } | 655 | } |
656 | printk(KERN_INFO "matroxfb_crtc2: secondary head of fb%u was registered as fb%u\n", | 656 | printk(KERN_INFO "matroxfb_crtc2: secondary head of fb%u was registered as fb%u\n", |
657 | ACCESS_FBINFO(fbcon.node), m2info->fbcon.node); | 657 | minfo->fbcon.node, m2info->fbcon.node); |
658 | m2info->fbcon_registered = 1; | 658 | m2info->fbcon_registered = 1; |
659 | return 0; | 659 | return 0; |
660 | #undef minfo | 660 | #undef minfo |
@@ -666,11 +666,11 @@ static void matroxfb_dh_deregisterfb(struct matroxfb_dh_fb_info* m2info) { | |||
666 | int id; | 666 | int id; |
667 | struct matroxfb_dh_fb_info* crtc2; | 667 | struct matroxfb_dh_fb_info* crtc2; |
668 | 668 | ||
669 | down_write(&ACCESS_FBINFO(crtc2.lock)); | 669 | down_write(&minfo->crtc2.lock); |
670 | crtc2 = ACCESS_FBINFO(crtc2.info); | 670 | crtc2 = minfo->crtc2.info; |
671 | if (crtc2 == m2info) | 671 | if (crtc2 == m2info) |
672 | ACCESS_FBINFO(crtc2.info) = NULL; | 672 | minfo->crtc2.info = NULL; |
673 | up_write(&ACCESS_FBINFO(crtc2.lock)); | 673 | up_write(&minfo->crtc2.lock); |
674 | if (crtc2 != m2info) { | 674 | if (crtc2 != m2info) { |
675 | printk(KERN_ERR "matroxfb_crtc2: Internal consistency check failed: crtc2 mismatch at unload: %p != %p\n", | 675 | printk(KERN_ERR "matroxfb_crtc2: Internal consistency check failed: crtc2 mismatch at unload: %p != %p\n", |
676 | crtc2, m2info); | 676 | crtc2, m2info); |
@@ -680,7 +680,7 @@ static void matroxfb_dh_deregisterfb(struct matroxfb_dh_fb_info* m2info) { | |||
680 | id = m2info->fbcon.node; | 680 | id = m2info->fbcon.node; |
681 | unregister_framebuffer(&m2info->fbcon); | 681 | unregister_framebuffer(&m2info->fbcon); |
682 | /* return memory back to primary head */ | 682 | /* return memory back to primary head */ |
683 | ACCESS_FBINFO(video.len_usable) += m2info->video.borrowed; | 683 | minfo->video.len_usable += m2info->video.borrowed; |
684 | printk(KERN_INFO "matroxfb_crtc2: fb%u unregistered\n", id); | 684 | printk(KERN_INFO "matroxfb_crtc2: fb%u unregistered\n", id); |
685 | m2info->fbcon_registered = 0; | 685 | m2info->fbcon_registered = 0; |
686 | } | 686 | } |
@@ -691,14 +691,14 @@ static void* matroxfb_crtc2_probe(struct matrox_fb_info* minfo) { | |||
691 | struct matroxfb_dh_fb_info* m2info; | 691 | struct matroxfb_dh_fb_info* m2info; |
692 | 692 | ||
693 | /* hardware is CRTC2 incapable... */ | 693 | /* hardware is CRTC2 incapable... */ |
694 | if (!ACCESS_FBINFO(devflags.crtc2)) | 694 | if (!minfo->devflags.crtc2) |
695 | return NULL; | 695 | return NULL; |
696 | m2info = kzalloc(sizeof(*m2info), GFP_KERNEL); | 696 | m2info = kzalloc(sizeof(*m2info), GFP_KERNEL); |
697 | if (!m2info) { | 697 | if (!m2info) { |
698 | printk(KERN_ERR "matroxfb_crtc2: Not enough memory for CRTC2 control structs\n"); | 698 | printk(KERN_ERR "matroxfb_crtc2: Not enough memory for CRTC2 control structs\n"); |
699 | return NULL; | 699 | return NULL; |
700 | } | 700 | } |
701 | m2info->primary_dev = MINFO; | 701 | m2info->primary_dev = minfo; |
702 | if (matroxfb_dh_registerfb(m2info)) { | 702 | if (matroxfb_dh_registerfb(m2info)) { |
703 | kfree(m2info); | 703 | kfree(m2info); |
704 | printk(KERN_ERR "matroxfb_crtc2: CRTC2 framebuffer failed to register\n"); | 704 | printk(KERN_ERR "matroxfb_crtc2: CRTC2 framebuffer failed to register\n"); |