Lines Matching refs:scrp

348 xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
356 scrp->bitsPerPixel = -1;
357 scrp->depth = -1;
358 scrp->pixmap24 = Pix24DontCare;
359 scrp->bitsPerPixelFrom = X_DEFAULT;
360 scrp->depthFrom = X_DEFAULT;
363 scrp->bitsPerPixel = xf86FbBpp;
364 scrp->bitsPerPixelFrom = X_CMDLINE;
368 scrp->depth = xf86Depth;
369 scrp->depthFrom = X_CMDLINE;
373 if (scrp->confScreen->defaultfbbpp > 0) {
374 scrp->bitsPerPixel = scrp->confScreen->defaultfbbpp;
375 scrp->bitsPerPixelFrom = X_CONFIG;
377 if (scrp->confScreen->defaultdepth > 0) {
378 scrp->depth = scrp->confScreen->defaultdepth;
379 scrp->depthFrom = X_CONFIG;
382 if (scrp->confScreen->defaultfbbpp <= 0 &&
383 scrp->confScreen->defaultdepth <= 0) {
392 for (i = 0; i < scrp->numEntities; i++) {
393 device = xf86GetDevFromEntity(scrp->entityList[i],
394 scrp->entityInstanceList[i]);
397 scrp->depth = xf86SetIntOption(device->options,
399 scrp->depthFrom = X_CONFIG;
403 scrp->bitsPerPixel = xf86SetIntOption(device->options,
406 scrp->bitsPerPixelFrom = X_CONFIG;
417 if (scrp->bitsPerPixel < 0 && scrp->depth < 0) {
420 scrp->bitsPerPixel = fbbpp;
422 scrp->depth = depth;
424 scrp->depth = GLOBAL_DEFAULT_DEPTH;
430 if (scrp->bitsPerPixel < 0) {
432 if (scrp->depth > -1) {
433 if (scrp->depth == 1)
434 scrp->bitsPerPixel = 1;
435 else if (scrp->depth <= 4)
436 scrp->bitsPerPixel = 4;
437 else if (scrp->depth <= 8)
438 scrp->bitsPerPixel = 8;
439 else if (scrp->depth <= 16)
440 scrp->bitsPerPixel = 16;
441 else if (scrp->depth <= 24) {
451 scrp->bitsPerPixel = 24;
453 scrp->bitsPerPixel = 32;
460 scrp->bitsPerPixel = 32;
462 scrp->bitsPerPixel = 24;
470 scrp->bitsPerPixel = 24;
472 scrp->bitsPerPixel = 32;
475 scrp->bitsPerPixel = 32;
477 scrp->bitsPerPixel = 24;
480 } else if (scrp->depth <= 32)
481 scrp->bitsPerPixel = 32;
483 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
485 scrp->depth);
489 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
494 if (scrp->bitsPerPixel < 0) {
496 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
501 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
504 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
508 scrp->bitsPerPixelFrom = X_PROBED;
511 if (scrp->depth <= 0) {
513 switch (scrp->bitsPerPixel) {
515 scrp->depth = 24;
519 scrp->depth = scrp->bitsPerPixel;
522 scrp->depthFrom = X_PROBED;
526 if (scrp->depth < 1 || scrp->depth > 32) {
527 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
529 scrp->depth);
532 switch (scrp->bitsPerPixel) {
541 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
543 scrp->bitsPerPixel);
546 if (scrp->depth > scrp->bitsPerPixel) {
547 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
549 scrp->depth, scrp->bitsPerPixel);
553 /* set scrp->pixmap24 if the driver isn't flexible */
554 if (scrp->bitsPerPixel == 24 && !DO_PIX32FOR24(depth24flags)) {
555 scrp->pixmap24 = Pix24Use24;
557 if (scrp->bitsPerPixel == 32 && !DO_PIX24FOR32(depth24flags)) {
558 scrp->pixmap24 = Pix24Use32;
563 * scrp->display with it.
565 for (i = 0, disp = scrp->confScreen->displays;
566 i < scrp->confScreen->numdisplays; i++, disp++) {
567 if ((disp->depth == scrp->depth && disp->fbbpp == scrp->bitsPerPixel)
568 || (disp->depth == scrp->depth && disp->fbbpp <= 0)
569 || (disp->fbbpp == scrp->bitsPerPixel && disp->depth <= 0)) {
570 scrp->display = disp;
579 if (i == scrp->confScreen->numdisplays) {
580 for (i = 0, disp = scrp->confScreen->displays;
581 i < scrp->confScreen->numdisplays; i++, disp++) {
583 scrp->display = disp;
592 if (i == scrp->confScreen->numdisplays) {
593 scrp->confScreen->numdisplays++;
594 scrp->confScreen->displays =
595 xnfrealloc(scrp->confScreen->displays,
596 scrp->confScreen->numdisplays * sizeof(DispRec));
597 xf86DrvMsg(scrp->scrnIndex, X_INFO,
600 scrp->confScreen->id, scrp->depth, scrp->bitsPerPixel);
601 memset(&scrp->confScreen->displays[i], 0, sizeof(DispRec));
602 scrp->confScreen->displays[i].blackColour.red = -1;
603 scrp->confScreen->displays[i].blackColour.green = -1;
604 scrp->confScreen->displays[i].blackColour.blue = -1;
605 scrp->confScreen->displays[i].whiteColour.red = -1;
606 scrp->confScreen->displays[i].whiteColour.green = -1;
607 scrp->confScreen->displays[i].whiteColour.blue = -1;
608 scrp->confScreen->displays[i].defaultVisual = -1;
609 scrp->confScreen->displays[i].modes = xnfalloc(sizeof(char *));
610 scrp->confScreen->displays[i].modes[0] = NULL;
611 scrp->confScreen->displays[i].depth = depth;
612 scrp->confScreen->displays[i].fbbpp = fbbpp;
613 scrp->display = &scrp->confScreen->displays[i];
621 scrp->imageByteOrder = IMAGE_BYTE_ORDER;
622 scrp->bitmapScanlinePad = BITMAP_SCANLINE_PAD;
623 if (scrp->depth < 8) {
625 scrp->bitmapScanlineUnit = 8;
626 scrp->bitmapBitOrder = MSBFirst;
628 scrp->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT;
629 scrp->bitmapBitOrder = BITMAP_BIT_ORDER;
633 * If an unusual depth is required, add it to scrp->formats. The formats
636 switch (scrp->depth) {
646 if (!xf86AddPixFormat(scrp, scrp->depth, 0, 0)) {
647 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
648 "Can't add pixmap format for depth %d\n", scrp->depth);
654 scrp->fbFormat.depth = scrp->depth;
655 scrp->fbFormat.bitsPerPixel = scrp->bitsPerPixel;
656 scrp->fbFormat.scanlinePad = BITMAP_SCANLINE_PAD;
665 xf86PrintDepthBpp(ScrnInfoPtr scrp)
667 xf86DrvMsg(scrp->scrnIndex, scrp->depthFrom, "Depth %d, ", scrp->depth);
668 xf86Msg(scrp->bitsPerPixelFrom, "framebuffer bpp %d\n", scrp->bitsPerPixel);
672 * xf86SetWeight sets scrp->weight, scrp->mask, scrp->offset, and for depths
673 * greater than MAX_PSEUDO_DEPTH also scrp->rgbBits.
676 xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask)
680 scrp->weight.red = 0;
681 scrp->weight.green = 0;
682 scrp->weight.blue = 0;
685 scrp->weight = xf86Weight;
687 } else if (scrp->display->weight.red > 0 && scrp->display->weight.green > 0
688 && scrp->display->weight.blue > 0) {
689 scrp->weight = scrp->display->weight;
692 scrp->weight = weight;
694 switch (scrp->depth) {
698 scrp->weight.red = scrp->weight.green =
699 scrp->weight.blue = scrp->rgbBits;
702 scrp->weight.red = scrp->weight.green = scrp->weight.blue = 5;
705 scrp->weight.red = scrp->weight.blue = 5;
706 scrp->weight.green = 6;
709 scrp->weight.red = scrp->weight.green = scrp->weight.blue = 6;
712 scrp->weight.red = scrp->weight.green = scrp->weight.blue = 8;
715 scrp->weight.red = scrp->weight.green = scrp->weight.blue = 10;
720 if (scrp->weight.red)
721 xf86DrvMsg(scrp->scrnIndex, weightFrom, "RGB weight %d%d%d\n",
722 (int)scrp->weight.red, (int)scrp->weight.green,
723 (int)scrp->weight.blue);
725 if (scrp->depth > MAX_PSEUDO_DEPTH &&
726 (scrp->depth != scrp->weight.red + scrp->weight.green +
727 scrp->weight.blue)) {
728 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
731 (int)scrp->weight.red, (int)scrp->weight.green,
732 (int)scrp->weight.blue, scrp->depth);
735 if (scrp->depth > MAX_PSEUDO_DEPTH && scrp->weight.red) {
741 scrp->rgbBits = scrp->weight.red;
742 if (scrp->weight.green > scrp->rgbBits)
743 scrp->rgbBits = scrp->weight.green;
744 if (scrp->weight.blue > scrp->rgbBits)
745 scrp->rgbBits = scrp->weight.blue;
751 scrp->offset.red = scrp->weight.green + scrp->weight.blue;
752 scrp->offset.green = scrp->weight.blue;
753 scrp->offset.blue = 0;
754 scrp->mask.red = ((1 << scrp->weight.red) - 1) << scrp->offset.red;
755 scrp->mask.green = ((1 << scrp->weight.green) - 1)
756 << scrp->offset.green;
757 scrp->mask.blue = (1 << scrp->weight.blue) - 1;
760 scrp->mask.red = mask.red;
761 scrp->mask.green = mask.green;
762 scrp->mask.blue = mask.blue;
763 scrp->offset.red = ffs(mask.red);
764 scrp->offset.green = ffs(mask.green);
765 scrp->offset.blue = ffs(mask.blue);
771 xf86SetDefaultVisual(ScrnInfoPtr scrp, int visual)
776 scrp->defaultVisual = defaultColorVisualClass;
778 } else if (scrp->display->defaultVisual >= 0) {
779 scrp->defaultVisual = scrp->display->defaultVisual;
782 scrp->defaultVisual = visual;
784 if (scrp->depth == 1)
785 scrp->defaultVisual = StaticGray;
786 else if (scrp->depth == 4)
787 scrp->defaultVisual = StaticColor;
788 else if (scrp->depth <= MAX_PSEUDO_DEPTH)
789 scrp->defaultVisual = PseudoColor;
791 scrp->defaultVisual = TrueColor;
793 switch (scrp->defaultVisual) {
800 xf86DrvMsg(scrp->scrnIndex, visualFrom, "Default visual is %s\n",
801 xf86VisualNames[scrp->defaultVisual]);
805 xf86DrvMsg(scrp->scrnIndex, X_ERROR,
806 "Invalid default visual class (%d)\n", scrp->defaultVisual);
818 xf86SetGamma(ScrnInfoPtr scrp, Gamma gamma)
822 xf86MonPtr DDC = (xf86MonPtr)(scrp->monitor->DDC);
826 scrp->gamma.red = SET_GAMMA(xf86Gamma.red);
827 scrp->gamma.green = SET_GAMMA(xf86Gamma.green);
828 scrp->gamma.blue = SET_GAMMA(xf86Gamma.blue);
829 } else if (TEST_GAMMA(scrp->monitor->gamma)) {
831 scrp->gamma.red = SET_GAMMA(scrp->monitor->gamma.red);
832 scrp->gamma.green = SET_GAMMA(scrp->monitor->gamma.green);
833 scrp->gamma.blue = SET_GAMMA(scrp->monitor->gamma.blue);
837 scrp->gamma.red = SET_GAMMA(DDC->features.gamma);
838 scrp->gamma.green = SET_GAMMA(DDC->features.gamma);
839 scrp->gamma.blue = SET_GAMMA(DDC->features.gamma);
844 scrp->gamma.red = SET_GAMMA(gamma.red);
845 scrp->gamma.green = SET_GAMMA(gamma.green);
846 scrp->gamma.blue = SET_GAMMA(gamma.blue);
848 scrp->gamma.red = 1.0;
849 scrp->gamma.green = 1.0;
850 scrp->gamma.blue = 1.0;
855 if (xf86_crtc_supports_gamma(scrp))
857 xf86DrvMsg(scrp->scrnIndex, from,
859 scrp->gamma.red, scrp->gamma.green, scrp->gamma.blue);
1343 xf86ShowClocks(ScrnInfoPtr scrp, MessageType from)
1347 xf86DrvMsg(scrp->scrnIndex, from, "Pixel clocks available:");
1348 for (j=0; j < scrp->numClocks; j++) {
1351 xf86DrvMsg(scrp->scrnIndex, from, "pixel clocks:");
1353 xf86ErrorF(" %7.3f", (double)scrp->clock[j] / 1000.0);