]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Staging: olpc_dcon: more big endian conformity
authorJens Frederich <jfrederich@gmail.com>
Thu, 15 Aug 2013 19:40:01 +0000 (21:40 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 16 Aug 2013 00:23:16 +0000 (17:23 -0700)
Using an int which is casted to unsigned char as inbuf is messy.
The code won't work on big endian systems.  The patch should fix
this.

Signed-off-by: Jens Frederich <jfrederich@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/olpc_dcon/olpc_dcon.c

index 5ca4fa4fd246b9a11702493f28d12ef8f654d310..198595e8d742f798256198d57946ca18012295a5 100644 (file)
@@ -122,12 +122,13 @@ err:
 static int dcon_bus_stabilize(struct dcon_priv *dcon, int is_powered_down)
 {
        unsigned long timeout;
+       u8 pm;
        int x;
 
 power_up:
        if (is_powered_down) {
-               x = 1;
-               x = olpc_ec_cmd(EC_DCON_POWER_MODE, (u8 *)&x, 1, NULL, 0);
+               pm = 1;
+               x = olpc_ec_cmd(EC_DCON_POWER_MODE, &pm, 1, NULL, 0);
                if (x) {
                        pr_warn("unable to force dcon to power up: %d!\n", x);
                        return x;
@@ -144,8 +145,8 @@ power_up:
        if (x < 0) {
                pr_err("unable to stabilize dcon's smbus, reasserting power and praying.\n");
                BUG_ON(olpc_board_at_least(olpc_board(0xc2)));
-               x = 0;
-               olpc_ec_cmd(EC_DCON_POWER_MODE, (u8 *)&x, 1, NULL, 0);
+               pm = 0;
+               olpc_ec_cmd(EC_DCON_POWER_MODE, &pm, 1, NULL, 0);
                msleep(100);
                is_powered_down = 1;
                goto power_up;  /* argh, stupid hardware.. */
@@ -208,8 +209,8 @@ static void dcon_sleep(struct dcon_priv *dcon, bool sleep)
                return;
 
        if (sleep) {
-               x = 0;
-               x = olpc_ec_cmd(EC_DCON_POWER_MODE, (u8 *)&x, 1, NULL, 0);
+               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);
                else