From b2ee6efeee99c74f3b8b09299af60ce2cc245929 Mon Sep 17 00:00:00 2001 From: Andres Salomon Date: Sun, 6 Feb 2011 15:28:39 -0800 Subject: [PATCH] --- yaml --- r: 235887 b: refs/heads/master c: bb4103544e455e11d9a4379326406a60429b9888 h: refs/heads/master i: 235885: 539d2cf3c4f0129ff07cf76fb59a99ae270a1b52 235883: 6237969fd1ab4cbf87c68149713c4c93e49574b8 235879: 98da3406f1ce435aa47c6d8399d4a2822d16ab56 235871: edcd418b475f7759aa2aaa628df7b4c6a66040ae v: v3 --- [refs] | 2 +- trunk/drivers/staging/olpc_dcon/olpc_dcon.c | 34 ++++++++++----------- trunk/drivers/staging/olpc_dcon/olpc_dcon.h | 4 --- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/[refs] b/[refs] index 2414d3c79bab..4dc16dbbe3d3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8d2d3dd1b4589299ec17b15130fbadfc69996df4 +refs/heads/master: bb4103544e455e11d9a4379326406a60429b9888 diff --git a/trunk/drivers/staging/olpc_dcon/olpc_dcon.c b/trunk/drivers/staging/olpc_dcon/olpc_dcon.c index f43c4ec95f91..a81e325f1102 100644 --- a/trunk/drivers/staging/olpc_dcon/olpc_dcon.c +++ b/trunk/drivers/staging/olpc_dcon/olpc_dcon.c @@ -58,6 +58,9 @@ struct dcon_priv { struct work_struct switch_source; struct notifier_block reboot_nb; + + /* Current output type; true == mono, false == color */ + bool mono:1; }; /* I2C structures */ @@ -81,9 +84,6 @@ static int dcon_source; /* Desired source */ static int dcon_pending; -/* Current output type */ -static int dcon_output = DCON_OUTPUT_COLOR; - /* Current sleep status (not yet implemented) */ static int dcon_sleep_val = DCON_ACTIVE; @@ -265,15 +265,14 @@ static void dcon_set_backlight(struct dcon_priv *dcon, int level) } /* Set the output type to either color or mono */ - -static int dcon_set_output(struct dcon_priv *dcon, int arg) +static int dcon_set_mono_mode(struct dcon_priv *dcon, bool enable_mono) { - if (dcon_output == arg) + if (dcon->mono == enable_mono) return 0; - dcon_output = arg; + dcon->mono = enable_mono; - if (arg == DCON_OUTPUT_MONO) { + if (enable_mono) { dcon_disp_mode &= ~(MODE_CSWIZZLE | MODE_COL_AA); dcon_disp_mode |= MODE_MONO_LUMA; } else { @@ -525,10 +524,11 @@ static ssize_t dcon_freeze_show(struct device *dev, return sprintf(buf, "%d\n", dcon_source == DCON_SOURCE_DCON ? 1 : 0); } -static ssize_t dcon_output_show(struct device *dev, +static ssize_t dcon_mono_show(struct device *dev, struct device_attribute *attr, char *buf) { - return sprintf(buf, "%d\n", dcon_output); + struct dcon_priv *dcon = dev_get_drvdata(dev); + return sprintf(buf, "%d\n", dcon->mono ? 1 : 0); } static ssize_t dcon_resumeline_show(struct device *dev, @@ -554,19 +554,17 @@ static int _strtoul(const char *buf, int len, unsigned int *val) return 0; } -static ssize_t dcon_output_store(struct device *dev, +static ssize_t dcon_mono_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - int output; + int enable_mono; int rc = -EINVAL; - if (_strtoul(buf, count, &output)) + if (_strtoul(buf, count, &enable_mono)) return -EINVAL; - if (output == DCON_OUTPUT_COLOR || output == DCON_OUTPUT_MONO) { - dcon_set_output(dev_get_drvdata(dev), output); - rc = count; - } + dcon_set_mono_mode(dev_get_drvdata(dev), enable_mono ? 1 : 0); + rc = count; return rc; } @@ -631,7 +629,7 @@ static struct device_attribute dcon_device_files[] = { __ATTR(mode, 0444, dcon_mode_show, NULL), __ATTR(sleep, 0644, dcon_sleep_show, dcon_sleep_store), __ATTR(freeze, 0644, dcon_freeze_show, dcon_freeze_store), - __ATTR(output, 0644, dcon_output_show, dcon_output_store), + __ATTR(monochrome, 0644, dcon_mono_show, dcon_mono_store), __ATTR(resumeline, 0644, dcon_resumeline_show, dcon_resumeline_store), }; diff --git a/trunk/drivers/staging/olpc_dcon/olpc_dcon.h b/trunk/drivers/staging/olpc_dcon/olpc_dcon.h index e566d213da2a..77dcbd1934fa 100644 --- a/trunk/drivers/staging/olpc_dcon/olpc_dcon.h +++ b/trunk/drivers/staging/olpc_dcon/olpc_dcon.h @@ -41,10 +41,6 @@ #define DCON_SOURCE_DCON 0 #define DCON_SOURCE_CPU 1 -/* Output values */ -#define DCON_OUTPUT_COLOR 0 -#define DCON_OUTPUT_MONO 1 - /* Sleep values */ #define DCON_ACTIVE 0 #define DCON_SLEEP 1