olpc_dcon: change sysfs 'output' toggle to be clearer...
PATCH 2/4 olpc_dcon: change sysfs 'output' toggle to be clearer...
..and store it in dcon_priv. This renames it to 'monochrome', which I think is much clearer. Previously, "echo 1 > output" toggled mono mode, while "echo 0 > output" enabled color. "Echo 1 > monochrome" makes more sense to me.
Signed-off-by Andres Salomon <[email protected]>
--- drivers/staging/olpc_dcon/olpc_dcon.c | 34 +++++++++++++++----------------- drivers/staging/olpc_dcon/olpc_dcon.h | 4 --- 2 files changed, 16 insertions(+), 22 deletions(-)
drivers/staging/olpc_dcon/olpc_dcon.c +16 -18
@@ -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), };
drivers/staging/olpc_dcon/olpc_dcon.h +0 -4
@@ -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
Signature · 1 line
1.7.2.3