Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 235887
b: refs/heads/master
c: bb41035
h: refs/heads/master
i:
  235885: 539d2cf
  235883: 6237969
  235879: 98da340
  235871: edcd418
v: v3
  • Loading branch information
Andres Salomon authored and Greg Kroah-Hartman committed Feb 9, 2011
1 parent ce3cef9 commit b2ee6ef
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 23 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8d2d3dd1b4589299ec17b15130fbadfc69996df4
refs/heads/master: bb4103544e455e11d9a4379326406a60429b9888
34 changes: 16 additions & 18 deletions trunk/drivers/staging/olpc_dcon/olpc_dcon.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand All @@ -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;

Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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,
Expand All @@ -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;
}
Expand Down Expand Up @@ -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),
};

Expand Down
4 changes: 0 additions & 4 deletions trunk/drivers/staging/olpc_dcon/olpc_dcon.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit b2ee6ef

Please sign in to comment.