@@ -974,6 +974,7 @@ int ath11k_hal_srng_setup(struct ath11k_base *ab, enum hal_ring_type type,
974
974
srng -> msi_data = params -> msi_data ;
975
975
srng -> initialized = 1 ;
976
976
spin_lock_init (& srng -> lock );
977
+ lockdep_set_class (& srng -> lock , hal -> srng_key + ring_id );
977
978
978
979
for (i = 0 ; i < HAL_SRNG_NUM_REG_GRP ; i ++ ) {
979
980
srng -> hwreg_base [i ] = srng_config -> reg_start [i ] +
@@ -1260,6 +1261,24 @@ static int ath11k_hal_srng_create_config(struct ath11k_base *ab)
1260
1261
return 0 ;
1261
1262
}
1262
1263
1264
+ static void ath11k_hal_register_srng_key (struct ath11k_base * ab )
1265
+ {
1266
+ struct ath11k_hal * hal = & ab -> hal ;
1267
+ u32 ring_id ;
1268
+
1269
+ for (ring_id = 0 ; ring_id < HAL_SRNG_RING_ID_MAX ; ring_id ++ )
1270
+ lockdep_register_key (hal -> srng_key + ring_id );
1271
+ }
1272
+
1273
+ static void ath11k_hal_unregister_srng_key (struct ath11k_base * ab )
1274
+ {
1275
+ struct ath11k_hal * hal = & ab -> hal ;
1276
+ u32 ring_id ;
1277
+
1278
+ for (ring_id = 0 ; ring_id < HAL_SRNG_RING_ID_MAX ; ring_id ++ )
1279
+ lockdep_unregister_key (hal -> srng_key + ring_id );
1280
+ }
1281
+
1263
1282
int ath11k_hal_srng_init (struct ath11k_base * ab )
1264
1283
{
1265
1284
struct ath11k_hal * hal = & ab -> hal ;
@@ -1279,6 +1298,8 @@ int ath11k_hal_srng_init(struct ath11k_base *ab)
1279
1298
if (ret )
1280
1299
goto err_free_cont_rdp ;
1281
1300
1301
+ ath11k_hal_register_srng_key (ab );
1302
+
1282
1303
return 0 ;
1283
1304
1284
1305
err_free_cont_rdp :
@@ -1293,6 +1314,7 @@ void ath11k_hal_srng_deinit(struct ath11k_base *ab)
1293
1314
{
1294
1315
struct ath11k_hal * hal = & ab -> hal ;
1295
1316
1317
+ ath11k_hal_unregister_srng_key (ab );
1296
1318
ath11k_hal_free_cont_rdp (ab );
1297
1319
ath11k_hal_free_cont_wrp (ab );
1298
1320
kfree (hal -> srng_config );
0 commit comments