Hi Jmondi,

After I removed those cases, I got warnings "no handled in switch".

On Fri, Aug 18, 2017 at 10:15 AM, Abhisit Sangjan <s.abhisit@gmail.com> wrote:
Hi Jmondi,

On Fri, Aug 18, 2017 at 9:58 AM, jmondi <jacopo@jmondi.org> wrote:
Hi Abhisit,

On Fri, Aug 18, 2017 at 09:34:16AM +0700, Abhisit Sangjan wrote:
> Hi Jmondi,
>
> Thank you for your recommend, I am testing the code will be send the new
> patch in soon.

[snip]

> > > > +
> > > > +        switch (mask)
> > > > +        {
> > > > +        case IIO_CHAN_INFO_RAW:
> > > > +                switch (channel->type) {
> > > > +                case IIO_VOLTAGE:
> > > > +                case IIO_TEMP:
> > > > +                        *val = code;
> > > > +                        return IIO_VAL_INT;
> > > > +                default:
> > > > +                        break;
> > > > +                }
> > > > +                break;
> > > > +        default:
> > > > +                break;
> >
> > You can remove these default cases or return -EINVAL here.
> >
>
> Abhisit: Okay, I will remove it.
>              Could you tell me in detail. Sorry, I do not understand the
> Technical.

This can potentially be reduced to

        switch (mask) {
        case IIO_CHAN_INFO_RAW:
                switch (channel->type) {
                case IIO_VOLTAGE:
                case IIO_TEMP:
                        *val = code;
                        return IIO_VAL_INT;
                }
         }

         return -EINVAL;


But that's definitely not a big deal, there are no optimization in
this code change, just less typing and less default: and break; here
and there

Abhisit: Thank you so much.

Abhisit: If I remove those default cases, I got the warning. How do I would do next to fix warning?  Should I leave this code as it?

# What have I changed.
diff --git a/drivers/iio/adc/lmp92001-adc.c b/drivers/iio/adc/lmp92001-adc.c
index 68f7a6c..ebc6423 100644
--- a/drivers/iio/adc/lmp92001-adc.c
+++ b/drivers/iio/adc/lmp92001-adc.c
@@ -92,12 +92,7 @@ static int lmp92001_read_raw(struct iio_dev *indio_dev,
                case IIO_TEMP:
                        *val = code;
                        return IIO_VAL_INT;
-               default:
-                       break;
                }
-               break;
-       default:
-               break;
        }
 
        return -EINVAL;

# Compilation.
  CC      drivers/iio/adc/lmp92001-adc.o
drivers/iio/adc/lmp92001-adc.c: In function ‘lmp92001_read_raw’:
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_CURRENT’ not handled in switch [-Wswitch]
   switch (channel->type) {
   ^
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_POWER’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_ACCEL’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_ANGL_VEL’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_MAGN’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_LIGHT’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_INTENSITY’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_PROXIMITY’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_INCLI’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_ROT’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_ANGL’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_TIMESTAMP’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_CAPACITANCE’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_ALTVOLTAGE’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_CCT’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_PRESSURE’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_HUMIDITYRELATIVE’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_ACTIVITY’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_STEPS’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_ENERGY’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_DISTANCE’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_VELOCITY’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_CONCENTRATION’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_RESISTANCE’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_PH’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_UVINDEX’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_ELECTRICALCONDUCTIVITY’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_COUNT’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_INDEX’ not handled in switch [-Wswitch]
drivers/iio/adc/lmp92001-adc.c:90:3: warning: enumeration value ‘IIO_GRAVITY’ not handled in switch [-Wswitch]