@@ -974,6 +974,7 @@ int ath11k_hal_srng_setup(struct ath11k_base *ab, enum hal_ring_type type,
974974 srng -> msi_data = params -> msi_data ;
975975 srng -> initialized = 1 ;
976976 spin_lock_init (& srng -> lock );
977+ lockdep_set_class (& srng -> lock , hal -> srng_key + ring_id );
977978
978979 for (i = 0 ; i < HAL_SRNG_NUM_REG_GRP ; i ++ ) {
979980 srng -> hwreg_base [i ] = srng_config -> reg_start [i ] +
@@ -1260,6 +1261,24 @@ static int ath11k_hal_srng_create_config(struct ath11k_base *ab)
12601261 return 0 ;
12611262}
12621263
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+
12631282int ath11k_hal_srng_init (struct ath11k_base * ab )
12641283{
12651284 struct ath11k_hal * hal = & ab -> hal ;
@@ -1279,6 +1298,8 @@ int ath11k_hal_srng_init(struct ath11k_base *ab)
12791298 if (ret )
12801299 goto err_free_cont_rdp ;
12811300
1301+ ath11k_hal_register_srng_key (ab );
1302+
12821303 return 0 ;
12831304
12841305err_free_cont_rdp :
@@ -1293,6 +1314,7 @@ void ath11k_hal_srng_deinit(struct ath11k_base *ab)
12931314{
12941315 struct ath11k_hal * hal = & ab -> hal ;
12951316
1317+ ath11k_hal_unregister_srng_key (ab );
12961318 ath11k_hal_free_cont_rdp (ab );
12971319 ath11k_hal_free_cont_wrp (ab );
12981320 kfree (hal -> srng_config );
0 commit comments