@@ -61,17 +61,16 @@ static ssize_t direction_show(struct device *dev,
6161{
6262 struct gpiod_data * data = dev_get_drvdata (dev );
6363 struct gpio_desc * desc = data -> desc ;
64- ssize_t status ;
64+ int value ;
6565
6666 mutex_lock (& data -> mutex );
6767
6868 gpiod_get_direction (desc );
69- status = sysfs_emit (buf , "%s\n" ,
70- test_bit (FLAG_IS_OUT , & desc -> flags ) ? "out" : "in" );
69+ value = !!test_bit (FLAG_IS_OUT , & desc -> flags );
7170
7271 mutex_unlock (& data -> mutex );
7372
74- return status ;
73+ return sysfs_emit ( buf , "%s\n" , value ? "out" : "in" ) ;
7574}
7675
7776static ssize_t direction_store (struct device * dev ,
@@ -108,12 +107,13 @@ static ssize_t value_show(struct device *dev,
108107 mutex_lock (& data -> mutex );
109108
110109 status = gpiod_get_value_cansleep (desc );
111- if (status >= 0 )
112- status = sysfs_emit (buf , "%zd\n" , status );
113110
114111 mutex_unlock (& data -> mutex );
115112
116- return status ;
113+ if (status < 0 )
114+ return status ;
115+
116+ return sysfs_emit (buf , "%zd\n" , status );
117117}
118118
119119static ssize_t value_store (struct device * dev ,
@@ -238,7 +238,6 @@ static ssize_t edge_show(struct device *dev,
238238 struct device_attribute * attr , char * buf )
239239{
240240 struct gpiod_data * data = dev_get_drvdata (dev );
241- ssize_t status = 0 ;
242241 int i ;
243242
244243 mutex_lock (& data -> mutex );
@@ -247,12 +246,13 @@ static ssize_t edge_show(struct device *dev,
247246 if (data -> irq_flags == trigger_types [i ].flags )
248247 break ;
249248 }
250- if (i < ARRAY_SIZE (trigger_types ))
251- status = sysfs_emit (buf , "%s\n" , trigger_types [i ].name );
252249
253250 mutex_unlock (& data -> mutex );
254251
255- return status ;
252+ if (i >= ARRAY_SIZE (trigger_types ))
253+ return 0 ;
254+
255+ return sysfs_emit (buf , "%s\n" , trigger_types [i ].name );
256256}
257257
258258static ssize_t edge_store (struct device * dev ,
@@ -324,16 +324,15 @@ static ssize_t active_low_show(struct device *dev,
324324{
325325 struct gpiod_data * data = dev_get_drvdata (dev );
326326 struct gpio_desc * desc = data -> desc ;
327- ssize_t status ;
327+ int value ;
328328
329329 mutex_lock (& data -> mutex );
330330
331- status = sysfs_emit (buf , "%d\n" ,
332- !!test_bit (FLAG_ACTIVE_LOW , & desc -> flags ));
331+ value = !!test_bit (FLAG_ACTIVE_LOW , & desc -> flags );
333332
334333 mutex_unlock (& data -> mutex );
335334
336- return status ;
335+ return sysfs_emit ( buf , "%d\n" , value ) ;
337336}
338337
339338static ssize_t active_low_store (struct device * dev ,
0 commit comments