Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1206539pxb; Fri, 21 Jan 2022 12:14:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJx8mL1APJaKifPhNjh2ipFlooLD1LFsDp0FJx9gIRftcTHbT4GH7utmJAHigQCPSSUm6Ak4 X-Received: by 2002:a05:6a00:9a9:b0:4c1:c43e:75e4 with SMTP id u41-20020a056a0009a900b004c1c43e75e4mr4922312pfg.83.1642796052473; Fri, 21 Jan 2022 12:14:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642796052; cv=none; d=google.com; s=arc-20160816; b=WfbX4PdXTeVOtpkk6VHqaA/3XeBA84UGk+ktC1ICTtrrv5KYGCqwFex+Y73lismmVb 8gmw75D4c7k8TLCzD9j0WcKDBYcL8qYO6qMVapBlOhcChLm97MOeUhv8kAoBPDsSITtg 2WOSdi+qKllrb7wvLl43HnwCw0urNIxS/pJ6h2kwEqhVwQ/FKVy6/X0AlHvN5nHb5CSb Z8f7RVxMODi11DDzS4fE0x3OjVQVPMcE4ifznEHw4LpAXXW8TCbUhkGJzdz/6DXYjGNu 8UtgBEMdq3jnoPz4W0zSdrdHCJ6H7+J90qqblQ83WpF/m/O8ySyWd4umBHLHW9NsbxDT dC7g== 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=NPDv/4ut9T/p09x8/AMRX86/gRJUHk8SX5V3uS3JB0o=; b=X0hQG0hmJkKYNDIAYODxFK2w8ycsdMEWl/8bL0oR6jHc+8mOeu3OudPfPGBBt7yiGO qy7DV//djlPivqzBupTiR4nhHQvLEThwzwDp2FDZXNrGVIhPb6rTpXW68Tkv0MobxW1Q SDUd5pxR1288hxBfVOHi7P0vNwK2I1ehLBe7LXifh8RUFgarPHagVEysJt88pSqkDUsg g45aNFByDU3j1VEy0T8JgBUZEib3C+F13bPF4Rb74tT5a+7126LnWPNAd40sWBapiASO ZZ6lkSyVNuius0aGafB9e00RMuYUYoE/08QbmwuRM9b26fGcYVXGlZoWHcVzyp2C8Nmw XYbw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@semihalf-com.20210112.gappssmtp.com header.s=20210112 header.b=an2BcXLP; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r12si6860968pgb.291.2022.01.21.12.14.00; Fri, 21 Jan 2022 12:14:12 -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=@semihalf-com.20210112.gappssmtp.com header.s=20210112 header.b=an2BcXLP; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357673AbiATARL (ORCPT + 99 others); Wed, 19 Jan 2022 19:17:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1357660AbiATARI (ORCPT ); Wed, 19 Jan 2022 19:17:08 -0500 Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0C77C06161C for ; Wed, 19 Jan 2022 16:17:07 -0800 (PST) Received: by mail-lf1-x133.google.com with SMTP id m1so14995536lfq.4 for ; Wed, 19 Jan 2022 16:17:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=NPDv/4ut9T/p09x8/AMRX86/gRJUHk8SX5V3uS3JB0o=; b=an2BcXLPoLBuGiM8g9XhPMet4vOHDlh9p2qdL/Yhl8QdYZT7M1mtaBd+I3nCrUTzKg 4P2kN2u5XnN0SC6sfE/n1kqWdlWxqo5fMAo6AjwLjseqVC+60RivmIkqYtUXhGfWf5vE tpUKhpO/8x+5IRmWLXKwlZD8pZIlNl8myLe+Ra+X9gOD8wFhRp6TehDJySCa1Zcun2xo RnUdEL1Tl7WeS12qzVzlG1oaGqzOGz1dVjRpRXaNJT4tIXbhLZgmbkz8dE98JQATBUSx EL4jn8Rk6xiCOgVHhV22ZeosdsabN1IeqZRi2BLVz1LRDvDyL736ixbPEz2TdkTgiH5F A/ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=NPDv/4ut9T/p09x8/AMRX86/gRJUHk8SX5V3uS3JB0o=; b=dBOc2kLqt8mQC7ychyVI4B4FdQzUktsVgJzuDQbQHlQa0rodXE0dF1WiyeAaE289Po 2yomG9X5WtooD5O1mfGh6CJrbc2OZa534fwkxGaA82gA8LXcpI2TMP2ENhXaiVzD/tOV lf1Ka0W1CwJhdYQfhT6henWxRpLEYqASBzUxl4nyZEC1NXd0nJ2Ubt9H3j5bPAv067YI 9xYKfNTZVaVanESSgalFAKDT5K0xvj7/0JeGi2B2a06gtrvit6sZc16LWYW5fQq8zZoa HqeZvUNUAbVaFVefSbPAccb9f4PYJCeu4MVmwZeyt6TU2fu2tY0Co5BIpaJ4tA+Knr3A eYzA== X-Gm-Message-State: AOAM533qLpF7n16a5BAvZAkWFdq0JoY9+q9hL2DHye2Nfi5yNQqqi+cf aS9Z0AHJuggLtuEwUUh204SvY/7qXj821A== X-Received: by 2002:ac2:5d4e:: with SMTP id w14mr3796792lfd.574.1642637826068; Wed, 19 Jan 2022 16:17:06 -0800 (PST) Received: from dabros-l.roam.corp.google.com ([185.157.14.92]) by smtp.gmail.com with ESMTPSA id v27sm119564lfo.243.2022.01.19.16.17.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Jan 2022 16:17:05 -0800 (PST) From: Jan Dabros To: linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, jarkko.nikula@linux.intel.com Cc: andriy.shevchenko@linux.intel.com, mika.westerberg@linux.intel.com, hdegoede@redhat.com, wsa@kernel.org, rrangel@chromium.org, mw@semihalf.com, jaz@semihalf.com, upstream@semihalf.com, jsd@semihalf.com Subject: [PATCH 0/2] i2c-designware: Add support for AMD PSP semaphore Date: Thu, 20 Jan 2022 01:16:19 +0100 Message-Id: <20220120001621.705352-1-jsd@semihalf.com> X-Mailer: git-send-email 2.34.1.703.g22d0c6ccf7-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patchset comprises support for new i2c-designware controller setup on some AMD Cezanne SoCs, where x86 is sharing i2c bus with PSP. PSP uses the same controller and acts as an i2c arbitrator there (x86 is leasing bus from it). First commit aims to improve generic i2c-designware code by adding extra locking on probe() and disable() paths. I would like to ask someone with access to boards which use Intel BayTrail(CONFIG_I2C_DESIGNWARE_BAYTRAIL) to verify behavior of my changes on such setup. Second commit adds support for new PSP semaphore arbitration mechanism. Implementation is similar to the one from i2c-designware-baytrail.c however there are two main differences: 1) Add new ACPI ID in order to protect against silent binding of the old driver to the setup with PSP semaphore. Extra flag ARBITRATION_SEMAPHORE added to this new _HID allows to recognize setup with PSP. 2) Beside acquire_lock() and release_lock() methods we are also applying quirks to the lock_bus() and unlock_bus() global adapter methods. With this in place all i2c clients drivers may lock i2c bus for a desired number of i2c transactions (e.g. write-wait-read) without being aware of that such bus is shared with another entity. This patchset is a follow-up to the RFC sent earlier on LKML [1], with review comments applied. Looking forward to some feedback. [1] https://lkml.org/lkml/2021/12/22/219 Jan Dabros (2): i2c: designware: Add missing locks i2c: designware: Add AMD PSP I2C bus support MAINTAINERS | 1 + drivers/acpi/acpi_apd.c | 1 + drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-designware-amdpsp.c | 357 +++++++++++++++++++ drivers/i2c/busses/i2c-designware-baytrail.c | 10 +- drivers/i2c/busses/i2c-designware-common.c | 12 + drivers/i2c/busses/i2c-designware-core.h | 18 +- drivers/i2c/busses/i2c-designware-master.c | 6 + drivers/i2c/busses/i2c-designware-platdrv.c | 61 ++++ 10 files changed, 469 insertions(+), 8 deletions(-) create mode 100644 drivers/i2c/busses/i2c-designware-amdpsp.c -- 2.34.1.703.g22d0c6ccf7-goog