diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1104-debug-glamo-dump-regs.patch.patch')
-rw-r--r-- | target/linux/s3c24xx/patches-2.6.24/1104-debug-glamo-dump-regs.patch.patch | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1104-debug-glamo-dump-regs.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1104-debug-glamo-dump-regs.patch.patch deleted file mode 100644 index 8e1c07d10e..0000000000 --- a/target/linux/s3c24xx/patches-2.6.24/1104-debug-glamo-dump-regs.patch.patch +++ /dev/null @@ -1,133 +0,0 @@ -From dda4110e4b365da5a520e8c2e3964d556206881d Mon Sep 17 00:00:00 2001 -From: warmcat <andy@warmcat.com> -Date: Sun, 13 Apr 2008 07:25:52 +0100 -Subject: [PATCH] debug-glamo-dump-regs.patch - From: Andy Green <andy@openmoko.com> - -Sigend-off-by: Andy Green <andy@openmoko.com> ---- - drivers/mfd/glamo/glamo-core.c | 91 +++++++++++++++++++++++++++++++++++++++- - 1 files changed, 90 insertions(+), 1 deletions(-) - -diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c -index 4d8e47f..accd933 100644 ---- a/drivers/mfd/glamo/glamo-core.c -+++ b/drivers/mfd/glamo/glamo-core.c -@@ -977,10 +977,92 @@ static int glamo_supported(struct glamo_core *glamo) - return 1; - } - -+static ssize_t regs_write(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) -+{ -+ unsigned long reg = simple_strtoul(buf, NULL, 10); -+ struct glamo_core *glamo = dev_get_drvdata(dev); -+ -+ while (*buf && (*buf != ' ')) -+ buf++; -+ if (*buf != ' ') -+ return -EINVAL; -+ while (*buf && (*buf == ' ')) -+ buf++; -+ if (!*buf) -+ return -EINVAL; -+ -+ printk(KERN_INFO"reg 0x%02lX <-- 0x%04lX\n", -+ reg, simple_strtoul(buf, NULL, 10)); -+ -+ __reg_write(glamo, reg, simple_strtoul(buf, NULL, 10)); -+ -+ return count; -+} -+ -+static ssize_t regs_read(struct device *dev, struct device_attribute *attr, -+ char *buf) -+{ -+ struct glamo_core *glamo = dev_get_drvdata(dev); -+ int n, n1 = 0, r; -+ char * end = buf; -+ struct reg_range { -+ int start; -+ int count; -+ char * name; -+ }; -+ struct reg_range reg_range[] = { -+ { 0x0000, 0x200, "General" }, -+ { 0x0200, 0x100, "Host Bus" }, -+ { 0x0300, 0x100, "Memory" }, -+/* { 0x0400, 0x100, "Sensor" }, -+ { 0x0500, 0x300, "ISP" }, -+ { 0x0800, 0x400, "JPEG" }, -+ { 0x0c00, 0x500, "MPEG" }, -+ { 0x1100, 0x400, "LCD" }, -+ { 0x1500, 0x080, "MPU 0" }, -+ { 0x1580, 0x080, "MPU 1" }, -+ { 0x1600, 0x080, "Command Queue" }, -+ { 0x1680, 0x080, "RISC CPU" }, -+ { 0x1700, 0x400, "2D Unit" }, -+ { 0x1b00, 0x900, "3D Unit" }, -+*/ -+ }; -+ -+ spin_lock(&glamo->lock); -+ -+ for (r = 0; r < ARRAY_SIZE(reg_range); r++) { -+ n1 = 0; -+ end += sprintf(end, "\n%s\n\n", reg_range[r].name); -+ for (n = reg_range[r].start; -+ n < reg_range[r].start + reg_range[r].count; n += 2) { -+ if (((n1++) & 7) == 0) -+ end += sprintf(end, "\n%04X: ", -+ n + reg_range[r].start); -+ end += sprintf(end, "%04x ", __reg_read(glamo, n)); -+ } -+ end += sprintf(end, "\n"); -+ } -+ spin_unlock(&glamo->lock); -+ -+ return end - buf; -+} -+ -+static DEVICE_ATTR(regs, 0644, regs_read, regs_write); -+static struct attribute *glamo_sysfs_entries[] = { -+ &dev_attr_regs.attr, -+ NULL -+}; -+static struct attribute_group glamo_attr_group = { -+ .name = NULL, -+ .attrs = glamo_sysfs_entries, -+}; -+ -+ - - static int __init glamo_probe(struct platform_device *pdev) - { -- int rc, irq; -+ int rc = 0, irq; - struct glamo_core *glamo; - - if (glamo_handle) { -@@ -1080,6 +1162,12 @@ static int __init glamo_probe(struct platform_device *pdev) - goto out_free; - } - -+ rc = sysfs_create_group(&pdev->dev.kobj, &glamo_attr_group); -+ if (rc < 0) { -+ dev_err(&pdev->dev, "cannot create sysfs group\n"); -+ goto out_free; -+ } -+ - platform_set_drvdata(pdev, glamo); - - dev_dbg(&glamo->pdev->dev, "running init script\n"); -@@ -1103,6 +1191,7 @@ static int __init glamo_probe(struct platform_device *pdev) - glamo->irq_works = 1; - } else - glamo->irq_works = 0; -+ - return 0; - - out_free: --- -1.5.6.5 - |