提交 51aa87be 编写于 作者: U Uwe Kleine-König 提交者: Russell King

ARM: 6263/1: ns9xxx: fix FTBFS for zImage

the different putc variants used an initialized local static variable
which is broken since

	5de813b6 (ARM: Eliminate decompressor -Dstatic= PIC hack)

This needs to be initialized at runtime and so needs to be global.
While at it give it a better name.
Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 73bcc76a
...@@ -20,50 +20,49 @@ static void putc_dummy(char c, void __iomem *base) ...@@ -20,50 +20,49 @@ static void putc_dummy(char c, void __iomem *base)
/* nothing */ /* nothing */
} }
static int timeout;
static void putc_ns9360(char c, void __iomem *base) static void putc_ns9360(char c, void __iomem *base)
{ {
static int t = 0x10000;
do { do {
if (t) if (timeout)
--t; --timeout;
if (__raw_readl(base + 8) & (1 << 3)) { if (__raw_readl(base + 8) & (1 << 3)) {
__raw_writeb(c, base + 16); __raw_writeb(c, base + 16);
t = 0x10000; timeout = 0x10000;
break; break;
} }
} while (t); } while (timeout);
} }
static void putc_a9m9750dev(char c, void __iomem *base) static void putc_a9m9750dev(char c, void __iomem *base)
{ {
static int t = 0x10000;
do { do {
if (t) if (timeout)
--t; --timeout;
if (__raw_readb(base + 5) & (1 << 5)) { if (__raw_readb(base + 5) & (1 << 5)) {
__raw_writeb(c, base); __raw_writeb(c, base);
t = 0x10000; timeout = 0x10000;
break; break;
} }
} while (t); } while (timeout);
} }
static void putc_ns921x(char c, void __iomem *base) static void putc_ns921x(char c, void __iomem *base)
{ {
static int t = 0x10000;
do { do {
if (t) if (timeout)
--t; --timeout;
if (!(__raw_readl(base) & (1 << 11))) { if (!(__raw_readl(base) & (1 << 11))) {
__raw_writeb(c, base + 0x0028); __raw_writeb(c, base + 0x0028);
t = 0x10000; timeout = 0x10000;
break; break;
} }
} while (t); } while (timeout);
} }
#define MSCS __REG(0xA0900184) #define MSCS __REG(0xA0900184)
...@@ -89,6 +88,7 @@ static void putc_ns921x(char c, void __iomem *base) ...@@ -89,6 +88,7 @@ static void putc_ns921x(char c, void __iomem *base)
static void autodetect(void (**putc)(char, void __iomem *), void __iomem **base) static void autodetect(void (**putc)(char, void __iomem *), void __iomem **base)
{ {
timeout = 0x10000;
if (((__raw_readl(MSCS) >> 16) & 0xfe) == 0x00) { if (((__raw_readl(MSCS) >> 16) & 0xfe) == 0x00) {
/* ns9360 or ns9750 */ /* ns9360 or ns9750 */
if (NS9360_UART_ENABLED(NS9360_UARTA)) { if (NS9360_UART_ENABLED(NS9360_UARTA)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册