gpadc: fix logic err of last addr checking
authorBin Yang <bin.yang@intel.com>
Thu, 6 Oct 2011 15:18:32 +0000 (16:18 +0100)
committermgross <mark.gross@intel.com>
Wed, 9 Nov 2011 21:17:22 +0000 (13:17 -0800)
it has logic error to check last addr which is used.

Change-Id: Ia5ec6610b60a402166349369bf03918ec6e89eb4
Signed-off-by: Bin Yang <bin.yang@intel.com>
drivers/hwmon/intel_mid_gpadc.c

index 2fab4b4..9582bad 100644 (file)
@@ -234,7 +234,7 @@ static int alloc_channel_addr(struct gpadc_info *mgi, int ch)
        int last = 0;
 
        for (i = 0; i < GPADC_CH_MAX; i++)
-               if (!(mgi->addr_mask & (1 << i)))
+               if (mgi->addr_mask & (1 << i))
                        last = i;
 
        for (i = 0; i < GPADC_CH_MAX; i++) {
@@ -260,7 +260,7 @@ static void free_channel_addr(struct gpadc_info *mgi, int addr)
 
        mgi->addr_mask &= ~(1 << addr);
        for (i = 0; i < GPADC_CH_MAX; i++)
-               if (!(mgi->addr_mask & (1 << i)))
+               if (mgi->addr_mask & (1 << i))
                        last = i;
        if (addr > last)
                gpadc_set_bits(ADC1ADDR0+last, MSIC_STOPCH);