@@ -525,12 +525,10 @@ static void acpi_ec_clear(struct acpi_ec *ec)
525
525
526
526
static void acpi_ec_enable_event (struct acpi_ec * ec )
527
527
{
528
- unsigned long flags ;
529
-
530
- spin_lock_irqsave (& ec -> lock , flags );
528
+ spin_lock (& ec -> lock );
531
529
if (acpi_ec_started (ec ))
532
530
__acpi_ec_enable_event (ec );
533
- spin_unlock_irqrestore (& ec -> lock , flags );
531
+ spin_unlock (& ec -> lock );
534
532
535
533
/* Drain additional events if hardware requires that */
536
534
if (EC_FLAGS_CLEAR_ON_RESUME )
@@ -546,11 +544,9 @@ static void __acpi_ec_flush_work(void)
546
544
547
545
static void acpi_ec_disable_event (struct acpi_ec * ec )
548
546
{
549
- unsigned long flags ;
550
-
551
- spin_lock_irqsave (& ec -> lock , flags );
547
+ spin_lock (& ec -> lock );
552
548
__acpi_ec_disable_event (ec );
553
- spin_unlock_irqrestore (& ec -> lock , flags );
549
+ spin_unlock (& ec -> lock );
554
550
555
551
/*
556
552
* When ec_freeze_events is true, we need to flush events in
@@ -571,10 +567,9 @@ void acpi_ec_flush_work(void)
571
567
572
568
static bool acpi_ec_guard_event (struct acpi_ec * ec )
573
569
{
574
- unsigned long flags ;
575
570
bool guarded ;
576
571
577
- spin_lock_irqsave (& ec -> lock , flags );
572
+ spin_lock (& ec -> lock );
578
573
/*
579
574
* If firmware SCI_EVT clearing timing is "event", we actually
580
575
* don't know when the SCI_EVT will be cleared by firmware after
@@ -590,31 +585,29 @@ static bool acpi_ec_guard_event(struct acpi_ec *ec)
590
585
guarded = ec_event_clearing == ACPI_EC_EVT_TIMING_EVENT &&
591
586
ec -> event_state != EC_EVENT_READY &&
592
587
(!ec -> curr || ec -> curr -> command != ACPI_EC_COMMAND_QUERY );
593
- spin_unlock_irqrestore (& ec -> lock , flags );
588
+ spin_unlock (& ec -> lock );
594
589
return guarded ;
595
590
}
596
591
597
592
static int ec_transaction_polled (struct acpi_ec * ec )
598
593
{
599
- unsigned long flags ;
600
594
int ret = 0 ;
601
595
602
- spin_lock_irqsave (& ec -> lock , flags );
596
+ spin_lock (& ec -> lock );
603
597
if (ec -> curr && (ec -> curr -> flags & ACPI_EC_COMMAND_POLL ))
604
598
ret = 1 ;
605
- spin_unlock_irqrestore (& ec -> lock , flags );
599
+ spin_unlock (& ec -> lock );
606
600
return ret ;
607
601
}
608
602
609
603
static int ec_transaction_completed (struct acpi_ec * ec )
610
604
{
611
- unsigned long flags ;
612
605
int ret = 0 ;
613
606
614
- spin_lock_irqsave (& ec -> lock , flags );
607
+ spin_lock (& ec -> lock );
615
608
if (ec -> curr && (ec -> curr -> flags & ACPI_EC_COMMAND_COMPLETE ))
616
609
ret = 1 ;
617
- spin_unlock_irqrestore (& ec -> lock , flags );
610
+ spin_unlock (& ec -> lock );
618
611
return ret ;
619
612
}
620
613
@@ -756,7 +749,6 @@ static int ec_guard(struct acpi_ec *ec)
756
749
757
750
static int ec_poll (struct acpi_ec * ec )
758
751
{
759
- unsigned long flags ;
760
752
int repeat = 5 ; /* number of command restarts */
761
753
762
754
while (repeat -- ) {
@@ -765,26 +757,25 @@ static int ec_poll(struct acpi_ec *ec)
765
757
do {
766
758
if (!ec_guard (ec ))
767
759
return 0 ;
768
- spin_lock_irqsave (& ec -> lock , flags );
760
+ spin_lock (& ec -> lock );
769
761
advance_transaction (ec , false);
770
- spin_unlock_irqrestore (& ec -> lock , flags );
762
+ spin_unlock (& ec -> lock );
771
763
} while (time_before (jiffies , delay ));
772
764
pr_debug ("controller reset, restart transaction\n" );
773
- spin_lock_irqsave (& ec -> lock , flags );
765
+ spin_lock (& ec -> lock );
774
766
start_transaction (ec );
775
- spin_unlock_irqrestore (& ec -> lock , flags );
767
+ spin_unlock (& ec -> lock );
776
768
}
777
769
return - ETIME ;
778
770
}
779
771
780
772
static int acpi_ec_transaction_unlocked (struct acpi_ec * ec ,
781
773
struct transaction * t )
782
774
{
783
- unsigned long tmp ;
784
775
int ret = 0 ;
785
776
786
777
/* start transaction */
787
- spin_lock_irqsave (& ec -> lock , tmp );
778
+ spin_lock (& ec -> lock );
788
779
/* Enable GPE for command processing (IBF=0/OBF=1) */
789
780
if (!acpi_ec_submit_flushable_request (ec )) {
790
781
ret = - EINVAL ;
@@ -795,11 +786,11 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
795
786
ec -> curr = t ;
796
787
ec_dbg_req ("Command(%s) started" , acpi_ec_cmd_string (t -> command ));
797
788
start_transaction (ec );
798
- spin_unlock_irqrestore (& ec -> lock , tmp );
789
+ spin_unlock (& ec -> lock );
799
790
800
791
ret = ec_poll (ec );
801
792
802
- spin_lock_irqsave (& ec -> lock , tmp );
793
+ spin_lock (& ec -> lock );
803
794
if (t -> irq_count == ec_storm_threshold )
804
795
acpi_ec_unmask_events (ec );
805
796
ec_dbg_req ("Command(%s) stopped" , acpi_ec_cmd_string (t -> command ));
@@ -808,7 +799,7 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
808
799
acpi_ec_complete_request (ec );
809
800
ec_dbg_ref (ec , "Decrease command" );
810
801
unlock :
811
- spin_unlock_irqrestore (& ec -> lock , tmp );
802
+ spin_unlock (& ec -> lock );
812
803
return ret ;
813
804
}
814
805
@@ -936,9 +927,7 @@ EXPORT_SYMBOL(ec_get_handle);
936
927
937
928
static void acpi_ec_start (struct acpi_ec * ec , bool resuming )
938
929
{
939
- unsigned long flags ;
940
-
941
- spin_lock_irqsave (& ec -> lock , flags );
930
+ spin_lock (& ec -> lock );
942
931
if (!test_and_set_bit (EC_FLAGS_STARTED , & ec -> flags )) {
943
932
ec_dbg_drv ("Starting EC" );
944
933
/* Enable GPE for event processing (SCI_EVT=1) */
@@ -948,31 +937,28 @@ static void acpi_ec_start(struct acpi_ec *ec, bool resuming)
948
937
}
949
938
ec_log_drv ("EC started" );
950
939
}
951
- spin_unlock_irqrestore (& ec -> lock , flags );
940
+ spin_unlock (& ec -> lock );
952
941
}
953
942
954
943
static bool acpi_ec_stopped (struct acpi_ec * ec )
955
944
{
956
- unsigned long flags ;
957
945
bool flushed ;
958
946
959
- spin_lock_irqsave (& ec -> lock , flags );
947
+ spin_lock (& ec -> lock );
960
948
flushed = acpi_ec_flushed (ec );
961
- spin_unlock_irqrestore (& ec -> lock , flags );
949
+ spin_unlock (& ec -> lock );
962
950
return flushed ;
963
951
}
964
952
965
953
static void acpi_ec_stop (struct acpi_ec * ec , bool suspending )
966
954
{
967
- unsigned long flags ;
968
-
969
- spin_lock_irqsave (& ec -> lock , flags );
955
+ spin_lock (& ec -> lock );
970
956
if (acpi_ec_started (ec )) {
971
957
ec_dbg_drv ("Stopping EC" );
972
958
set_bit (EC_FLAGS_STOPPED , & ec -> flags );
973
- spin_unlock_irqrestore (& ec -> lock , flags );
959
+ spin_unlock (& ec -> lock );
974
960
wait_event (ec -> wait , acpi_ec_stopped (ec ));
975
- spin_lock_irqsave (& ec -> lock , flags );
961
+ spin_lock (& ec -> lock );
976
962
/* Disable GPE for event processing (SCI_EVT=1) */
977
963
if (!suspending ) {
978
964
acpi_ec_complete_request (ec );
@@ -983,29 +969,25 @@ static void acpi_ec_stop(struct acpi_ec *ec, bool suspending)
983
969
clear_bit (EC_FLAGS_STOPPED , & ec -> flags );
984
970
ec_log_drv ("EC stopped" );
985
971
}
986
- spin_unlock_irqrestore (& ec -> lock , flags );
972
+ spin_unlock (& ec -> lock );
987
973
}
988
974
989
975
static void acpi_ec_enter_noirq (struct acpi_ec * ec )
990
976
{
991
- unsigned long flags ;
992
-
993
- spin_lock_irqsave (& ec -> lock , flags );
977
+ spin_lock (& ec -> lock );
994
978
ec -> busy_polling = true;
995
979
ec -> polling_guard = 0 ;
996
980
ec_log_drv ("interrupt blocked" );
997
- spin_unlock_irqrestore (& ec -> lock , flags );
981
+ spin_unlock (& ec -> lock );
998
982
}
999
983
1000
984
static void acpi_ec_leave_noirq (struct acpi_ec * ec )
1001
985
{
1002
- unsigned long flags ;
1003
-
1004
- spin_lock_irqsave (& ec -> lock , flags );
986
+ spin_lock (& ec -> lock );
1005
987
ec -> busy_polling = ec_busy_polling ;
1006
988
ec -> polling_guard = ec_polling_guard ;
1007
989
ec_log_drv ("interrupt unblocked" );
1008
- spin_unlock_irqrestore (& ec -> lock , flags );
990
+ spin_unlock (& ec -> lock );
1009
991
}
1010
992
1011
993
void acpi_ec_block_transactions (void )
@@ -1137,9 +1119,9 @@ static void acpi_ec_event_processor(struct work_struct *work)
1137
1119
1138
1120
ec_dbg_evt ("Query(0x%02x) stopped" , handler -> query_bit );
1139
1121
1140
- spin_lock_irq (& ec -> lock );
1122
+ spin_lock (& ec -> lock );
1141
1123
ec -> queries_in_progress -- ;
1142
- spin_unlock_irq (& ec -> lock );
1124
+ spin_unlock (& ec -> lock );
1143
1125
1144
1126
acpi_ec_put_query_handler (handler );
1145
1127
kfree (q );
@@ -1202,12 +1184,12 @@ static int acpi_ec_submit_query(struct acpi_ec *ec)
1202
1184
*/
1203
1185
ec_dbg_evt ("Query(0x%02x) scheduled" , value );
1204
1186
1205
- spin_lock_irq (& ec -> lock );
1187
+ spin_lock (& ec -> lock );
1206
1188
1207
1189
ec -> queries_in_progress ++ ;
1208
1190
queue_work (ec_query_wq , & q -> work );
1209
1191
1210
- spin_unlock_irq (& ec -> lock );
1192
+ spin_unlock (& ec -> lock );
1211
1193
1212
1194
return 0 ;
1213
1195
@@ -1223,14 +1205,14 @@ static void acpi_ec_event_handler(struct work_struct *work)
1223
1205
1224
1206
ec_dbg_evt ("Event started" );
1225
1207
1226
- spin_lock_irq (& ec -> lock );
1208
+ spin_lock (& ec -> lock );
1227
1209
1228
1210
while (ec -> events_to_process ) {
1229
- spin_unlock_irq (& ec -> lock );
1211
+ spin_unlock (& ec -> lock );
1230
1212
1231
1213
acpi_ec_submit_query (ec );
1232
1214
1233
- spin_lock_irq (& ec -> lock );
1215
+ spin_lock (& ec -> lock );
1234
1216
1235
1217
ec -> events_to_process -- ;
1236
1218
}
@@ -1247,11 +1229,11 @@ static void acpi_ec_event_handler(struct work_struct *work)
1247
1229
1248
1230
ec_dbg_evt ("Event stopped" );
1249
1231
1250
- spin_unlock_irq (& ec -> lock );
1232
+ spin_unlock (& ec -> lock );
1251
1233
1252
1234
guard_timeout = !!ec_guard (ec );
1253
1235
1254
- spin_lock_irq (& ec -> lock );
1236
+ spin_lock (& ec -> lock );
1255
1237
1256
1238
/* Take care of SCI_EVT unless someone else is doing that. */
1257
1239
if (guard_timeout && !ec -> curr )
@@ -1264,7 +1246,7 @@ static void acpi_ec_event_handler(struct work_struct *work)
1264
1246
1265
1247
ec -> events_in_progress -- ;
1266
1248
1267
- spin_unlock_irq (& ec -> lock );
1249
+ spin_unlock (& ec -> lock );
1268
1250
}
1269
1251
1270
1252
static void clear_gpe_and_advance_transaction (struct acpi_ec * ec , bool interrupt )
@@ -1289,13 +1271,11 @@ static void clear_gpe_and_advance_transaction(struct acpi_ec *ec, bool interrupt
1289
1271
1290
1272
static void acpi_ec_handle_interrupt (struct acpi_ec * ec )
1291
1273
{
1292
- unsigned long flags ;
1293
-
1294
- spin_lock_irqsave (& ec -> lock , flags );
1274
+ spin_lock (& ec -> lock );
1295
1275
1296
1276
clear_gpe_and_advance_transaction (ec , true);
1297
1277
1298
- spin_unlock_irqrestore (& ec -> lock , flags );
1278
+ spin_unlock (& ec -> lock );
1299
1279
}
1300
1280
1301
1281
static u32 acpi_ec_gpe_handler (acpi_handle gpe_device ,
@@ -2105,7 +2085,7 @@ bool acpi_ec_dispatch_gpe(void)
2105
2085
* Dispatch the EC GPE in-band, but do not report wakeup in any case
2106
2086
* to allow the caller to process events properly after that.
2107
2087
*/
2108
- spin_lock_irq (& first_ec -> lock );
2088
+ spin_lock (& first_ec -> lock );
2109
2089
2110
2090
if (acpi_ec_gpe_status_set (first_ec )) {
2111
2091
pm_pr_dbg ("ACPI EC GPE status set\n" );
@@ -2114,7 +2094,7 @@ bool acpi_ec_dispatch_gpe(void)
2114
2094
work_in_progress = acpi_ec_work_in_progress (first_ec );
2115
2095
}
2116
2096
2117
- spin_unlock_irq (& first_ec -> lock );
2097
+ spin_unlock (& first_ec -> lock );
2118
2098
2119
2099
if (!work_in_progress )
2120
2100
return false;
@@ -2127,11 +2107,11 @@ bool acpi_ec_dispatch_gpe(void)
2127
2107
2128
2108
pm_pr_dbg ("ACPI EC work flushed\n" );
2129
2109
2130
- spin_lock_irq (& first_ec -> lock );
2110
+ spin_lock (& first_ec -> lock );
2131
2111
2132
2112
work_in_progress = acpi_ec_work_in_progress (first_ec );
2133
2113
2134
- spin_unlock_irq (& first_ec -> lock );
2114
+ spin_unlock (& first_ec -> lock );
2135
2115
} while (work_in_progress && !pm_wakeup_pending ());
2136
2116
2137
2117
return false;
0 commit comments