From 62fe1e3f4545731ae47bfcd456e5b3dbe5896c93 Mon Sep 17 00:00:00 2001 From: Jun Wang Date: Mon, 14 Jan 2019 16:34:03 +0800 Subject: [PATCH] qcacmn: Fix core_ctl_set_boost not released issue hdd_napi_serialize(0) will call hif_napi_event() with NAPI_EVT_USR_NORMAL mode. But in this mode, blacklist_pending is not set as BLACKLIST_OFF_PENDING, so the function hif_napi_core_ctl_set_boost(false) is not called. Then core_ctl can not resume to normal status, which will result in performance and power issues. Change-Id: Ia2084d9febab0ff4aadb0951bd3347f608a1d101 CRs-Fixed: 2381895 --- hif/src/hif_irq_affinity.c | 4 +++- hif/src/hif_napi.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/hif/src/hif_irq_affinity.c b/hif/src/hif_irq_affinity.c index 97d139f119..6d23958235 100644 --- a/hif/src/hif_irq_affinity.c +++ b/hif/src/hif_irq_affinity.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2015-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -192,6 +192,8 @@ int hif_exec_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event, } case NAPI_EVT_USR_NORMAL: { NAPI_DEBUG("%s: User forced DE-SERIALIZATION", __func__); + if (!napid->user_cpu_affin_mask) + blacklist_pending = BLACKLIST_OFF_PENDING; /* * Deserialization timeout is handled at hdd layer; * just mark current mode to uninitialized to ensure diff --git a/hif/src/hif_napi.c b/hif/src/hif_napi.c index 48abd8099d..b1079b9fa6 100644 --- a/hif/src/hif_napi.c +++ b/hif/src/hif_napi.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2015-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -632,6 +632,8 @@ int hif_napi_event(struct hif_opaque_softc *hif_ctx, enum qca_napi_event event, } case NAPI_EVT_USR_NORMAL: { NAPI_DEBUG("%s: User forced DE-SERIALIZATION", __func__); + if (!napid->user_cpu_affin_mask) + blacklist_pending = BLACKLIST_OFF_PENDING; /* * Deserialization timeout is handled at hdd layer; * just mark current mode to uninitialized to ensure