From: Jan Dabros <jsd@semihalf.com>
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 [thread overview]
Message-ID: <20220120001621.705352-1-jsd@semihalf.com> (raw)
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
next reply other threads:[~2022-01-20 0:17 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-20 0:16 Jan Dabros [this message]
2022-01-20 0:16 ` [PATCH 1/2] i2c: designware: Add missing locks Jan Dabros
2022-01-20 11:25 ` Hans de Goede
2022-01-24 10:33 ` Jan Dąbroś
2022-01-28 14:48 ` [PATCH v2 0/2] i2c-designware: Add support for AMD PSP semaphore Jan Dabros
2022-01-28 14:48 ` [PATCH v2 1/2] i2c: designware: Add missing locks Jan Dabros
2022-01-28 14:48 ` [PATCH v2 2/2] i2c: designware: Add AMD PSP I2C bus support Jan Dabros
2022-01-28 14:59 ` Jan Dąbroś
2022-01-28 15:49 ` Andy Shevchenko
2022-01-31 12:10 ` Jan Dąbroś
[not found] ` <CAOtMz3Oryr7mmRKf+secix_6=ZD_Lq+pMUoP=5T6AS6BPoqyQw@mail.gmail.com>
2022-01-31 13:31 ` Andy Shevchenko
2022-02-02 14:42 ` Jan Dąbroś
2022-01-28 14:58 ` [PATCH v2 0/2] i2c-designware: Add support for AMD PSP semaphore Jan Dąbroś
2022-02-02 14:43 ` [PATCH v3 " Jan Dabros
2022-02-02 14:43 ` [PATCH v3 2/2] i2c: designware: Add AMD PSP I2C bus support Jan Dabros
2022-02-02 16:13 ` Andy Shevchenko
2022-02-07 8:27 ` Jan Dąbroś
2022-02-07 11:41 ` Andy Shevchenko
2022-02-08 14:15 ` Jan Dąbroś
2022-02-07 14:25 ` Wolfram Sang
2022-02-08 14:13 ` Jan Dąbroś
2022-02-02 22:49 ` Limonciello, Mario
2022-02-03 10:41 ` Andy Shevchenko
2022-02-03 11:52 ` Jan Dąbroś
2022-01-20 0:16 ` [PATCH " Jan Dabros
2022-01-20 11:44 ` kernel test robot
2022-01-20 11:51 ` Hans de Goede
2022-01-21 9:59 ` Jan Dąbroś
2022-01-21 10:32 ` Hans de Goede
2022-01-21 17:38 ` Limonciello, Mario
2022-01-21 19:18 ` Tom Lendacky
2022-01-24 13:42 ` Jan Dąbroś
2022-01-26 19:36 ` Limonciello, Mario
2022-01-28 14:47 ` Jan Dąbroś
2022-01-24 12:35 ` Jan Dąbroś
2022-01-24 14:27 ` Hans de Goede
2022-01-20 14:20 ` Andy Shevchenko
2022-01-21 10:20 ` Jan Dąbroś
2022-01-21 17:51 ` Andy Shevchenko
2022-01-28 14:46 ` Jan Dąbroś
2022-01-20 15:33 ` kernel test robot
2022-01-20 17:09 ` Andy Shevchenko
2022-01-28 14:39 ` Jan Dąbroś
2022-01-20 11:15 ` [PATCH 0/2] i2c-designware: Add support for AMD PSP semaphore Hans de Goede
2022-01-20 12:29 ` Jan Dąbroś
2022-01-20 15:57 ` Hans de Goede
2022-01-21 10:27 ` Jan Dąbroś
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220120001621.705352-1-jsd@semihalf.com \
--to=jsd@semihalf.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=hdegoede@redhat.com \
--cc=jarkko.nikula@linux.intel.com \
--cc=jaz@semihalf.com \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=mw@semihalf.com \
--cc=rrangel@chromium.org \
--cc=upstream@semihalf.com \
--cc=wsa@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).