linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Antonino A. Daplas" <adaplas@hotpop.com>
To: Joshua Kwan <joshk@triplehelix.org>
Cc: linux-kernel mailing list <linux-kernel@vger.kernel.org>,
	linux-fbdev-devel@lists.sourceforge.net
Subject: Re: Problem with current fb_get_color_depth function
Date: Mon, 11 Oct 2004 08:33:10 +0800	[thread overview]
Message-ID: <200410110832.19978.adaplas@hotpop.com> (raw)
In-Reply-To: <20041010225903.GA2418@darjeeling.triplehelix.org>

On Monday 11 October 2004 06:59, Joshua Kwan wrote:
> because on advice from Andrew Suffield and Matthew Garrett the first
> conditional was a roundabout way to check for grayscale displays, where
> you can't actually have 24 bits (8 + 8 + 8) of gray. So it is suitable
> to just return one of the values arbitrarily. But I noticed there was
> also a grayscale variable, so I substituted that for the conditional
> and my logo reappeared again :)
>
> So is radeonfb or fb_get_color_depth at fault here? Or was the logo
> never appropriate for my display in the first place? (Unlikely, the
> CLUT224 linux logo always displayed perfectly for me until now.)
>

This is because radeonfb chooses directcolor for its visual.  With RGB565,
the depth == 16, true.  However, unlike truecolor where color values are
hardwired to linear values, directcolor looks at the hardware CLUT.

So, with directcolor RGB656, these are the CLUT lengths:

Red and Blue = 32 (2 ^ 5)
Green        = 64 (2 ^ 6)

(And you can see this in radeonfb_base:radeonfb_setcolreg())

		if (rinfo->bpp == 16) {
			pindex = regno * 8;

			if (rinfo->depth == 16 && regno > 63)
				return 1;
			if (rinfo->depth == 15 && regno > 31)
				return 1;

However, linux_logo_224 requires a CLUT with these lengths:

Red = Green = Blue = 224;

So, linux_logo_224 cannot be drawn when visual is directcolor at RGB555 or
RGB565 because the logo clut requirements exceeds the hardware clut
capability. You need to use a logo image with a lower depth such as the
16-color logo, linux_logo_16.

In short, fb_get_color_depth() and radeonfb both do the correct thing, but
you need a logo with a lower color depth. Or choose RGB888 or higher, or
set the visual to truecolor.

Tony

PS: Note that this behavior is the same as 2.4 behavior (224-color logo is
only chosen if directcolor and bpp >= 24).  It might have worked before, and
this is probably due to the directcolor clut being ramped to truecolor
values. However, the correct solution is to use a 16-color logo.




 

  reply	other threads:[~2004-10-11  0:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-10 22:59 Problem with current fb_get_color_depth function Joshua Kwan
2004-10-11  0:33 ` Antonino A. Daplas [this message]
2004-11-02  5:55   ` Joshua Kwan
2004-11-02 12:04     ` [Linux-fbdev-devel] " Antonino A. Daplas
2004-11-02 12:19     ` Geert Uytterhoeven
2004-11-02 22:10     ` Antonino A. Daplas
2004-11-11  8:27       ` [Linux-fbdev-devel] " Joshua Kwan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200410110832.19978.adaplas@hotpop.com \
    --to=adaplas@hotpop.com \
    --cc=adaplas@pol.net \
    --cc=joshk@triplehelix.org \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).