Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4467867pxf; Tue, 16 Mar 2021 14:26:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzlsm1uZ3G3URUONWFmGIYE/00up1FowlOYXT+B5l6DJPMDMK4WBRTDKl58T+vE+qPbjz1q X-Received: by 2002:a05:6402:5203:: with SMTP id s3mr38856304edd.79.1615930002128; Tue, 16 Mar 2021 14:26:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615930002; cv=none; d=google.com; s=arc-20160816; b=P+jGt1M85L5qVnF0E62FFVpA6KqmobXnEmJQrbEXBANqIyZlltvgh4a3H5X8AXGKoL TkQ2QIwsB+cI0CFE7LIL6yMaBuqJuJ/bSl1dISuAhS3oP6DYsN1RPLwIII2Z2kfvalMV Vg4dAB+leANIkAdHLP4+VjZ8xLj16T0rcEkAgW8fFhj474uVh8NHM5uJchDfT1knNu/t S1ZJ/GvX1ISdN3Bc83XZ7d/HRfoiDo/W3YkKRNdjlXViLhGgaFQV7soeUipzY2iR696B LITKU36rTEybyoUjs8B75yJGNtQFC8mw7eVAhlox1JBHJBU2UIefcMLNlCLE70o1O0Ju 4U2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:ironport-sdr:ironport-sdr; bh=OlIip9L4FNrj0Tr+HDxdFSQEnCsquTUO70ShedX9Cv8=; b=sZHGJaibwwbXxi5k1WYGZ7tDV4mr0zdyUTyvlpz3BstzThod8MOwGyce+Wr1vUFGph 594/228ASAzL8ojzOT7tB5GQC+9Xt7EGd6CczEbPbvfDOrXNRk1Uc99a08aI0bpq4w0R DpV0l0XQ0hAbs6mXx/LpHB4l0d6AtJV+EoGmqU8TXpuOXeYPM+As2gcxNEkjScTc317O qGfPiAz/td3eet4yidwYFMjV4H+4nN/pcdI5rD8v4L0ScQqsQPwDtKE3dkV9nl3LFkFF ilWmHURtHBjOHAOBYVQgQ3vd8I9uP4tcDzaFIz568Ef2vMRwOfJOwyEVxA1aGi1NepU2 Nqgg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bx8si15992731edb.517.2021.03.16.14.26.20; Tue, 16 Mar 2021 14:26:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229482AbhCPUX5 (ORCPT + 99 others); Tue, 16 Mar 2021 16:23:57 -0400 Received: from mga09.intel.com ([134.134.136.24]:41153 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229490AbhCPUXh (ORCPT ); Tue, 16 Mar 2021 16:23:37 -0400 IronPort-SDR: i5AAaFA0RWdl+wKvGOhkmDMquNiKIpttkZVYVFIdPCVJYln/q6jaKU+AQZYL2kSEVNTNvYyTrz gpBr+FYpuJDQ== X-IronPort-AV: E=McAfee;i="6000,8403,9925"; a="189423901" X-IronPort-AV: E=Sophos;i="5.81,254,1610438400"; d="scan'208";a="189423901" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Mar 2021 13:23:37 -0700 IronPort-SDR: Bw4U02Y9efql+FE/hwt1tt9FMTXpu5xeUT2uKNMT5JhzSBcITxt7FpBcxjqqCbEMS5tR15bUEt aNPUCe1BM2MA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,254,1610438400"; d="scan'208";a="433136802" Received: from spandruv-desk.jf.intel.com ([10.54.75.21]) by fmsmga004.fm.intel.com with ESMTP; 16 Mar 2021 13:23:36 -0700 From: Srinivas Pandruvada To: jikos@kernel.org, benjamin.tissoires@redhat.com, srinivas.pandruvada@linux.intel.com Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Ye Xiang Subject: [PATCH v2] HID: intel_ish-hid: HBM: Use connected standby state bit during suspend/resume Date: Tue, 16 Mar 2021 13:23:34 -0700 Message-Id: <20210316202334.655760-1-srinivas.pandruvada@linux.intel.com> X-Mailer: git-send-email 2.25.4 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ye Xiang The individual sensor drivers implemented in the ISH firmware needs capability to take special actions when there is a change in the system standby state. The ISH core firmware passes this notification to individual sensor drivers in response to the OS request via connected standby bit in the SYSTEM_STATE_STATUS command. This change sets CONNECTED_STANDBY_STATE_BIT bit to 1 during suspend callback and clears during resume callback. Signed-off-by: Ye Xiang [srinivas.pandruvada@linux.intel.com: changelog rewrite] Acked-by: Srinivas Pandruvada --- v2: changed changelog to be more clear Changed the name in the signed-off to match "From" drivers/hid/intel-ish-hid/ishtp/hbm.c | 6 +++--- drivers/hid/intel-ish-hid/ishtp/hbm.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/hid/intel-ish-hid/ishtp/hbm.c b/drivers/hid/intel-ish-hid/ishtp/hbm.c index 30a91d068306..dbfae60f2621 100644 --- a/drivers/hid/intel-ish-hid/ishtp/hbm.c +++ b/drivers/hid/intel-ish-hid/ishtp/hbm.c @@ -914,7 +914,7 @@ static inline void fix_cl_hdr(struct ishtp_msg_hdr *hdr, size_t length, /*** Suspend and resume notification ***/ static uint32_t current_state; -static uint32_t supported_states = 0 | SUSPEND_STATE_BIT; +static uint32_t supported_states = SUSPEND_STATE_BIT | CONNECTED_STANDBY_STATE_BIT; /** * ishtp_send_suspend() - Send suspend message to FW @@ -933,7 +933,7 @@ void ishtp_send_suspend(struct ishtp_device *dev) memset(&state_status_msg, 0, len); state_status_msg.hdr.cmd = SYSTEM_STATE_STATUS; state_status_msg.supported_states = supported_states; - current_state |= SUSPEND_STATE_BIT; + current_state |= (SUSPEND_STATE_BIT | CONNECTED_STANDBY_STATE_BIT); dev->print_log(dev, "%s() sends SUSPEND notification\n", __func__); state_status_msg.states_status = current_state; @@ -959,7 +959,7 @@ void ishtp_send_resume(struct ishtp_device *dev) memset(&state_status_msg, 0, len); state_status_msg.hdr.cmd = SYSTEM_STATE_STATUS; state_status_msg.supported_states = supported_states; - current_state &= ~SUSPEND_STATE_BIT; + current_state &= ~(CONNECTED_STANDBY_STATE_BIT | SUSPEND_STATE_BIT); dev->print_log(dev, "%s() sends RESUME notification\n", __func__); state_status_msg.states_status = current_state; diff --git a/drivers/hid/intel-ish-hid/ishtp/hbm.h b/drivers/hid/intel-ish-hid/ishtp/hbm.h index 7c445b203f2a..08f3f3ceb18c 100644 --- a/drivers/hid/intel-ish-hid/ishtp/hbm.h +++ b/drivers/hid/intel-ish-hid/ishtp/hbm.h @@ -235,6 +235,7 @@ struct dma_xfer_hbm { #define SYSTEM_STATE_QUERY_SUBSCRIBERS 0x3 #define SYSTEM_STATE_STATE_CHANGE_REQ 0x4 /*indicates suspend and resume states*/ +#define CONNECTED_STANDBY_STATE_BIT (1<<0) #define SUSPEND_STATE_BIT (1<<1) struct ish_system_states_header { -- 2.25.4