[Ce-android-mainline] [PATCH 07/10] android: ram_console: convert to new persistent_ram init

Colin Cross ccross at android.com
Mon Feb 20 00:44:43 UTC 2012


Convert ram_console to the new persistent_ram_init parameters that
only take a struct device * and ecc settings.

Change-Id: I12b018381a2ed5965a8a4b0da40c3e640f92b6cf
Signed-off-by: Colin Cross <ccross at android.com>
---
 drivers/staging/android/ram_console.c |   42 ++++++++-------------------------
 1 files changed, 10 insertions(+), 32 deletions(-)

diff --git a/drivers/staging/android/ram_console.c b/drivers/staging/android/ram_console.c
index 3db14e9..4655922 100644
--- a/drivers/staging/android/ram_console.c
+++ b/drivers/staging/android/ram_console.c
@@ -24,7 +24,7 @@
 #include <linux/persistent_ram.h>
 #include "ram_console.h"
 
-static struct persistent_ram_zone ram_console_zone;
+static struct persistent_ram_zone *ram_console_zone;
 static const char *bootinfo;
 static size_t bootinfo_size;
 
@@ -52,33 +52,13 @@ void ram_console_enable_console(int enabled)
 
 static int ram_console_driver_probe(struct platform_device *pdev)
 {
-	struct resource *res = pdev->resource;
-	size_t start;
-	size_t buffer_size;
-	void *buffer;
 	struct ram_console_platform_data *pdata = pdev->dev.platform_data;
-	int ret;
+	struct persistent_ram_zone *prz;
 
-	if (res == NULL || pdev->num_resources != 1 ||
-	    !(res->flags & IORESOURCE_MEM)) {
-		printk(KERN_ERR "ram_console: invalid resource, %p %d flags "
-		       "%lx\n", res, pdev->num_resources, res ? res->flags : 0);
-		return -ENXIO;
-	}
-	buffer_size = res->end - res->start + 1;
-	start = res->start;
-	printk(KERN_INFO "ram_console: got buffer at %zx, size %zx\n",
-	       start, buffer_size);
-	buffer = ioremap(res->start, buffer_size);
-	if (buffer == NULL) {
-		printk(KERN_ERR "ram_console: failed to map memory\n");
-		return -ENOMEM;
-	}
+	prz = persistent_ram_init_ringbuffer(&pdev->dev, true);
+	if (IS_ERR(prz))
+		return PTR_ERR(prz);
 
-	ret = persistent_ram_init_ringbuffer(&ram_console_zone, buffer,
-					     buffer_size, true);
-	if (ret)
-		goto err;
 
 	if (pdata) {
 		bootinfo = kstrdup(pdata->bootinfo, GFP_KERNEL);
@@ -86,14 +66,12 @@ static int ram_console_driver_probe(struct platform_device *pdev)
 			bootinfo_size = strlen(bootinfo);
 	}
 
-	ram_console.data = &ram_console_zone;
+	ram_console_zone = prz;
+	ram_console.data = prz;
 
 	register_console(&ram_console);
-	return 0;
 
-err:
-	iounmap(buffer);
-	return ret;
+	return 0;
 }
 
 static struct platform_driver ram_console_driver = {
@@ -115,7 +93,7 @@ static ssize_t ram_console_read_old(struct file *file, char __user *buf,
 {
 	loff_t pos = *offset;
 	ssize_t count;
-	struct persistent_ram_zone *prz = &ram_console_zone;
+	struct persistent_ram_zone *prz = ram_console_zone;
 	size_t old_log_size = persistent_ram_old_size(prz);
 	const char *old_log = persistent_ram_old(prz);
 	char *str;
@@ -170,7 +148,7 @@ static const struct file_operations ram_console_file_ops = {
 static int __init ram_console_late_init(void)
 {
 	struct proc_dir_entry *entry;
-	struct persistent_ram_zone *prz = &ram_console_zone;
+	struct persistent_ram_zone *prz = ram_console_zone;
 
 	if (persistent_ram_old_size(prz) == 0)
 		return 0;
-- 
1.7.7.3



More information about the Ce-android-mainline mailing list