linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sven Luther <luther@dpt-info.u-strasbg.fr>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Sven Luther <luther@dpt-info.u-strasbg.fr>,
	Linux Frame Buffer Device Development
	<linux-fbdev-devel@lists.sourceforge.net>
Subject: Re: writing to a floating point register ?
Date: Wed, 5 Feb 2003 12:02:27 +0100	[thread overview]
Message-ID: <20030205110227.GA977@iliana> (raw)
In-Reply-To: <Pine.GSO.4.21.0302051140460.16681-100000@vervain.sonytel.be>

On Wed, Feb 05, 2003 at 11:44:23AM +0100, Geert Uytterhoeven wrote:
> On Wed, 5 Feb 2003, Sven Luther wrote:
> > On Wed, Feb 05, 2003 at 11:28:58AM +0100, Geert Uytterhoeven wrote:
> > > On Wed, 5 Feb 2003, Sven Luther wrote:
> > > > while writing a fbdev driver, i need to write a value to a floating
> > > > point register. Do we have any macro doing this, or should i need to
> > > > calculate the sign, mantissa and exponent by hand ?
> > > > 
> > > > Just doing a unsigned int cast would round the value i think, and thus
> > > > not give the right result.
> > > 
> > > You cannot use floating point math in the kernel.
> > > 
> > > What exactly are you trying to achieve?
> > 
> > Well, my framebuffer is not linear, and i have to enable a bypass unit
> > to fake a linear framebuffer. This bypass unit need that i write the
> > bytestride/64 32bit floating point value in a register.
> > 
> > for example : 1024 in 32 bpp => 4*1024/64 = 64.
> > 
> > 64 is 0100 0000 or 1.0 * 2^6.
> > 
> > So i have sign = 0, exp = 127+6=133 = 10000101, and mantissa = 0.
> > 
> > which gives 0100 0010 1000 0000 ... or 0x42 80 00 00.
> > 
> > I was hoping that i would not need to do this calculation by hand, but i
> > guess it is not possible, since like you said, we cannot use the FP
> > unit in the kernel.
> 
> Even if you could, it would work for 32-bit IEEE floating point format only.
> Is the hardware register format IEEE compatible.

Mmm, sure, didn't think of this. Would endianess and other such issue 
not be a problem for this kind of calculation ? Would it make sense to
have a special macro available for this kind of thing, like we have for
writing 8, 16 or 32 bits ?

> Anyway, the calculation is not that difficult.

Sure ...

> Perhaps you can even restrict line_length to be a multiple of 64 in all cases,
> in which case it's even made more easy?

Are all video modes we want to use multiples of 64 ? I guess yes.

> Does the hardware register allow denormalized numbers? Since you want to divide
> by 64 only, this would allow you to use a fixed exponent.

Erm, no idea, will need to try. That say, i don't know much about
floating point numbers, so i really don't know all that much about
denormalized numbers.

Mmm, i guess you mean that since we divide by 64, the mantissa would
always be 0 (1.000...) and we only need to write 127 + log2(value) in it
?  
Friendly,

Sven Luther


-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com

  reply	other threads:[~2003-02-05 11:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-05 10:17 writing to a floating point register ? Sven Luther
2003-02-05 10:28 ` Geert Uytterhoeven
2003-02-05 10:38   ` Sven Luther
2003-02-05 10:44     ` Geert Uytterhoeven
2003-02-05 11:02       ` Sven Luther [this message]
2003-02-05 12:04       ` Sven Luther

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=20030205110227.GA977@iliana \
    --to=luther@dpt-info.u-strasbg.fr \
    --cc=geert@linux-m68k.org \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    /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).