@@ -195,8 +195,7 @@ static int bgpio_get_multiple_be(struct gpio_chip *gc, unsigned long *mask,
195
195
* bits &= ~* mask ;
196
196
197
197
/* Create a mirrored mask */
198
- bit = -1 ;
199
- while ((bit = find_next_bit (mask , gc -> ngpio , bit + 1 )) < gc -> ngpio )
198
+ for_each_set_bit (bit , mask , gc -> ngpio )
200
199
readmask |= bgpio_line2mask (gc , bit );
201
200
202
201
/* Read the register */
@@ -206,8 +205,7 @@ static int bgpio_get_multiple_be(struct gpio_chip *gc, unsigned long *mask,
206
205
* Mirror the result into the "bits" result, this will give line 0
207
206
* in bit 0 ... line 31 in bit 31 for a 32bit register.
208
207
*/
209
- bit = -1 ;
210
- while ((bit = find_next_bit (& val , gc -> ngpio , bit + 1 )) < gc -> ngpio )
208
+ for_each_set_bit (bit , & val , gc -> ngpio )
211
209
* bits |= bgpio_line2mask (gc , bit );
212
210
213
211
return 0 ;
@@ -272,15 +270,11 @@ static void bgpio_multiple_get_masks(struct gpio_chip *gc,
272
270
* set_mask = 0 ;
273
271
* clear_mask = 0 ;
274
272
275
- for (i = 0 ; i < gc -> bgpio_bits ; i ++ ) {
276
- if (* mask == 0 )
277
- break ;
278
- if (__test_and_clear_bit (i , mask )) {
279
- if (test_bit (i , bits ))
280
- * set_mask |= bgpio_line2mask (gc , i );
281
- else
282
- * clear_mask |= bgpio_line2mask (gc , i );
283
- }
273
+ for_each_set_bit (i , mask , gc -> bgpio_bits ) {
274
+ if (test_bit (i , bits ))
275
+ * set_mask |= bgpio_line2mask (gc , i );
276
+ else
277
+ * clear_mask |= bgpio_line2mask (gc , i );
284
278
}
285
279
}
286
280
0 commit comments