Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2713919pxb; Tue, 23 Feb 2021 13:48:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJzPfWDsMEDdI2fqBfGu3IB+dqED9zdEcBOTJBS6b6hAAFPuTWojtEvicEmK8lJRb9lkwJLG X-Received: by 2002:a05:6402:1688:: with SMTP id a8mr30239470edv.227.1614116895315; Tue, 23 Feb 2021 13:48:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614116895; cv=none; d=google.com; s=arc-20160816; b=AcBs+ifoN5THmRSBTHmUXZyCAYmp2CBYEmB3Gzm15huYldJz2JHeXEqikbAM0Uu87/ coQnTs8xVNj2ZPupS+mffeYW2T3yAjmt9AhAe9tOG9PnA/j8vG5ra0m95C8CsM0Kv1H6 zt97kH6dJv943hQ33jPVTLOHdLdTPZIWwk5ZofMShzMfni4SUjywpEJML6p9MPU/tnTm JWWguUZxajwdBSFIAzA4OVapM/pugV7kk+jUC3OOmuAe3g5C36cWsa5mC7cMuzM1OsRh SaUhAwdv7i1gSuuRMXw2wMq8ZvVSxpkVqYinULCuGsWzFCcpuLkhTG/KhBcPof6AYHXw Ujjw== 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:dkim-signature; bh=jpEg8Delz5r/vSG/x3nH6tryNQYdmb+Hx+h2HjRiDRI=; b=RCB+Lzd8fu5BqzZ+28LPekpusl+3lN+2O7RxxEvEF2jG+sEPGaOlBSZv8ikMDYAJ2E rA/qxCIF68JijMxV+kXlyy5FXRklEfOHlkanjLcYMjZOPzZu3suhUcC6/6hXhdakDecd HzfNQdrG9Dq3wRGu7c9lUyQ7hpw2e1TOS1Y9IwwysZN6ZcvgDzyLtwlhTygMWEzMdPoC FjUpAXaWPtDHbHSAKW+yUBSngrNuvQvMn4VEJEhelPqHpSuhZhDAX+gp3+eS5kJTi82G i/efN1wpGhSpViIqteRcz0Vgc8R0kfU6peCU34FLDOMjXStBn1xoo2s14BX8mOTSH0vH f4Lw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b="Q/VZ67Fy"; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l6si8338520edw.514.2021.02.23.13.47.50; Tue, 23 Feb 2021 13:48:15 -0800 (PST) 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; dkim=pass header.i=@chromium.org header.s=google header.b="Q/VZ67Fy"; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231721AbhBWVqX (ORCPT + 99 others); Tue, 23 Feb 2021 16:46:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230128AbhBWVqW (ORCPT ); Tue, 23 Feb 2021 16:46:22 -0500 Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF33DC061574 for ; Tue, 23 Feb 2021 13:45:41 -0800 (PST) Received: by mail-pg1-x531.google.com with SMTP id n10so37229pgl.10 for ; Tue, 23 Feb 2021 13:45:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jpEg8Delz5r/vSG/x3nH6tryNQYdmb+Hx+h2HjRiDRI=; b=Q/VZ67Fyvb95Mc8W53yyyIQhkVdqe6KoCgoNcXvUo+qY58ZsF5fJYIATNXE2CWuydk egl0BttIbPTYPFh7q1p24WPet2EeYtoNGhIGU+gv4G5Cw1wcWVM0xyrxxxJZxDgdRHU4 KvQjPPqt8UunK2j/4vhGVr3fSvz7m1g9BRnh8= 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:mime-version :content-transfer-encoding; bh=jpEg8Delz5r/vSG/x3nH6tryNQYdmb+Hx+h2HjRiDRI=; b=AW1aFXPn1XJBa0SAGP/GQXSI+0nNRGA48gIDohCIVYFj2xeBio/IfeBDG8Z4rOB1Wk s2YwYcx/L2Y1pm2yTUUeQ/CczoKL3lLRcG0JYnFd0mxxYIhlJ6wVNPSYHsb8JJpD1e/7 PHKR7i7VeE3fNWNK0Ski82alObnxMeQJN81Z1cA1MPvtAdwpcTC3NJ44yGHpkTzDOYzo EV0wpz+6jAccGXnAhJT7pWGTAGGb9zRg6Oak9HtAxmm1aduh4EiktRMFxDwU6WGl1OTs 0rHKsxtn/QyX+GkThD8Jh7ulqGzkS8Lfo+2aYiHRAcau2X+/Bp7EP2b3flvA1gBOlfV4 h4VA== X-Gm-Message-State: AOAM53042hWy2Z9qe2IcjYmMj1h7pVQDEVLfsn3nQAIhWbMuoZ+0d6M8 MmkkAWA+zhS3z31346TEF9LJqw== X-Received: by 2002:a05:6a00:16c7:b029:1b6:68a6:985a with SMTP id l7-20020a056a0016c7b02901b668a6985amr4091243pfc.44.1614116741449; Tue, 23 Feb 2021 13:45:41 -0800 (PST) Received: from smtp.gmail.com ([2620:15c:202:201:68e6:d68b:3887:f216]) by smtp.gmail.com with ESMTPSA id r68sm137951pfc.49.2021.02.23.13.45.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Feb 2021 13:45:41 -0800 (PST) From: Stephen Boyd To: Andy Gross , Bjorn Andersson Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Elliot Berman , Brian Masney , Stephan Gerhold , Jeffrey Hugo , Douglas Anderson Subject: [PATCH 0/6] firmware: qcom_scm: Fix SMCCC detection on sc7180 Date: Tue, 23 Feb 2021 13:45:33 -0800 Message-Id: <20210223214539.1336155-1-swboyd@chromium.org> X-Mailer: git-send-email 2.30.0.617.g56c4b15f3c-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The firmware that ships on sc7180 devices doesn't implement the smc call that tells the kernel what calling convention is available. Instead, the firmware returns an error code indicating the call isn't implemented (that makes my head spin). To smooth things out here let's implement a small workaround that checks the scm compatible string so we can force the arm64 calling convention. This series also includes some fixes for the "is call available" API because it doesn't seem to be used properly, a documentation fix noticed while reading through the code, and suppression of sysfs bind attributes to save us from rouge driver removal. Finally, the last patch is sort of an RFC, but I'd like to merge that too so we can kick out the legacy API entirely on arm64 kernels. As far as I know it isn't used so we can save some bytes by not compiling it or using it unless the architecture is ARM. Let me know what you think. Cc: Elliot Berman Cc: Brian Masney Cc: Stephan Gerhold Cc: Jeffrey Hugo Cc: Douglas Anderson Stephen Boyd (6): firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool firmware: qcom_scm: Reduce locking section for __get_convention() firmware: qcom_scm: Workaround lack of "is available" call on SC7180 firmware: qcom_scm: Suppress sysfs bind attributes firmware: qcom_scm: Fix kernel-doc function names to match firmware: qcom_scm: Only compile legacy calls on ARM drivers/firmware/Makefile | 4 +- drivers/firmware/qcom_scm-legacy.c | 137 ++++++++++++++++- drivers/firmware/qcom_scm-smc.c | 12 +- drivers/firmware/qcom_scm.c | 234 +++++++---------------------- drivers/firmware/qcom_scm.h | 40 ++++- include/linux/qcom_scm.h | 21 ++- 6 files changed, 247 insertions(+), 201 deletions(-) base-commit: 3b9cdafb5358eb9f3790de2f728f765fef100731 -- https://chromeos.dev