Lines Matching refs:scrp
362 xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
368 scrp->bitsPerPixel = -1;
369 scrp->depth = -1;
370 scrp->bitsPerPixelFrom = X_DEFAULT;
371 scrp->depthFrom = X_DEFAULT;
376 scrp->bitsPerPixel = xf86FbBpp;
377 scrp->bitsPerPixelFrom = X_CMDLINE;
381 scrp->depth = xf86Depth;
382 scrp->depthFrom = X_CMDLINE;
386 if (scrp->confScreen->defaultfbbpp > 0) {
387 scrp->bitsPerPixel = scrp->confScreen->defaultfbbpp;
388 scrp->bitsPerPixelFrom = X_CONFIG;
390 if (scrp->confScreen->defaultdepth > 0) {
391 scrp->depth = scrp->confScreen->defaultdepth;
392 scrp->depthFrom = X_CONFIG;
395 if (scrp->confScreen->defaultfbbpp <= 0 &&
396 scrp->confScreen->defaultdepth <= 0) {
404 for (i = 0; i < scrp->numEntities; i++) {
405 device = xf86GetDevFromEntity(scrp->entityList[i],
406 scrp->entityInstanceList[i]);
409 scrp->depth = xf86SetIntOption(device->options,
411 scrp->depthFrom = X_CONFIG;
415 scrp->bitsPerPixel = xf86SetIntOption(device->options,
418 scrp->bitsPerPixelFrom = X_CONFIG;
429 if (scrp->bitsPerPixel < 0 && scrp->depth < 0) {
432 scrp->bitsPerPixel = fbbpp;
434 scrp->depth = depth;
437 scrp->depth = GLOBAL_DEFAULT_DEPTH;
443 if (scrp->bitsPerPixel < 0) {
445 if (scrp->depth > -1) {
446 if (scrp->depth == 1)
447 scrp->bitsPerPixel = 1;
448 else if (scrp->depth <= 4)
449 scrp->bitsPerPixel = 4;
450 else if (scrp->depth <= 8)
451 scrp->bitsPerPixel = 8;
452 else if (scrp->depth <= 16)
453 scrp->bitsPerPixel = 16;
454 else if (scrp->depth <= 24 && DO_PIX32(depth24flags)) {
455 scrp->bitsPerPixel = 32;
457 else if (scrp->depth <= 32)
458 scrp->bitsPerPixel = 32;
460 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
461 "No bpp for depth (%d)\n", scrp->depth);
466 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
471 if (scrp->bitsPerPixel < 0) {
474 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
477 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
481 scrp->bitsPerPixelFrom = X_PROBED;
484 if (scrp->depth <= 0) {
486 switch (scrp->bitsPerPixel) {
488 scrp->depth = 24;
492 scrp->depth = scrp->bitsPerPixel;
495 scrp->depthFrom = X_PROBED;
499 if (scrp->depth < 1 || scrp->depth > 32) {
500 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
502 scrp->depth);
505 switch (scrp->bitsPerPixel) {
513 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
515 scrp->bitsPerPixel);
518 if (scrp->depth > scrp->bitsPerPixel) {
519 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
521 scrp->depth, scrp->bitsPerPixel);
527 * scrp->display with it.
529 for (i = 0; i < scrp->confScreen->numdisplays; i++) {
530 disp = scrp->confScreen->displays[i];
531 if ((disp->depth == scrp->depth && disp->fbbpp == scrp->bitsPerPixel)
532 || (disp->depth == scrp->depth && disp->fbbpp <= 0)
533 || (disp->fbbpp == scrp->bitsPerPixel && disp->depth <= 0)) {
534 scrp->display = disp;
543 if (i == scrp->confScreen->numdisplays) {
544 for (i = 0; i < scrp->confScreen->numdisplays; i++) {
545 disp = scrp->confScreen->displays[i];
547 scrp->display = disp;
556 if (i == scrp->confScreen->numdisplays) {
557 scrp->confScreen->numdisplays++;
558 scrp->confScreen->displays =
559 xnfreallocarray(scrp->confScreen->displays,
560 scrp->confScreen->numdisplays, sizeof(DispPtr));
561 xf86DrvMsg(scrp->scrnIndex, X_INFO,
564 scrp->confScreen->id, scrp->depth, scrp->bitsPerPixel);
565 scrp->confScreen->displays[i] = xnfcalloc(1, sizeof(DispRec));
566 memset(scrp->confScreen->displays[i], 0, sizeof(DispRec));
567 scrp->confScreen->displays[i]->blackColour.red = -1;
568 scrp->confScreen->displays[i]->blackColour.green = -1;
569 scrp->confScreen->displays[i]->blackColour.blue = -1;
570 scrp->confScreen->displays[i]->whiteColour.red = -1;
571 scrp->confScreen->displays[i]->whiteColour.green = -1;
572 scrp->confScreen->displays[i]->whiteColour.blue = -1;
573 scrp->confScreen->displays[i]->defaultVisual = -1;
574 scrp->confScreen->displays[i]->modes = xnfalloc(sizeof(char *));
575 scrp->confScreen->displays[i]->modes[0] = NULL;
576 scrp->confScreen->displays[i]->depth = depth;
577 scrp->confScreen->displays[i]->fbbpp = fbbpp;
578 scrp->display = scrp->confScreen->displays[i];
586 scrp->imageByteOrder = IMAGE_BYTE_ORDER;
587 scrp->bitmapScanlinePad = BITMAP_SCANLINE_PAD;
588 if (scrp->depth < 8) {
590 scrp->bitmapScanlineUnit = 8;
591 scrp->bitmapBitOrder = MSBFirst;
594 scrp->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT;
595 scrp->bitmapBitOrder = BITMAP_BIT_ORDER;
599 * If an unusual depth is required, add it to scrp->formats. The formats
602 switch (scrp->depth) {
612 if (!xf86AddPixFormat(scrp, scrp->depth, 0, 0)) {
613 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
614 "Can't add pixmap format for depth %d\n", scrp->depth);
620 scrp->fbFormat.depth = scrp->depth;
621 scrp->fbFormat.bitsPerPixel = scrp->bitsPerPixel;
622 scrp->fbFormat.scanlinePad = BITMAP_SCANLINE_PAD;
631 xf86PrintDepthBpp(ScrnInfoPtr scrp)
633 xf86DrvMsg(scrp->scrnIndex, scrp->depthFrom, "Depth %d, ", scrp->depth);
634 xf86Msg(scrp->bitsPerPixelFrom, "framebuffer bpp %d\n", scrp->bitsPerPixel);
638 * xf86SetWeight sets scrp->weight, scrp->mask, scrp->offset, and for depths
639 * greater than MAX_PSEUDO_DEPTH also scrp->rgbBits.
642 xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask)
646 scrp->weight.red = 0;
647 scrp->weight.green = 0;
648 scrp->weight.blue = 0;
651 scrp->weight = xf86Weight;
654 else if (scrp->display->weight.red > 0 && scrp->display->weight.green > 0
655 && scrp->display->weight.blue > 0) {
656 scrp->weight = scrp->display->weight;
660 scrp->weight = weight;
663 switch (scrp->depth) {
667 scrp->weight.red = scrp->weight.green =
668 scrp->weight.blue = scrp->rgbBits;
671 scrp->weight.red = scrp->weight.green = scrp->weight.blue = 5;
674 scrp->weight.red = scrp->weight.blue = 5;
675 scrp->weight.green = 6;
678 scrp->weight.red = scrp->weight.green = scrp->weight.blue = 6;
681 scrp->weight.red = scrp->weight.green = scrp->weight.blue = 8;
684 scrp->weight.red = scrp->weight.green = scrp->weight.blue = 10;
689 if (scrp->weight.red)
690 xf86DrvMsg(scrp->scrnIndex, weightFrom, "RGB weight %d%d%d\n",
691 (int) scrp->weight.red, (int) scrp->weight.green,
692 (int) scrp->weight.blue);
694 if (scrp->depth > MAX_PSEUDO_DEPTH &&
695 (scrp->depth != scrp->weight.red + scrp->weight.green +
696 scrp->weight.blue)) {
697 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
700 (int) scrp->weight.red, (int) scrp->weight.green,
701 (int) scrp->weight.blue, scrp->depth);
704 if (scrp->depth > MAX_PSEUDO_DEPTH && scrp->weight.red) {
710 scrp->rgbBits = scrp->weight.red;
711 if (scrp->weight.green > scrp->rgbBits)
712 scrp->rgbBits = scrp->weight.green;
713 if (scrp->weight.blue > scrp->rgbBits)
714 scrp->rgbBits = scrp->weight.blue;
720 scrp->offset.red = scrp->weight.green + scrp->weight.blue;
721 scrp->offset.green = scrp->weight.blue;
722 scrp->offset.blue = 0;
723 scrp->mask.red = ((1 << scrp->weight.red) - 1) << scrp->offset.red;
724 scrp->mask.green = ((1 << scrp->weight.green) - 1)
725 << scrp->offset.green;
726 scrp->mask.blue = (1 << scrp->weight.blue) - 1;
730 scrp->mask.red = mask.red;
731 scrp->mask.green = mask.green;
732 scrp->mask.blue = mask.blue;
733 scrp->offset.red = ffs(mask.red) - 1;
734 scrp->offset.green = ffs(mask.green) - 1;
735 scrp->offset.blue = ffs(mask.blue) - 1;
741 xf86SetDefaultVisual(ScrnInfoPtr scrp, int visual)
746 scrp->defaultVisual = defaultColorVisualClass;
749 else if (scrp->display->defaultVisual >= 0) {
750 scrp->defaultVisual = scrp->display->defaultVisual;
754 scrp->defaultVisual = visual;
757 if (scrp->depth == 1)
758 scrp->defaultVisual = StaticGray;
759 else if (scrp->depth == 4)
760 scrp->defaultVisual = StaticColor;
761 else if (scrp->depth <= MAX_PSEUDO_DEPTH)
762 scrp->defaultVisual = PseudoColor;
764 scrp->defaultVisual = TrueColor;
766 switch (scrp->defaultVisual) {
773 xf86DrvMsg(scrp->scrnIndex, visualFrom, "Default visual is %s\n",
774 xf86VisualNames[scrp->defaultVisual]);
778 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
779 "Invalid default visual class (%d)\n", scrp->defaultVisual);
791 xf86SetGamma(ScrnInfoPtr scrp, Gamma gamma)
796 xf86MonPtr DDC = (xf86MonPtr) (scrp->monitor->DDC);
800 scrp->gamma.red = SET_GAMMA(xf86Gamma.red);
801 scrp->gamma.green = SET_GAMMA(xf86Gamma.green);
802 scrp->gamma.blue = SET_GAMMA(xf86Gamma.blue);
804 else if (TEST_GAMMA(scrp->monitor->gamma)) {
806 scrp->gamma.red = SET_GAMMA(scrp->monitor->gamma.red);
807 scrp->gamma.green = SET_GAMMA(scrp->monitor->gamma.green);
808 scrp->gamma.blue = SET_GAMMA(scrp->monitor->gamma.blue);
813 scrp->gamma.red = SET_GAMMA(DDC->features.gamma);
814 scrp->gamma.green = SET_GAMMA(DDC->features.gamma);
815 scrp->gamma.blue = SET_GAMMA(DDC->features.gamma);
821 scrp->gamma.red = SET_GAMMA(gamma.red);
822 scrp->gamma.green = SET_GAMMA(gamma.green);
823 scrp->gamma.blue = SET_GAMMA(gamma.blue);
826 scrp->gamma.red = 1.0;
827 scrp->gamma.green = 1.0;
828 scrp->gamma.blue = 1.0;
831 xf86DrvMsg(scrp->scrnIndex, from,
833 scrp->gamma.red, scrp->gamma.green, scrp->gamma.blue);
1234 xf86ShowClocks(ScrnInfoPtr scrp, MessageType from)
1238 xf86DrvMsg(scrp->scrnIndex, from, "Pixel clocks available:");
1239 for (j = 0; j < scrp->numClocks; j++) {
1242 xf86DrvMsg(scrp->scrnIndex, from, "pixel clocks:");
1244 xf86ErrorF(" %7.3f", (double) scrp->clock[j] / 1000.0);