@@ -991,6 +991,7 @@ int ath11k_hal_srng_setup(struct ath11k_base *ab, enum hal_ring_type type,
991991 srng -> msi_data = params -> msi_data ;
992992 srng -> initialized = 1 ;
993993 spin_lock_init (& srng -> lock );
994+ lockdep_set_class (& srng -> lock , hal -> srng_key + ring_id );
994995
995996 for (i = 0 ; i < HAL_SRNG_NUM_REG_GRP ; i ++ ) {
996997 srng -> hwreg_base [i ] = srng_config -> reg_start [i ] +
@@ -1237,6 +1238,24 @@ static int ath11k_hal_srng_create_config(struct ath11k_base *ab)
12371238 return 0 ;
12381239}
12391240
1241+ static void ath11k_hal_register_srng_key (struct ath11k_base * ab )
1242+ {
1243+ struct ath11k_hal * hal = & ab -> hal ;
1244+ u32 ring_id ;
1245+
1246+ for (ring_id = 0 ; ring_id < HAL_SRNG_RING_ID_MAX ; ring_id ++ )
1247+ lockdep_register_key (hal -> srng_key + ring_id );
1248+ }
1249+
1250+ static void ath11k_hal_unregister_srng_key (struct ath11k_base * ab )
1251+ {
1252+ struct ath11k_hal * hal = & ab -> hal ;
1253+ u32 ring_id ;
1254+
1255+ for (ring_id = 0 ; ring_id < HAL_SRNG_RING_ID_MAX ; ring_id ++ )
1256+ lockdep_unregister_key (hal -> srng_key + ring_id );
1257+ }
1258+
12401259int ath11k_hal_srng_init (struct ath11k_base * ab )
12411260{
12421261 struct ath11k_hal * hal = & ab -> hal ;
@@ -1256,6 +1275,8 @@ int ath11k_hal_srng_init(struct ath11k_base *ab)
12561275 if (ret )
12571276 goto err_free_cont_rdp ;
12581277
1278+ ath11k_hal_register_srng_key (ab );
1279+
12591280 return 0 ;
12601281
12611282err_free_cont_rdp :
@@ -1270,6 +1291,7 @@ void ath11k_hal_srng_deinit(struct ath11k_base *ab)
12701291{
12711292 struct ath11k_hal * hal = & ab -> hal ;
12721293
1294+ ath11k_hal_unregister_srng_key (ab );
12731295 ath11k_hal_free_cont_rdp (ab );
12741296 ath11k_hal_free_cont_wrp (ab );
12751297 kfree (hal -> srng_config );
0 commit comments