Commit Graph

13 Commits

Author SHA1 Message Date
David S. Miller bce5feeab4 sparc: Eliminate prom_stdin.
Completely unused.

Based upon a patch by Julian Calaby.

Signed-off-by: David S. Miller <davem@davemloft.net>
2010-12-12 14:57:53 -08:00
David S. Miller 595a251c07 sparc: Write to prom console using indirect buffer.
sparc64 systems have a restriction in that passing in buffer
addressses above 4GB to prom calls is not reliable.

We end up violating this when we do prom console writes, because we
use an on-stack buffer to translate '\n' into '\r\n'.

So instead, do this translation into an intermediate buffer, which is
in the kernel image and thus below 4GB, then pass that to the PROM
console write calls.

On the 32-bit side we don't have to deal with any of these issues, so
the new prom_console_write_buf() uses the existing prom_nbputchar()
implementation.  However we can now mark those routines static.

Since the 64-bit side completely uses new code we can delete the
putchar bits as they are now completely unused.

Signed-off-by: David S. Miller <davem@davemloft.net>
2010-11-30 20:15:58 -08:00
David S. Miller 12c7a35ee6 sparc: Delete prom_*getchar().
Completely unused.

Signed-off-by: David S. Miller <davem@davemloft.net>
2010-11-30 14:53:05 -08:00
David S. Miller e62cac1fd0 sparc: Pass buffer pointer all the way down to prom_{get,put}char().
This gets us closer to being able to eliminate the use
of dynamic and stack based buffers, so that we can adhere
to the "no buffer addresses above 4GB" rule for PROM calls.

Signed-off-by: David S. Miller <davem@davemloft.net>
2010-11-30 14:33:29 -08:00
David S. Miller 91921fef7c sparc: Do not export prom_nb{get,put}char().
Never used outside of console_{32,64}.c

Signed-off-by: David S. Miller <davem@davemloft.net>
2010-11-17 10:22:56 -08:00
David S. Miller c540ee70e4 sparc64: Delete prom_setcallback().
Unused.

Signed-off-by: David S. Miller <davem@davemloft.net>
2010-11-16 12:50:19 -08:00
David S. Miller f7b5f55ac1 sparc64: Unexport prom_service_exists().
Only used by functions in misc_64.c so make it private
to that file.

Signed-off-by: David S. Miller <davem@davemloft.net>
2010-11-16 12:24:16 -08:00
David S. Miller b148246912 sparc: Kill prom devops_{32,64}.c
Completely unused.

Signed-off-by: David S. Miller <davem@davemloft.net>
2010-11-16 12:23:20 -08:00
David S. Miller 17d70d6df0 sparc: Remove prom_pathtoinode()
Unused.

Signed-off-by: David S. Miller <davem@davemloft.net>
2010-11-16 12:11:15 -08:00
Andres Salomon 8d1255627d of/sparc: convert various prom_* functions to use phandle
Rather than passing around ints everywhere, use the
phandle type where appropriate for the various functions
that talk to the PROM.

Signed-off-by: Andres Salomon <dilinger@queued.net>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2010-10-09 02:33:34 -06:00
David S. Miller 25edd6946a sparc64: Get rid of indirect p1275 PROM call buffer.
This is based upon a report by Meelis Roos showing that it's possible
that we'll try to fetch a property that is 32K in size with some
devices.  With the current fixed 3K buffer we use for moving data in
and out of the firmware during PROM calls, that simply won't work.

In fact, it will scramble random kernel data during bootup.

The reasoning behind the temporary buffer is entirely historical.  It
used to be the case that we had problems referencing dynamic kernel
memory (including the stack) early in the boot process before we
explicitly told the firwmare to switch us over to the kernel trap
table.

So what we did was always give the firmware buffers that were locked
into the main kernel image.

But we no longer have problems like that, so get rid of all of this
indirect bounce buffering.

Besides fixing Meelis's bug, this also makes the kernel data about 3K
smaller.

It was also discovered during these conversions that the
implementation of prom_retain() was completely wrong, so that was
fixed here as well.  Currently that interface is not in use.

Reported-by: Meelis Roos <mroos@linux.ee>
Tested-by: Meelis Roos <mroos@linux.ee>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-08-23 23:10:57 -07:00
Julian Calaby bc835978cf sparc: Kill exports of prom internal functions
__prom_getchild() and __prom_getsibling() are not used anywhere, so
don't export them.

Signed-off-by: Julian Calaby <julian.calaby@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-01-08 16:58:42 -08:00
Sam Ravnborg a439fe51a1 sparc, sparc64: use arch/sparc/include
The majority of this patch was created by the following script:

***
ASM=arch/sparc/include/asm
mkdir -p $ASM
git mv include/asm-sparc64/ftrace.h $ASM
git rm include/asm-sparc64/*
git mv include/asm-sparc/* $ASM
sed -ie 's/asm-sparc64/asm/g' $ASM/*
sed -ie 's/asm-sparc/asm/g' $ASM/*
***

The rest was an update of the top-level Makefile to use sparc
for header files when sparc64 is being build.
And a small fixlet to pick up the correct unistd.h from
sparc64 code.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-07-27 23:00:59 +02:00