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