* [PATCH] use sparc64 version of prom/printf.c
@ 2008-12-07 18:29 Robert Reif
2008-12-07 19:19 ` Sam Ravnborg
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Robert Reif @ 2008-12-07 18:29 UTC (permalink / raw)
To: sparclinux
[-- Attachment #1: Type: text/plain, Size: 197 bytes --]
Use sparc64 version of prom/printf.c.
The only differences for sparc32 is that prom_printf is no longer
exported for modules which should be OK.
Signed-off-by: Robert Reif <reif@earthlink.net>
[-- Attachment #2: prom-printf.diff.txt --]
[-- Type: text/plain, Size: 5419 bytes --]
arch/sparc/include/asm/oplib_32.h | 2 +-
arch/sparc/prom/Makefile | 2 +-
arch/sparc/prom/printf.c | 47 ++++++++++++++++++++++++++++++++++++
arch/sparc/prom/printf_32.c | 48 -------------------------------------
arch/sparc/prom/printf_64.c | 47 ------------------------------------
5 files changed, 49 insertions(+), 97 deletions(-)
create mode 100644 arch/sparc/prom/printf.c
delete mode 100644 arch/sparc/prom/printf_32.c
delete mode 100644 arch/sparc/prom/printf_64.c
diff --git a/arch/sparc/include/asm/oplib_32.h b/arch/sparc/include/asm/oplib_32.h
index 3bdf56f..73d4552 100644
--- a/arch/sparc/include/asm/oplib_32.h
+++ b/arch/sparc/include/asm/oplib_32.h
@@ -136,7 +136,7 @@ extern char prom_getchar(void);
extern void prom_putchar(char character);
/* Prom's internal routines, don't use in kernel/boot code. */
-extern void prom_printf(char *fmt, ...);
+extern void prom_printf(const char *fmt, ...);
extern void prom_write(const char *buf, unsigned int len);
/* Multiprocessor operations... */
diff --git a/arch/sparc/prom/Makefile b/arch/sparc/prom/Makefile
index f8e0278..1b8c073 100644
--- a/arch/sparc/prom/Makefile
+++ b/arch/sparc/prom/Makefile
@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += palloc.o
lib-$(CONFIG_SPARC32) += ranges.o
lib-$(CONFIG_SPARC32) += segment.o
lib-y += console_$(BITS).o
-lib-y += printf_$(BITS).o
+lib-y += printf.o
lib-y += tree_$(BITS).o
lib-$(CONFIG_SPARC64) += p1275.o
lib-$(CONFIG_SPARC64) += cif.o
diff --git a/arch/sparc/prom/printf.c b/arch/sparc/prom/printf.c
new file mode 100644
index 0000000..660943e
--- /dev/null
+++ b/arch/sparc/prom/printf.c
@@ -0,0 +1,47 @@
+/*
+ * printf.c: Internal prom library printf facility.
+ *
+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
+ * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
+ * Copyright (c) 2002 Pete Zaitcev (zaitcev@yahoo.com)
+ *
+ * We used to warn all over the code: DO NOT USE prom_printf(),
+ * and yet people do. Anton's banking code was outputting banks
+ * with prom_printf for most of the 2.4 lifetime. Since an effective
+ * stick is not available, we deployed a carrot: an early printk
+ * through PROM by means of -p boot option. This ought to fix it.
+ * USE printk; if you need, deploy -p.
+ */
+
+#include <linux/kernel.h>
+
+#include <asm/openprom.h>
+#include <asm/oplib.h>
+
+static char ppbuf[1024];
+
+void
+prom_write(const char *buf, unsigned int n)
+{
+ char ch;
+
+ while (n != 0) {
+ --n;
+ if ((ch = *buf++) == '\n')
+ prom_putchar('\r');
+ prom_putchar(ch);
+ }
+}
+
+void
+prom_printf(const char *fmt, ...)
+{
+ va_list args;
+ int i;
+
+ va_start(args, fmt);
+ i = vscnprintf(ppbuf, sizeof(ppbuf), fmt, args);
+ va_end(args);
+
+ prom_write(ppbuf, i);
+}
diff --git a/arch/sparc/prom/printf_32.c b/arch/sparc/prom/printf_32.c
deleted file mode 100644
index a36ab9c..0000000
--- a/arch/sparc/prom/printf_32.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * printf.c: Internal prom library printf facility.
- *
- * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
- * Copyright (c) 2002 Pete Zaitcev (zaitcev@yahoo.com)
- *
- * We used to warn all over the code: DO NOT USE prom_printf(),
- * and yet people do. Anton's banking code was outputting banks
- * with prom_printf for most of the 2.4 lifetime. Since an effective
- * stick is not available, we deployed a carrot: an early printk
- * through PROM by means of -p boot option. This ought to fix it.
- * USE printk; if you need, deploy -p.
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-
-#include <asm/openprom.h>
-#include <asm/oplib.h>
-
-static char ppbuf[1024];
-
-void
-prom_write(const char *buf, unsigned int n)
-{
- char ch;
-
- while (n != 0) {
- --n;
- if ((ch = *buf++) == '\n')
- prom_putchar('\r');
- prom_putchar(ch);
- }
-}
-
-void
-prom_printf(char *fmt, ...)
-{
- va_list args;
- int i;
-
- va_start(args, fmt);
- i = vscnprintf(ppbuf, sizeof(ppbuf), fmt, args);
- va_end(args);
-
- prom_write(ppbuf, i);
-}
-EXPORT_SYMBOL(prom_printf);
diff --git a/arch/sparc/prom/printf_64.c b/arch/sparc/prom/printf_64.c
deleted file mode 100644
index 660943e..0000000
--- a/arch/sparc/prom/printf_64.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * printf.c: Internal prom library printf facility.
- *
- * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
- * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
- * Copyright (c) 2002 Pete Zaitcev (zaitcev@yahoo.com)
- *
- * We used to warn all over the code: DO NOT USE prom_printf(),
- * and yet people do. Anton's banking code was outputting banks
- * with prom_printf for most of the 2.4 lifetime. Since an effective
- * stick is not available, we deployed a carrot: an early printk
- * through PROM by means of -p boot option. This ought to fix it.
- * USE printk; if you need, deploy -p.
- */
-
-#include <linux/kernel.h>
-
-#include <asm/openprom.h>
-#include <asm/oplib.h>
-
-static char ppbuf[1024];
-
-void
-prom_write(const char *buf, unsigned int n)
-{
- char ch;
-
- while (n != 0) {
- --n;
- if ((ch = *buf++) == '\n')
- prom_putchar('\r');
- prom_putchar(ch);
- }
-}
-
-void
-prom_printf(const char *fmt, ...)
-{
- va_list args;
- int i;
-
- va_start(args, fmt);
- i = vscnprintf(ppbuf, sizeof(ppbuf), fmt, args);
- va_end(args);
-
- prom_write(ppbuf, i);
-}
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] use sparc64 version of prom/printf.c
2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
@ 2008-12-07 19:19 ` Sam Ravnborg
2008-12-07 19:40 ` Sam Ravnborg
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Sam Ravnborg @ 2008-12-07 19:19 UTC (permalink / raw)
To: sparclinux
Hi Robert.
On Sun, Dec 07, 2008 at 01:29:42PM -0500, Robert Reif wrote:
> Use sparc64 version of prom/printf.c.
>
> The only differences for sparc32 is that prom_printf is no longer
> exported for modules which should be OK.
cyber200fb uses prom_prinf and can be built as a module.
From Kconfig:
config FB_CYBER2000
tristate "CyberPro 2000/2010/5000 support"
depends on FB && PCI && (BROKEN || !SPARC64)
So it looks to me we should keep the EXPORT.
Sam
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] use sparc64 version of prom/printf.c
2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
2008-12-07 19:19 ` Sam Ravnborg
@ 2008-12-07 19:40 ` Sam Ravnborg
2008-12-08 1:53 ` Robert Reif
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Sam Ravnborg @ 2008-12-07 19:40 UTC (permalink / raw)
To: sparclinux
On Sun, Dec 07, 2008 at 08:19:21PM +0100, Sam Ravnborg wrote:
> Hi Robert.
>
> On Sun, Dec 07, 2008 at 01:29:42PM -0500, Robert Reif wrote:
> > Use sparc64 version of prom/printf.c.
> >
> > The only differences for sparc32 is that prom_printf is no longer
> > exported for modules which should be OK.
>
> cyber200fb uses prom_prinf and can be built as a module.
> >From Kconfig:
>
> config FB_CYBER2000
> tristate "CyberPro 2000/2010/5000 support"
> depends on FB && PCI && (BROKEN || !SPARC64)
>
> So it looks to me we should keep the EXPORT.
And a test bult with your patch confirmed this:
MODPOST 5 modules
ERROR: "prom_printf" [drivers/video/cyber2000fb.ko] undefined!
make[2]: *** [__modpost] Error 1
make[1]: *** [modules] Error 2
Please redo your patch with the EXPORT kept.
I cannot see that it hurts sparc64 so no need to do it conditionally.
Sam
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] use sparc64 version of prom/printf.c
2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
2008-12-07 19:19 ` Sam Ravnborg
2008-12-07 19:40 ` Sam Ravnborg
@ 2008-12-08 1:53 ` Robert Reif
2008-12-08 7:42 ` David Miller
2008-12-08 9:00 ` David Miller
4 siblings, 0 replies; 6+ messages in thread
From: Robert Reif @ 2008-12-08 1:53 UTC (permalink / raw)
To: sparclinux
Sam Ravnborg wrote:
> Hi Robert.
>
> On Sun, Dec 07, 2008 at 01:29:42PM -0500, Robert Reif wrote:
>
>> Use sparc64 version of prom/printf.c.
>>
>> The only differences for sparc32 is that prom_printf is no longer
>> exported for modules which should be OK.
>>
>
> cyber200fb uses prom_prinf and can be built as a module.
> >From Kconfig:
>
> config FB_CYBER2000
> tristate "CyberPro 2000/2010/5000 support"
> depends on FB && PCI && (BROKEN || !SPARC64)
>
> So it looks to me we should keep the EXPORT.
>
> Sam
>
>
Since this is the only driver that can use prom_printf in a module
and it appears that the only sparc system that uses it is an unreleased
version of the java station, wouldn't it be better to change the
prom_printf to a printk in this driver?
I didn't see this problem because I don't compile with pci support
because it's one of the things I have to disable to get a kernel
small enough to actually load.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] use sparc64 version of prom/printf.c
2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
` (2 preceding siblings ...)
2008-12-08 1:53 ` Robert Reif
@ 2008-12-08 7:42 ` David Miller
2008-12-08 9:00 ` David Miller
4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2008-12-08 7:42 UTC (permalink / raw)
To: sparclinux
From: Robert Reif <reif@earthlink.net>
Date: Sun, 07 Dec 2008 20:53:40 -0500
> Sam Ravnborg wrote:
> > Hi Robert.
> >
> > On Sun, Dec 07, 2008 at 01:29:42PM -0500, Robert Reif wrote:
> >
> >> Use sparc64 version of prom/printf.c.
> >>
> >> The only differences for sparc32 is that prom_printf is no longer exported for modules which should be OK.
> >>
> >
> > cyber200fb uses prom_prinf and can be built as a module.
> > >From Kconfig:
> >
> > config FB_CYBER2000
> > tristate "CyberPro 2000/2010/5000 support"
> > depends on FB && PCI && (BROKEN || !SPARC64)
> >
> > So it looks to me we should keep the EXPORT.
> >
> > Sam
> >
> >
> Since this is the only driver that can use prom_printf in a module
> and it appears that the only sparc system that uses it is an unreleased
> version of the java station, wouldn't it be better to change the
> prom_printf to a printk in this driver?
That's a reasonable way to handle this problem.
The reason that prom_printf() tends to be widespread
is that long ago we didn't have a "-p" kernel boot
command line option which is useful for debugging
console driver failures.
Otherwise you don't get the message so have no idea
what has gone wrong :)
I'll sort this out, thanks guys.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] use sparc64 version of prom/printf.c
2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
` (3 preceding siblings ...)
2008-12-08 7:42 ` David Miller
@ 2008-12-08 9:00 ` David Miller
4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2008-12-08 9:00 UTC (permalink / raw)
To: sparclinux
From: Robert Reif <reif@earthlink.net>
Date: Sun, 07 Dec 2008 13:29:42 -0500
> Use sparc64 version of prom/printf.c.
>
> The only differences for sparc32 is that prom_printf is no longer exported for modules which should be OK.
>
> Signed-off-by: Robert Reif <reif@earthlink.net>
Applied, thanks Robert.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-12-08 9:00 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-07 18:29 [PATCH] use sparc64 version of prom/printf.c Robert Reif
2008-12-07 19:19 ` Sam Ravnborg
2008-12-07 19:40 ` Sam Ravnborg
2008-12-08 1:53 ` Robert Reif
2008-12-08 7:42 ` David Miller
2008-12-08 9:00 ` David Miller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.