X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=drivers%2Fstaging%2Folpc_dcon%2Folpc_dcon.c;h=eb83b28b8cd16927f168faf305a54e9ebdf627dc;hb=b05d59dfceaea72565b1648af929b037b0f96d7f;hp=26b4ec56fd30738b69a2a18ecf0d93d365e7ef08;hpb=95959e6a06720834fc80a210e37898341c63cb91;p=karo-tx-linux.git diff --git a/drivers/staging/olpc_dcon/olpc_dcon.c b/drivers/staging/olpc_dcon/olpc_dcon.c index 26b4ec56fd30..eb83b28b8cd1 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon.c +++ b/drivers/staging/olpc_dcon/olpc_dcon.c @@ -210,6 +210,7 @@ static void dcon_sleep(struct dcon_priv *dcon, bool sleep) if (sleep) { u8 pm = 0; + x = olpc_ec_cmd(EC_DCON_POWER_MODE, &pm, 1, NULL, 0); if (x) pr_warn("unable to force dcon to power down: %d!\n", x); @@ -240,6 +241,7 @@ static void dcon_sleep(struct dcon_priv *dcon, bool sleep) static void dcon_load_holdoff(struct dcon_priv *dcon) { struct timespec delta_t, now; + while (1) { getnstimeofday(&now); delta_t = timespec_sub(now, dcon->load_time); @@ -399,14 +401,15 @@ static ssize_t dcon_mode_show(struct device *dev, struct device_attribute *attr, char *buf) { struct dcon_priv *dcon = dev_get_drvdata(dev); + return sprintf(buf, "%4.4X\n", dcon->disp_mode); } static ssize_t dcon_sleep_show(struct device *dev, struct device_attribute *attr, char *buf) { - struct dcon_priv *dcon = dev_get_drvdata(dev); + return sprintf(buf, "%d\n", dcon->asleep); } @@ -414,6 +417,7 @@ static ssize_t dcon_freeze_show(struct device *dev, struct device_attribute *attr, char *buf) { struct dcon_priv *dcon = dev_get_drvdata(dev); + return sprintf(buf, "%d\n", dcon->curr_src == DCON_SOURCE_DCON ? 1 : 0); } @@ -421,6 +425,7 @@ static ssize_t dcon_mono_show(struct device *dev, struct device_attribute *attr, char *buf) { struct dcon_priv *dcon = dev_get_drvdata(dev); + return sprintf(buf, "%d\n", dcon->mono); } @@ -534,6 +539,7 @@ static int dcon_bl_update(struct backlight_device *dev) static int dcon_bl_get(struct backlight_device *dev) { struct dcon_priv *dcon = bl_get_data(dev); + return dcon->bl_val; }