From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lv Zheng Subject: [RFC PATCH v3 1/5] ACPI: button: Add indication of BIOS notification and faked events Date: Sat, 27 May 2017 07:42:24 +0800 Message-ID: References: <2a779ae8c280c968b3237ac4a3d9580df7262a46.1493951798.git.lv.zheng@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <2a779ae8c280c968b3237ac4a3d9580df7262a46.1493951798.git.lv.zheng@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: systemd-devel-bounces@lists.freedesktop.org Sender: "systemd-devel" To: "Rafael J. Wysocki" , "Rafael J. Wysocki" , Len Brown Cc: systemd-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Lv Zheng , linux-acpi@vger.kernel.org, Benjamin Tissoires , Lv Zheng List-Id: linux-acpi@vger.kernel.org VGhpcyBwYXRjaCBhZGRzIGEgcGFyYW1ldGVyIHRvIGFjcGlfbGlkX25vdGlmeV9zdGF0ZSgpIHNv IHRoYXQgaXQgY2FuIGFjdApkaWZmZXJlbnRseSBhZ2FpbnN0IEJJT1Mgbm90aWZpY2F0aW9uIGFu ZCBrZXJuZWwgZmFrZWQgZXZlbnRzLgoKQ2M6IDxzeXN0ZW1kLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZz4KQ2M6IEJlbmphbWluIFRpc3NvaXJlcyA8YmVuamFtaW4udGlzc29pcmVzQHJlZGhh dC5jb20+CkNjOiBQZXRlciBIdXR0ZXJlciA8cGV0ZXIuaHV0dGVyZXJAd2hvLXQubmV0PgpTaWdu ZWQtb2ZmLWJ5OiBMdiBaaGVuZyA8bHYuemhlbmdAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvYWNw aS9idXR0b24uYyB8IDE0ICsrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRp b25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9idXR0b24u YyBiL2RyaXZlcnMvYWNwaS9idXR0b24uYwppbmRleCA2ZDVhOGMxLi44NzRiYTYwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2FjcGkvYnV0dG9uLmMKKysrIGIvZHJpdmVycy9hY3BpL2J1dHRvbi5jCkBA IC0xMzgsNyArMTM4LDggQEAgc3RhdGljIGludCBhY3BpX2xpZF9ldmFsdWF0ZV9zdGF0ZShzdHJ1 Y3QgYWNwaV9kZXZpY2UgKmRldmljZSkKIAlyZXR1cm4gbGlkX3N0YXRlID8gMSA6IDA7CiB9CiAK LXN0YXRpYyBpbnQgYWNwaV9saWRfbm90aWZ5X3N0YXRlKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2 aWNlLCBpbnQgc3RhdGUpCitzdGF0aWMgaW50IGFjcGlfbGlkX25vdGlmeV9zdGF0ZShzdHJ1Y3Qg YWNwaV9kZXZpY2UgKmRldmljZSwKKwkJCQkgaW50IHN0YXRlLCBib29sIGJpb3Nfbm90aWZ5KQog ewogCXN0cnVjdCBhY3BpX2J1dHRvbiAqYnV0dG9uID0gYWNwaV9kcml2ZXJfZGF0YShkZXZpY2Up OwogCWludCByZXQ7CkBAIC0zNjAsNyArMzYxLDggQEAgaW50IGFjcGlfbGlkX29wZW4odm9pZCkK IH0KIEVYUE9SVF9TWU1CT0woYWNwaV9saWRfb3Blbik7CiAKLXN0YXRpYyBpbnQgYWNwaV9saWRf dXBkYXRlX3N0YXRlKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlKQorc3RhdGljIGludCBhY3Bp X2xpZF91cGRhdGVfc3RhdGUoc3RydWN0IGFjcGlfZGV2aWNlICpkZXZpY2UsCisJCQkJIGJvb2wg Ymlvc19ub3RpZnkpCiB7CiAJaW50IHN0YXRlOwogCkBAIC0zNjgsMTcgKzM3MCwxNyBAQCBzdGF0 aWMgaW50IGFjcGlfbGlkX3VwZGF0ZV9zdGF0ZShzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldmljZSkK IAlpZiAoc3RhdGUgPCAwKQogCQlyZXR1cm4gc3RhdGU7CiAKLQlyZXR1cm4gYWNwaV9saWRfbm90 aWZ5X3N0YXRlKGRldmljZSwgc3RhdGUpOworCXJldHVybiBhY3BpX2xpZF9ub3RpZnlfc3RhdGUo ZGV2aWNlLCBzdGF0ZSwgYmlvc19ub3RpZnkpOwogfQogCiBzdGF0aWMgdm9pZCBhY3BpX2xpZF9p bml0aWFsaXplX3N0YXRlKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlKQogewogCXN3aXRjaCAo bGlkX2luaXRfc3RhdGUpIHsKIAljYXNlIEFDUElfQlVUVE9OX0xJRF9JTklUX09QRU46Ci0JCSh2 b2lkKWFjcGlfbGlkX25vdGlmeV9zdGF0ZShkZXZpY2UsIDEpOworCQkodm9pZClhY3BpX2xpZF9u b3RpZnlfc3RhdGUoZGV2aWNlLCAxLCBmYWxzZSk7CiAJCWJyZWFrOwogCWNhc2UgQUNQSV9CVVRU T05fTElEX0lOSVRfTUVUSE9EOgotCQkodm9pZClhY3BpX2xpZF91cGRhdGVfc3RhdGUoZGV2aWNl KTsKKwkJKHZvaWQpYWNwaV9saWRfdXBkYXRlX3N0YXRlKGRldmljZSwgZmFsc2UpOwogCQlicmVh azsKIAljYXNlIEFDUElfQlVUVE9OX0xJRF9JTklUX0lHTk9SRToKIAlkZWZhdWx0OgpAQCAtMzk4 LDcgKzQwMCw3IEBAIHN0YXRpYyB2b2lkIGFjcGlfYnV0dG9uX25vdGlmeShzdHJ1Y3QgYWNwaV9k ZXZpY2UgKmRldmljZSwgdTMyIGV2ZW50KQogCWNhc2UgQUNQSV9CVVRUT05fTk9USUZZX1NUQVRV UzoKIAkJaW5wdXQgPSBidXR0b24tPmlucHV0OwogCQlpZiAoYnV0dG9uLT50eXBlID09IEFDUElf QlVUVE9OX1RZUEVfTElEKSB7Ci0JCQlhY3BpX2xpZF91cGRhdGVfc3RhdGUoZGV2aWNlKTsKKwkJ CWFjcGlfbGlkX3VwZGF0ZV9zdGF0ZShkZXZpY2UsIHRydWUpOwogCQl9IGVsc2UgewogCQkJaW50 IGtleWNvZGU7CiAKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpzeXN0ZW1kLWRldmVsIG1haWxpbmcgbGlzdApzeXN0ZW1kLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL3N5c3RlbWQtZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756105AbdE0BUS (ORCPT ); Fri, 26 May 2017 21:20:18 -0400 Received: from mga04.intel.com ([192.55.52.120]:64989 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1948846AbdEZXkT (ORCPT ); Fri, 26 May 2017 19:40:19 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,399,1491289200"; d="scan'208";a="92374147" From: Lv Zheng To: "Rafael J. Wysocki" , "Rafael J. Wysocki" , Len Brown Cc: Lv Zheng , Lv Zheng , , linux-acpi@vger.kernel.org, , Benjamin Tissoires , Peter Hutterer Subject: [RFC PATCH v3 1/5] ACPI: button: Add indication of BIOS notification and faked events Date: Sat, 27 May 2017 07:42:24 +0800 Message-Id: X-Mailer: git-send-email 2.5.0 In-Reply-To: <2a779ae8c280c968b3237ac4a3d9580df7262a46.1493951798.git.lv.zheng@intel.com> References: <2a779ae8c280c968b3237ac4a3d9580df7262a46.1493951798.git.lv.zheng@intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch adds a parameter to acpi_lid_notify_state() so that it can act differently against BIOS notification and kernel faked events. Cc: Cc: Benjamin Tissoires Cc: Peter Hutterer Signed-off-by: Lv Zheng --- drivers/acpi/button.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index 6d5a8c1..874ba60 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c @@ -138,7 +138,8 @@ static int acpi_lid_evaluate_state(struct acpi_device *device) return lid_state ? 1 : 0; } -static int acpi_lid_notify_state(struct acpi_device *device, int state) +static int acpi_lid_notify_state(struct acpi_device *device, + int state, bool bios_notify) { struct acpi_button *button = acpi_driver_data(device); int ret; @@ -360,7 +361,8 @@ int acpi_lid_open(void) } EXPORT_SYMBOL(acpi_lid_open); -static int acpi_lid_update_state(struct acpi_device *device) +static int acpi_lid_update_state(struct acpi_device *device, + bool bios_notify) { int state; @@ -368,17 +370,17 @@ static int acpi_lid_update_state(struct acpi_device *device) if (state < 0) return state; - return acpi_lid_notify_state(device, state); + return acpi_lid_notify_state(device, state, bios_notify); } static void acpi_lid_initialize_state(struct acpi_device *device) { switch (lid_init_state) { case ACPI_BUTTON_LID_INIT_OPEN: - (void)acpi_lid_notify_state(device, 1); + (void)acpi_lid_notify_state(device, 1, false); break; case ACPI_BUTTON_LID_INIT_METHOD: - (void)acpi_lid_update_state(device); + (void)acpi_lid_update_state(device, false); break; case ACPI_BUTTON_LID_INIT_IGNORE: default: @@ -398,7 +400,7 @@ static void acpi_button_notify(struct acpi_device *device, u32 event) case ACPI_BUTTON_NOTIFY_STATUS: input = button->input; if (button->type == ACPI_BUTTON_TYPE_LID) { - acpi_lid_update_state(device); + acpi_lid_update_state(device, true); } else { int keycode; -- 2.7.4