@@ -31,7 +31,7 @@ struct aspeed_sgpio {
31
31
struct gpio_chip chip ;
32
32
struct irq_chip intc ;
33
33
struct clk * pclk ;
34
- spinlock_t lock ;
34
+ raw_spinlock_t lock ;
35
35
void __iomem * base ;
36
36
int irq ;
37
37
};
@@ -173,12 +173,12 @@ static int aspeed_sgpio_get(struct gpio_chip *gc, unsigned int offset)
173
173
enum aspeed_sgpio_reg reg ;
174
174
int rc = 0 ;
175
175
176
- spin_lock_irqsave (& gpio -> lock , flags );
176
+ raw_spin_lock_irqsave (& gpio -> lock , flags );
177
177
178
178
reg = aspeed_sgpio_is_input (offset ) ? reg_val : reg_rdata ;
179
179
rc = !!(ioread32 (bank_reg (gpio , bank , reg )) & GPIO_BIT (offset ));
180
180
181
- spin_unlock_irqrestore (& gpio -> lock , flags );
181
+ raw_spin_unlock_irqrestore (& gpio -> lock , flags );
182
182
183
183
return rc ;
184
184
}
@@ -215,11 +215,11 @@ static void aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, int val)
215
215
struct aspeed_sgpio * gpio = gpiochip_get_data (gc );
216
216
unsigned long flags ;
217
217
218
- spin_lock_irqsave (& gpio -> lock , flags );
218
+ raw_spin_lock_irqsave (& gpio -> lock , flags );
219
219
220
220
sgpio_set_value (gc , offset , val );
221
221
222
- spin_unlock_irqrestore (& gpio -> lock , flags );
222
+ raw_spin_unlock_irqrestore (& gpio -> lock , flags );
223
223
}
224
224
225
225
static int aspeed_sgpio_dir_in (struct gpio_chip * gc , unsigned int offset )
@@ -236,9 +236,9 @@ static int aspeed_sgpio_dir_out(struct gpio_chip *gc, unsigned int offset, int v
236
236
/* No special action is required for setting the direction; we'll
237
237
* error-out in sgpio_set_value if this isn't an output GPIO */
238
238
239
- spin_lock_irqsave (& gpio -> lock , flags );
239
+ raw_spin_lock_irqsave (& gpio -> lock , flags );
240
240
rc = sgpio_set_value (gc , offset , val );
241
- spin_unlock_irqrestore (& gpio -> lock , flags );
241
+ raw_spin_unlock_irqrestore (& gpio -> lock , flags );
242
242
243
243
return rc ;
244
244
}
@@ -277,11 +277,11 @@ static void aspeed_sgpio_irq_ack(struct irq_data *d)
277
277
278
278
status_addr = bank_reg (gpio , bank , reg_irq_status );
279
279
280
- spin_lock_irqsave (& gpio -> lock , flags );
280
+ raw_spin_lock_irqsave (& gpio -> lock , flags );
281
281
282
282
iowrite32 (bit , status_addr );
283
283
284
- spin_unlock_irqrestore (& gpio -> lock , flags );
284
+ raw_spin_unlock_irqrestore (& gpio -> lock , flags );
285
285
}
286
286
287
287
static void aspeed_sgpio_irq_set_mask (struct irq_data * d , bool set )
@@ -296,7 +296,7 @@ static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set)
296
296
irqd_to_aspeed_sgpio_data (d , & gpio , & bank , & bit , & offset );
297
297
addr = bank_reg (gpio , bank , reg_irq_enable );
298
298
299
- spin_lock_irqsave (& gpio -> lock , flags );
299
+ raw_spin_lock_irqsave (& gpio -> lock , flags );
300
300
301
301
reg = ioread32 (addr );
302
302
if (set )
@@ -306,7 +306,7 @@ static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set)
306
306
307
307
iowrite32 (reg , addr );
308
308
309
- spin_unlock_irqrestore (& gpio -> lock , flags );
309
+ raw_spin_unlock_irqrestore (& gpio -> lock , flags );
310
310
}
311
311
312
312
static void aspeed_sgpio_irq_mask (struct irq_data * d )
@@ -355,7 +355,7 @@ static int aspeed_sgpio_set_type(struct irq_data *d, unsigned int type)
355
355
return - EINVAL ;
356
356
}
357
357
358
- spin_lock_irqsave (& gpio -> lock , flags );
358
+ raw_spin_lock_irqsave (& gpio -> lock , flags );
359
359
360
360
addr = bank_reg (gpio , bank , reg_irq_type0 );
361
361
reg = ioread32 (addr );
@@ -372,7 +372,7 @@ static int aspeed_sgpio_set_type(struct irq_data *d, unsigned int type)
372
372
reg = (reg & ~bit ) | type2 ;
373
373
iowrite32 (reg , addr );
374
374
375
- spin_unlock_irqrestore (& gpio -> lock , flags );
375
+ raw_spin_unlock_irqrestore (& gpio -> lock , flags );
376
376
377
377
irq_set_handler_locked (d , handler );
378
378
@@ -467,7 +467,7 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_chip *chip,
467
467
468
468
reg = bank_reg (gpio , to_bank (offset ), reg_tolerance );
469
469
470
- spin_lock_irqsave (& gpio -> lock , flags );
470
+ raw_spin_lock_irqsave (& gpio -> lock , flags );
471
471
472
472
val = readl (reg );
473
473
@@ -478,7 +478,7 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_chip *chip,
478
478
479
479
writel (val , reg );
480
480
481
- spin_unlock_irqrestore (& gpio -> lock , flags );
481
+ raw_spin_unlock_irqrestore (& gpio -> lock , flags );
482
482
483
483
return 0 ;
484
484
}
@@ -575,7 +575,7 @@ static int __init aspeed_sgpio_probe(struct platform_device *pdev)
575
575
iowrite32 (FIELD_PREP (ASPEED_SGPIO_CLK_DIV_MASK , sgpio_clk_div ) | gpio_cnt_regval |
576
576
ASPEED_SGPIO_ENABLE , gpio -> base + ASPEED_SGPIO_CTRL );
577
577
578
- spin_lock_init (& gpio -> lock );
578
+ raw_spin_lock_init (& gpio -> lock );
579
579
580
580
gpio -> chip .parent = & pdev -> dev ;
581
581
gpio -> chip .ngpio = nr_gpios * 2 ;
0 commit comments