diff mbox

[v2,05/14] console: move mambo con_ops into the platform

Message ID 1482213825-30448-6-git-send-email-oohall@gmail.com
State Superseded
Headers show

Commit Message

Oliver O'Halloran Dec. 20, 2016, 6:03 a.m. UTC
There's no need for this to be in the skiboot core console code.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
---
 core/console.c               | 41 ---------------------
 platforms/mambo/Makefile.inc |  2 +-
 platforms/mambo/console.c    | 84 ++++++++++++++++++++++++++++++++++++++++++++
 platforms/mambo/mambo.c      | 10 ------
 4 files changed, 85 insertions(+), 52 deletions(-)
 create mode 100644 platforms/mambo/console.c

Comments

Andrew Donnellan Dec. 20, 2016, 6:57 a.m. UTC | #1
On 20/12/16 17:03, Oliver O'Halloran wrote:
> There's no need for this to be in the skiboot core console code.
>
> Signed-off-by: Oliver O'Halloran <oohall@gmail.com>

A couple of minor comments below. Otherwise:

Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>

> diff --git a/platforms/mambo/console.c b/platforms/mambo/console.c
> new file mode 100644
> index 000000000000..9bf4050b3a5d
> --- /dev/null
> +++ b/platforms/mambo/console.c
> @@ -0,0 +1,84 @@
> +/* Copyright 2015 IBM Corp.
> + *
> + * Licensed under the Apache License, Version 2.0 (the "License");
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + *     http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> + * implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +#include <skiboot.h>
> +#include <device.h>
> +#include <console.h>
> +#include <chip.h>
> +#include <opal-api.h>
> +#include <opal-internal.h>
> +#include <time-utils.h>
> +#include <time.h>

This block can be reduced to skiboot.h and console.h.

> +
> +#include "mambo.h"
> +
> +int mambo_console_read(void)
> +{
> +	return callthru0(SIM_READ_CONSOLE_CODE);
> +}

This can be static and the extern in console.h dropped, though we still 
call mambo_console_write() from console.c.

> +static size_t mambo_con_write(const char *buf, size_t len)
> +{
> +	mambo_console_write(buf, len);
> +	return len;
> +}

This feels a bit redundant, idk.
diff mbox

Patch

diff --git a/core/console.c b/core/console.c
index bb8a8b4bbe8f..bb0bdef13f7d 100644
--- a/core/console.c
+++ b/core/console.c
@@ -61,47 +61,6 @@  void force_dummy_console(void)
 						NULL, 0);
 }
 
-static int mambo_char = -1;
-
-static bool mambo_con_poll_read(void)
-{
-	if (mambo_char < 0)
-		mambo_char = mambo_console_read();
-	return mambo_char >= 0;
-}
-
-static size_t mambo_con_read(char *buf, size_t len)
-{
-	size_t count = 0;
-
-	while(count < len) {
-		if (!mambo_con_poll_read())
-			break;
-		*(buf++) = mambo_char;
-		mambo_char = -1;
-		count++;
-	}
-	return count;
-}
-
-static size_t mambo_con_write(const char *buf, size_t len)
-{
-	mambo_console_write(buf, len);
-	return len;
-}
-
-static struct con_ops mambo_con_driver = {
-	.poll_read = mambo_con_poll_read,
-	.read = mambo_con_read,
-	.write = mambo_con_write,
-};
-
-void enable_mambo_console(void)
-{
-	prlog(PR_NOTICE, "Enabling Mambo console\n");
-	set_console(&mambo_con_driver);
-}
-
 /*
  * Helper function for adding /ibm,opal/consoles/serial@<xyz> nodes
  */
diff --git a/platforms/mambo/Makefile.inc b/platforms/mambo/Makefile.inc
index 2cc86136dc71..f3023ef0194d 100644
--- a/platforms/mambo/Makefile.inc
+++ b/platforms/mambo/Makefile.inc
@@ -1,6 +1,6 @@ 
 SUBDIRS += $(PLATDIR)/mambo
 
-MAMBO_OBJS = mambo.o
+MAMBO_OBJS = mambo.o console.o
 MAMBO = $(PLATDIR)/mambo/built-in.o
 $(MAMBO): $(MAMBO_OBJS:%=$(PLATDIR)/mambo/%)
 
diff --git a/platforms/mambo/console.c b/platforms/mambo/console.c
new file mode 100644
index 000000000000..9bf4050b3a5d
--- /dev/null
+++ b/platforms/mambo/console.c
@@ -0,0 +1,84 @@ 
+/* Copyright 2015 IBM Corp.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <skiboot.h>
+#include <device.h>
+#include <console.h>
+#include <chip.h>
+#include <opal-api.h>
+#include <opal-internal.h>
+#include <time-utils.h>
+#include <time.h>
+
+#include "mambo.h"
+
+int mambo_console_read(void)
+{
+	return callthru0(SIM_READ_CONSOLE_CODE);
+}
+
+void mambo_console_write(const char *buf, size_t count)
+{
+	callthru2(SIM_WRITE_CONSOLE_CODE, (unsigned long)buf, count);
+}
+
+/*
+ * mambo_console_read() will return -1 if there is no character to read. There's
+ * no explicit polling method so we "poll" by doing a read. If successful we
+ * stash the character until an actual read operation.
+ */
+static int mambo_char = -1;
+
+static bool mambo_con_poll_read(void)
+{
+	if (mambo_char < 0)
+		mambo_char = mambo_console_read();
+
+	return mambo_char >= 0;
+}
+
+static size_t mambo_con_read(char *buf, size_t len)
+{
+	size_t count = 0;
+
+	while (count < len) {
+		if (!mambo_con_poll_read())
+			break;
+
+		buf[count++] = mambo_char;
+		mambo_char = -1;
+	}
+
+	return count;
+}
+
+static size_t mambo_con_write(const char *buf, size_t len)
+{
+	mambo_console_write(buf, len);
+	return len;
+}
+
+static struct con_ops mambo_con_driver = {
+	.poll_read = mambo_con_poll_read,
+	.read = mambo_con_read,
+	.write = mambo_con_write,
+};
+
+void enable_mambo_console(void)
+{
+	prlog(PR_NOTICE, "Enabling Mambo console\n");
+	set_console(&mambo_con_driver);
+}
diff --git a/platforms/mambo/mambo.c b/platforms/mambo/mambo.c
index a5788b872585..807931392bf0 100644
--- a/platforms/mambo/mambo.c
+++ b/platforms/mambo/mambo.c
@@ -211,16 +211,6 @@  static void mambo_rtc_init(void)
 	opal_register(OPAL_RTC_READ, mambo_rtc_read, 2);
 }
 
-int mambo_console_read(void)
-{
-	return callthru0(SIM_READ_CONSOLE_CODE);
-}
-
-void mambo_console_write(const char *buf, size_t count)
-{
-	callthru2(SIM_WRITE_CONSOLE_CODE, (unsigned long)buf, count);
-}
-
 static void mambo_platform_init(void)
 {
 	force_dummy_console();