@@ -65,7 +65,7 @@ struct xgpio_instance {
6565	DECLARE_BITMAP (state , 64 );
6666	DECLARE_BITMAP (last_irq_read , 64 );
6767	DECLARE_BITMAP (dir , 64 );
68- 	spinlock_t  gpio_lock ;	/* For serializing operations */ 
68+ 	raw_spinlock_t  gpio_lock ;	/* For serializing operations */ 
6969	int  irq ;
7070	DECLARE_BITMAP (enable , 64 );
7171	DECLARE_BITMAP (rising_edge , 64 );
@@ -179,14 +179,14 @@ static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
179179	struct  xgpio_instance  * chip  =  gpiochip_get_data (gc );
180180	int  bit  =  xgpio_to_bit (chip , gpio );
181181
182- 	spin_lock_irqsave (& chip -> gpio_lock , flags );
182+ 	raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
183183
184184	/* Write to GPIO signal and set its direction to output */ 
185185	__assign_bit (bit , chip -> state , val );
186186
187187	xgpio_write_ch (chip , XGPIO_DATA_OFFSET , bit , chip -> state );
188188
189- 	spin_unlock_irqrestore (& chip -> gpio_lock , flags );
189+ 	raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
190190}
191191
192192/** 
@@ -210,15 +210,15 @@ static void xgpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
210210	bitmap_remap (hw_mask , mask , chip -> sw_map , chip -> hw_map , 64 );
211211	bitmap_remap (hw_bits , bits , chip -> sw_map , chip -> hw_map , 64 );
212212
213- 	spin_lock_irqsave (& chip -> gpio_lock , flags );
213+ 	raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
214214
215215	bitmap_replace (state , chip -> state , hw_bits , hw_mask , 64 );
216216
217217	xgpio_write_ch_all (chip , XGPIO_DATA_OFFSET , state );
218218
219219	bitmap_copy (chip -> state , state , 64 );
220220
221- 	spin_unlock_irqrestore (& chip -> gpio_lock , flags );
221+ 	raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
222222}
223223
224224/** 
@@ -236,13 +236,13 @@ static int xgpio_dir_in(struct gpio_chip *gc, unsigned int gpio)
236236	struct  xgpio_instance  * chip  =  gpiochip_get_data (gc );
237237	int  bit  =  xgpio_to_bit (chip , gpio );
238238
239- 	spin_lock_irqsave (& chip -> gpio_lock , flags );
239+ 	raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
240240
241241	/* Set the GPIO bit in shadow register and set direction as input */ 
242242	__set_bit (bit , chip -> dir );
243243	xgpio_write_ch (chip , XGPIO_TRI_OFFSET , bit , chip -> dir );
244244
245- 	spin_unlock_irqrestore (& chip -> gpio_lock , flags );
245+ 	raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
246246
247247	return  0 ;
248248}
@@ -265,7 +265,7 @@ static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
265265	struct  xgpio_instance  * chip  =  gpiochip_get_data (gc );
266266	int  bit  =  xgpio_to_bit (chip , gpio );
267267
268- 	spin_lock_irqsave (& chip -> gpio_lock , flags );
268+ 	raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
269269
270270	/* Write state of GPIO signal */ 
271271	__assign_bit (bit , chip -> state , val );
@@ -275,7 +275,7 @@ static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
275275	__clear_bit (bit , chip -> dir );
276276	xgpio_write_ch (chip , XGPIO_TRI_OFFSET , bit , chip -> dir );
277277
278- 	spin_unlock_irqrestore (& chip -> gpio_lock , flags );
278+ 	raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
279279
280280	return  0 ;
281281}
@@ -398,7 +398,7 @@ static void xgpio_irq_mask(struct irq_data *irq_data)
398398	int  bit  =  xgpio_to_bit (chip , irq_offset );
399399	u32  mask  =  BIT (bit  / 32 ), temp ;
400400
401- 	spin_lock_irqsave (& chip -> gpio_lock , flags );
401+ 	raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
402402
403403	__clear_bit (bit , chip -> enable );
404404
@@ -408,7 +408,7 @@ static void xgpio_irq_mask(struct irq_data *irq_data)
408408		temp  &= ~mask ;
409409		xgpio_writereg (chip -> regs  +  XGPIO_IPIER_OFFSET , temp );
410410	}
411- 	spin_unlock_irqrestore (& chip -> gpio_lock , flags );
411+ 	raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
412412
413413	gpiochip_disable_irq (& chip -> gc , irq_offset );
414414}
@@ -428,7 +428,7 @@ static void xgpio_irq_unmask(struct irq_data *irq_data)
428428
429429	gpiochip_enable_irq (& chip -> gc , irq_offset );
430430
431- 	spin_lock_irqsave (& chip -> gpio_lock , flags );
431+ 	raw_spin_lock_irqsave (& chip -> gpio_lock , flags );
432432
433433	__set_bit (bit , chip -> enable );
434434
@@ -447,7 +447,7 @@ static void xgpio_irq_unmask(struct irq_data *irq_data)
447447		xgpio_writereg (chip -> regs  +  XGPIO_IPIER_OFFSET , val );
448448	}
449449
450- 	spin_unlock_irqrestore (& chip -> gpio_lock , flags );
450+ 	raw_spin_unlock_irqrestore (& chip -> gpio_lock , flags );
451451}
452452
453453/** 
@@ -512,7 +512,7 @@ static void xgpio_irqhandler(struct irq_desc *desc)
512512
513513	chained_irq_enter (irqchip , desc );
514514
515- 	spin_lock (& chip -> gpio_lock );
515+ 	raw_spin_lock (& chip -> gpio_lock );
516516
517517	xgpio_read_ch_all (chip , XGPIO_DATA_OFFSET , all );
518518
@@ -529,7 +529,7 @@ static void xgpio_irqhandler(struct irq_desc *desc)
529529	bitmap_copy (chip -> last_irq_read , all , 64 );
530530	bitmap_or (all , rising , falling , 64 );
531531
532- 	spin_unlock (& chip -> gpio_lock );
532+ 	raw_spin_unlock (& chip -> gpio_lock );
533533
534534	dev_dbg (gc -> parent , "IRQ rising %*pb falling %*pb\n" , 64 , rising , 64 , falling );
535535
@@ -620,7 +620,7 @@ static int xgpio_probe(struct platform_device *pdev)
620620	bitmap_set (chip -> hw_map ,  0 , width [0 ]);
621621	bitmap_set (chip -> hw_map , 32 , width [1 ]);
622622
623- 	spin_lock_init (& chip -> gpio_lock );
623+ 	raw_spin_lock_init (& chip -> gpio_lock );
624624
625625	chip -> gc .base  =  -1 ;
626626	chip -> gc .ngpio  =  bitmap_weight (chip -> hw_map , 64 );
0 commit comments