@@ -66,7 +66,7 @@ struct xgpio_instance {
66
66
DECLARE_BITMAP (state , 64 );
67
67
DECLARE_BITMAP (last_irq_read , 64 );
68
68
DECLARE_BITMAP (dir , 64 );
69
- spinlock_t gpio_lock ; /* For serializing operations */
69
+ raw_spinlock_t gpio_lock ; /* For serializing operations */
70
70
int irq ;
71
71
DECLARE_BITMAP (enable , 64 );
72
72
DECLARE_BITMAP (rising_edge , 64 );
@@ -180,14 +180,14 @@ static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
180
180
struct xgpio_instance * chip = gpiochip_get_data (gc );
181
181
int bit = xgpio_to_bit (chip , gpio );
182
182
183
- spin_lock_irqsave (& chip -> gpio_lock , flags );
183
+ raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
184
184
185
185
/* Write to GPIO signal and set its direction to output */
186
186
__assign_bit (bit , chip -> state , val );
187
187
188
188
xgpio_write_ch (chip , XGPIO_DATA_OFFSET , bit , chip -> state );
189
189
190
- spin_unlock_irqrestore (& chip -> gpio_lock , flags );
190
+ raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
191
191
}
192
192
193
193
/**
@@ -211,15 +211,15 @@ static void xgpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
211
211
bitmap_remap (hw_mask , mask , chip -> sw_map , chip -> hw_map , 64 );
212
212
bitmap_remap (hw_bits , bits , chip -> sw_map , chip -> hw_map , 64 );
213
213
214
- spin_lock_irqsave (& chip -> gpio_lock , flags );
214
+ raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
215
215
216
216
bitmap_replace (state , chip -> state , hw_bits , hw_mask , 64 );
217
217
218
218
xgpio_write_ch_all (chip , XGPIO_DATA_OFFSET , state );
219
219
220
220
bitmap_copy (chip -> state , state , 64 );
221
221
222
- spin_unlock_irqrestore (& chip -> gpio_lock , flags );
222
+ raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
223
223
}
224
224
225
225
/**
@@ -237,13 +237,13 @@ static int xgpio_dir_in(struct gpio_chip *gc, unsigned int gpio)
237
237
struct xgpio_instance * chip = gpiochip_get_data (gc );
238
238
int bit = xgpio_to_bit (chip , gpio );
239
239
240
- spin_lock_irqsave (& chip -> gpio_lock , flags );
240
+ raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
241
241
242
242
/* Set the GPIO bit in shadow register and set direction as input */
243
243
__set_bit (bit , chip -> dir );
244
244
xgpio_write_ch (chip , XGPIO_TRI_OFFSET , bit , chip -> dir );
245
245
246
- spin_unlock_irqrestore (& chip -> gpio_lock , flags );
246
+ raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
247
247
248
248
return 0 ;
249
249
}
@@ -266,7 +266,7 @@ static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
266
266
struct xgpio_instance * chip = gpiochip_get_data (gc );
267
267
int bit = xgpio_to_bit (chip , gpio );
268
268
269
- spin_lock_irqsave (& chip -> gpio_lock , flags );
269
+ raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
270
270
271
271
/* Write state of GPIO signal */
272
272
__assign_bit (bit , chip -> state , val );
@@ -276,7 +276,7 @@ static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
276
276
__clear_bit (bit , chip -> dir );
277
277
xgpio_write_ch (chip , XGPIO_TRI_OFFSET , bit , chip -> dir );
278
278
279
- spin_unlock_irqrestore (& chip -> gpio_lock , flags );
279
+ raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
280
280
281
281
return 0 ;
282
282
}
@@ -404,7 +404,7 @@ static void xgpio_irq_mask(struct irq_data *irq_data)
404
404
int bit = xgpio_to_bit (chip , irq_offset );
405
405
u32 mask = BIT (bit / 32 ), temp ;
406
406
407
- spin_lock_irqsave (& chip -> gpio_lock , flags );
407
+ raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
408
408
409
409
__clear_bit (bit , chip -> enable );
410
410
@@ -414,7 +414,7 @@ static void xgpio_irq_mask(struct irq_data *irq_data)
414
414
temp &= ~mask ;
415
415
xgpio_writereg (chip -> regs + XGPIO_IPIER_OFFSET , temp );
416
416
}
417
- spin_unlock_irqrestore (& chip -> gpio_lock , flags );
417
+ raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
418
418
419
419
gpiochip_disable_irq (& chip -> gc , irq_offset );
420
420
}
@@ -434,7 +434,7 @@ static void xgpio_irq_unmask(struct irq_data *irq_data)
434
434
435
435
gpiochip_enable_irq (& chip -> gc , irq_offset );
436
436
437
- spin_lock_irqsave (& chip -> gpio_lock , flags );
437
+ raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
438
438
439
439
__set_bit (bit , chip -> enable );
440
440
@@ -453,7 +453,7 @@ static void xgpio_irq_unmask(struct irq_data *irq_data)
453
453
xgpio_writereg (chip -> regs + XGPIO_IPIER_OFFSET , val );
454
454
}
455
455
456
- spin_unlock_irqrestore (& chip -> gpio_lock , flags );
456
+ raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
457
457
}
458
458
459
459
/**
@@ -518,7 +518,7 @@ static void xgpio_irqhandler(struct irq_desc *desc)
518
518
519
519
chained_irq_enter (irqchip , desc );
520
520
521
- spin_lock (& chip -> gpio_lock );
521
+ raw_spin_lock (& chip -> gpio_lock );
522
522
523
523
xgpio_read_ch_all (chip , XGPIO_DATA_OFFSET , all );
524
524
@@ -535,7 +535,7 @@ static void xgpio_irqhandler(struct irq_desc *desc)
535
535
bitmap_copy (chip -> last_irq_read , all , 64 );
536
536
bitmap_or (all , rising , falling , 64 );
537
537
538
- spin_unlock (& chip -> gpio_lock );
538
+ raw_spin_unlock (& chip -> gpio_lock );
539
539
540
540
dev_dbg (gc -> parent , "IRQ rising %*pb falling %*pb\n" , 64 , rising , 64 , falling );
541
541
@@ -626,7 +626,7 @@ static int xgpio_probe(struct platform_device *pdev)
626
626
bitmap_set (chip -> hw_map , 0 , width [0 ]);
627
627
bitmap_set (chip -> hw_map , 32 , width [1 ]);
628
628
629
- spin_lock_init (& chip -> gpio_lock );
629
+ raw_spin_lock_init (& chip -> gpio_lock );
630
630
631
631
chip -> gc .base = -1 ;
632
632
chip -> gc .ngpio = bitmap_weight (chip -> hw_map , 64 );
0 commit comments