From patchwork Thu May 24 13:32:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleg Keri X-Patchwork-Id: 10424751 X-Patchwork-Delegate: andy.shevchenko@gmail.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E61D46019D for ; Thu, 24 May 2018 13:32:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E492C294D9 for ; Thu, 24 May 2018 13:32:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D8B34294F5; Thu, 24 May 2018 13:32:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 79529294D9 for ; Thu, 24 May 2018 13:32:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965566AbeEXNco (ORCPT ); Thu, 24 May 2018 09:32:44 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:33065 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965572AbeEXNcl (ORCPT ); Thu, 24 May 2018 09:32:41 -0400 Received: by mail-wm0-f68.google.com with SMTP id x12-v6so27254045wmc.0; Thu, 24 May 2018 06:32:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=KcJP4kbRn+GXlGQwiEwDHwPR/hIyEiKEHPhHjfUgbwE=; b=VxngvOFSnxwMyleWyjsjAwgH8IF1IrZmR72qGAUdb2NvYsNfwejQAemAVRLqhgW17I kROef8V/9KmwXur92p+1wW88zwlDAw88BpyjPADqN64GcI/c4FYMOVH3yn8skNkOYf2f hvOFfwifEuAXf++oXOAnoOGZkqWU67mLyTnPBvUk+Baii6LQvm7n+785ldXOzO+WIoHU 2rvhqQbH4OCFuJtPs8p2lxNqdNoT60vj4QFQawUvYmUozBP/YxaKOHLjIdJdz56v6uwv 39jHnPDZ0qWRD+0OD2ZU4PFhIwsALpaLJ9uEAA90ABF2RyMhPRRVqMIqGL4LD2n27Oy7 nyag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=KcJP4kbRn+GXlGQwiEwDHwPR/hIyEiKEHPhHjfUgbwE=; b=OHeU1NRx7Mn3QteO6ARR1w4kAJkSC7o5XH/AMd7ipado5VcMcyN8bV10BiXEuNUJYU GEQmE4AA5IrYFT/kXuQkAO3EovAdEZmAnkp7P7/ZN/V1+S670NiZnPB6kzBcio0nJh2p z/HpC46fvHtZDzaQI2o7LDA7eYCVpkvKO2K2pWQUyyYWVoSJQazsiEKDsJ37LjRBzttZ jTIvEuVPsgWBguhbX/omudI9l8amhHt3+S3hU99GxDPhZuO8Vb6PLsNENxxM4VsirUTd AOMRWzLQkEgoaJoJN5Bj+5ON5wPLmvniPwqYRgxuw0wttkWT8XwezGP7zmkII/ShtLBf i8gg== X-Gm-Message-State: ALKqPwcSqivgIqme1Ua1Sn2/dmzGdJswFc2cDLMQgO4ZYrvV2TIDSdET Omxb02PKNrLbfHWV6SRHRZ0= X-Google-Smtp-Source: AB8JxZqDmBwSrRfCaSDPEG3pDPrbuQT2ByIgQNNFHbGziV2q5rwQg3AjsIEmutL1LAHxuT0wlVVZEw== X-Received: by 2002:a2e:9158:: with SMTP id q24-v6mr4673799ljg.73.1527168759724; Thu, 24 May 2018 06:32:39 -0700 (PDT) Received: from localhost.localdomain ([93.191.21.163]) by smtp.googlemail.com with ESMTPSA id u7-v6sm3981446ljj.96.2018.05.24.06.32.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 May 2018 06:32:38 -0700 (PDT) From: Oleg Keri Cc: Oleg Keri , Ike Panhc , Darren Hart , Andy Shevchenko , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] platform/x86: ideapad-laptop: Fix rfkill invert Date: Thu, 24 May 2018 16:32:31 +0300 Message-Id: <20180524133231.8433-1-ezhi99@gmail.com> X-Mailer: git-send-email 2.17.0 To: unlisted-recipients:; (no To-header on input) Sender: platform-driver-x86-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: platform-driver-x86@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP There are a lot of reports on the Internet about rfkill lock on modern Yoga Ideapad laptops while loading ideapad_laptop platform module. This patch offers the fix. Obviously it's impossible for me to test this patch on all ideapad laptops, so i've made an module parameter init_rfkill_inverted to keep old behavior. Comments are welcome. Signed-off-by: Oleg Keri --- drivers/platform/x86/ideapad-laptop.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c index 535199c9e6bc..1eeda7bc74a3 100644 --- a/drivers/platform/x86/ideapad-laptop.c +++ b/drivers/platform/x86/ideapad-laptop.c @@ -110,6 +110,10 @@ static bool no_bt_rfkill; module_param(no_bt_rfkill, bool, 0444); MODULE_PARM_DESC(no_bt_rfkill, "No rfkill for bluetooth."); +static bool init_rfkill_inverted; +module_param(init_rfkill_inverted, bool, 0444); +MODULE_PARM_DESC(init_rfkill_inverted, "Invert rfkill on initialization"); + /* * ACPI Helpers */ @@ -604,7 +608,9 @@ static int ideapad_register_rfkill(struct ideapad_private *priv, int dev) &sw_blocked)) { rfkill_init_sw_state(priv->rfk[dev], 0); } else { - sw_blocked = !sw_blocked; + /* Do not apply invert for ideapads which haven't hw switch */ + if (priv->has_hw_rfkill_switch || init_rfkill_inverted) + sw_blocked = !sw_blocked; rfkill_init_sw_state(priv->rfk[dev], sw_blocked); }