From: Andrew Jeffery <andrew@aj.id.au>
To: openipmi-developer@lists.sourceforge.net,
openbmc@lists.ozlabs.org, minyard@acm.org
Cc: devicetree@vger.kernel.org, tmaimon77@gmail.com,
linux-aspeed@lists.ozlabs.org, avifishman70@gmail.com,
venture@google.com, linux-kernel@vger.kernel.org,
tali.perry1@gmail.com, robh+dt@kernel.org,
chiawei_wang@aspeedtech.com,
linux-arm-kernel@lists.infradead.org, benjaminfair@google.com,
arnd@arndb.de, zweiss@equinix.com, joel@jms.id.au,
KWLIU@nuvoton.com
Subject: [PATCH v4 00/16] ipmi: Allow raw access to KCS devices
Date: Tue, 8 Jun 2021 20:17:41 +0930 [thread overview]
Message-ID: <20210608104757.582199-1-andrew@aj.id.au> (raw)
Hello,
This is the 4th spin of the series refactoring the keyboard-controller-style
device drivers in the IPMI subsystem.
v3 can be found at:
https://lore.kernel.org/lkml/20210510054213.1610760-1-andrew@aj.id.au/
v4:
* Makes kcs_bmc_add_device() return an error if no client successfully
initialised with respect to the binding of the device driver
* Retains the existing single-open semantics (v3 allowed multiple-open)
* Fixes the OBE macro for the NPCM7xx KCS driver
* Cleans up Yoda-style masks (mask constant on the LHS rather than RHS)
* Cleans up includes in kcs_bmc_client.h
* Adds some comments to the SerIO adapter to clarify object lifetimes
Previously:
Changes in v3:
* The series was rebased onto v5.13-rc1
* v5.13-rc1 includes Chiawei's patches reworking the LPC devicetree bindings,
so they're no-longer required in the series.
* After some discussion with Arnd[1] and investigating the serio subsystem,
I've replaced the "raw" KCS driver (patch 16/21 in v2) with a serio adaptor
(patch 11/16 in this series). The adaptor allows us to take advantage of the
existing chardevs provided by serio.
[1] https://lore.kernel.org/linux-arm-kernel/37e75b07-a5c6-422f-84b3-54f2bea0b917@www.fastmail.com/
Changes in v2 include:
* A rebase onto v5.12-rc2
* Incorporation of off-list feedback on SerIRQ configuration from
Chiawei
* Further validation on hardware for ASPEED KCS devices 2, 3 and 4
* Lifting the existing single-open constraint of the IPMI chardev
* Fixes addressing Rob's feedback on the conversion of the ASPEED KCS
binding to dt-schema
* Fixes addressing Rob's feedback on the new aspeed,lpc-interrupts
property definition for the ASPEED KCS binding
Please test and review!
Andrew
Andrew Jeffery (16):
ipmi: kcs_bmc_aspeed: Use of match data to extract KCS properties
ipmi: kcs_bmc: Make status update atomic
ipmi: kcs_bmc: Rename {read,write}_{status,data}() functions
ipmi: kcs_bmc: Split out kcs_bmc_cdev_ipmi
ipmi: kcs_bmc: Turn the driver data-structures inside-out
ipmi: kcs_bmc: Split headers into device and client
ipmi: kcs_bmc: Strip private client data from struct kcs_bmc
ipmi: kcs_bmc: Decouple the IPMI chardev from the core
ipmi: kcs_bmc: Allow clients to control KCS IRQ state
ipmi: kcs_bmc: Enable IBF on open
ipmi: kcs_bmc: Add serio adaptor
dt-bindings: ipmi: Convert ASPEED KCS binding to schema
dt-bindings: ipmi: Add optional SerIRQ property to ASPEED KCS devices
ipmi: kcs_bmc_aspeed: Implement KCS SerIRQ configuration
ipmi: kcs_bmc_aspeed: Fix IBFIE typo from datasheet
ipmi: kcs_bmc_aspeed: Optionally apply status address
.../bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml | 106 +++
.../bindings/ipmi/aspeed-kcs-bmc.txt | 33 -
drivers/char/ipmi/Kconfig | 27 +
drivers/char/ipmi/Makefile | 2 +
drivers/char/ipmi/kcs_bmc.c | 523 ++++-----------
drivers/char/ipmi/kcs_bmc.h | 92 +--
drivers/char/ipmi/kcs_bmc_aspeed.c | 633 +++++++++++++-----
drivers/char/ipmi/kcs_bmc_cdev_ipmi.c | 568 ++++++++++++++++
drivers/char/ipmi/kcs_bmc_client.h | 45 ++
drivers/char/ipmi/kcs_bmc_device.h | 22 +
drivers/char/ipmi/kcs_bmc_npcm7xx.c | 92 ++-
drivers/char/ipmi/kcs_bmc_serio.c | 157 +++++
12 files changed, 1594 insertions(+), 706 deletions(-)
create mode 100644 Documentation/devicetree/bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml
delete mode 100644 Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt
create mode 100644 drivers/char/ipmi/kcs_bmc_cdev_ipmi.c
create mode 100644 drivers/char/ipmi/kcs_bmc_client.h
create mode 100644 drivers/char/ipmi/kcs_bmc_device.h
create mode 100644 drivers/char/ipmi/kcs_bmc_serio.c
--
2.30.2
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Jeffery <andrew@aj.id.au>
To: openipmi-developer@lists.sourceforge.net,
openbmc@lists.ozlabs.org, minyard@acm.org
Cc: devicetree@vger.kernel.org, tmaimon77@gmail.com,
linux-aspeed@lists.ozlabs.org, KWLIU@nuvoton.com,
avifishman70@gmail.com, venture@google.com,
chiawei_wang@aspeedtech.com, linux-kernel@vger.kernel.org,
tali.perry1@gmail.com, robh+dt@kernel.org, arnd@arndb.de,
zweiss@equinix.com, linux-arm-kernel@lists.infradead.org,
benjaminfair@google.com
Subject: [PATCH v4 00/16] ipmi: Allow raw access to KCS devices
Date: Tue, 8 Jun 2021 20:17:41 +0930 [thread overview]
Message-ID: <20210608104757.582199-1-andrew@aj.id.au> (raw)
Hello,
This is the 4th spin of the series refactoring the keyboard-controller-style
device drivers in the IPMI subsystem.
v3 can be found at:
https://lore.kernel.org/lkml/20210510054213.1610760-1-andrew@aj.id.au/
v4:
* Makes kcs_bmc_add_device() return an error if no client successfully
initialised with respect to the binding of the device driver
* Retains the existing single-open semantics (v3 allowed multiple-open)
* Fixes the OBE macro for the NPCM7xx KCS driver
* Cleans up Yoda-style masks (mask constant on the LHS rather than RHS)
* Cleans up includes in kcs_bmc_client.h
* Adds some comments to the SerIO adapter to clarify object lifetimes
Previously:
Changes in v3:
* The series was rebased onto v5.13-rc1
* v5.13-rc1 includes Chiawei's patches reworking the LPC devicetree bindings,
so they're no-longer required in the series.
* After some discussion with Arnd[1] and investigating the serio subsystem,
I've replaced the "raw" KCS driver (patch 16/21 in v2) with a serio adaptor
(patch 11/16 in this series). The adaptor allows us to take advantage of the
existing chardevs provided by serio.
[1] https://lore.kernel.org/linux-arm-kernel/37e75b07-a5c6-422f-84b3-54f2bea0b917@www.fastmail.com/
Changes in v2 include:
* A rebase onto v5.12-rc2
* Incorporation of off-list feedback on SerIRQ configuration from
Chiawei
* Further validation on hardware for ASPEED KCS devices 2, 3 and 4
* Lifting the existing single-open constraint of the IPMI chardev
* Fixes addressing Rob's feedback on the conversion of the ASPEED KCS
binding to dt-schema
* Fixes addressing Rob's feedback on the new aspeed,lpc-interrupts
property definition for the ASPEED KCS binding
Please test and review!
Andrew
Andrew Jeffery (16):
ipmi: kcs_bmc_aspeed: Use of match data to extract KCS properties
ipmi: kcs_bmc: Make status update atomic
ipmi: kcs_bmc: Rename {read,write}_{status,data}() functions
ipmi: kcs_bmc: Split out kcs_bmc_cdev_ipmi
ipmi: kcs_bmc: Turn the driver data-structures inside-out
ipmi: kcs_bmc: Split headers into device and client
ipmi: kcs_bmc: Strip private client data from struct kcs_bmc
ipmi: kcs_bmc: Decouple the IPMI chardev from the core
ipmi: kcs_bmc: Allow clients to control KCS IRQ state
ipmi: kcs_bmc: Enable IBF on open
ipmi: kcs_bmc: Add serio adaptor
dt-bindings: ipmi: Convert ASPEED KCS binding to schema
dt-bindings: ipmi: Add optional SerIRQ property to ASPEED KCS devices
ipmi: kcs_bmc_aspeed: Implement KCS SerIRQ configuration
ipmi: kcs_bmc_aspeed: Fix IBFIE typo from datasheet
ipmi: kcs_bmc_aspeed: Optionally apply status address
.../bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml | 106 +++
.../bindings/ipmi/aspeed-kcs-bmc.txt | 33 -
drivers/char/ipmi/Kconfig | 27 +
drivers/char/ipmi/Makefile | 2 +
drivers/char/ipmi/kcs_bmc.c | 523 ++++-----------
drivers/char/ipmi/kcs_bmc.h | 92 +--
drivers/char/ipmi/kcs_bmc_aspeed.c | 633 +++++++++++++-----
drivers/char/ipmi/kcs_bmc_cdev_ipmi.c | 568 ++++++++++++++++
drivers/char/ipmi/kcs_bmc_client.h | 45 ++
drivers/char/ipmi/kcs_bmc_device.h | 22 +
drivers/char/ipmi/kcs_bmc_npcm7xx.c | 92 ++-
drivers/char/ipmi/kcs_bmc_serio.c | 157 +++++
12 files changed, 1594 insertions(+), 706 deletions(-)
create mode 100644 Documentation/devicetree/bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml
delete mode 100644 Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt
create mode 100644 drivers/char/ipmi/kcs_bmc_cdev_ipmi.c
create mode 100644 drivers/char/ipmi/kcs_bmc_client.h
create mode 100644 drivers/char/ipmi/kcs_bmc_device.h
create mode 100644 drivers/char/ipmi/kcs_bmc_serio.c
--
2.30.2
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Jeffery <andrew@aj.id.au>
To: openipmi-developer@lists.sourceforge.net,
openbmc@lists.ozlabs.org, minyard@acm.org
Cc: devicetree@vger.kernel.org, tmaimon77@gmail.com,
linux-aspeed@lists.ozlabs.org, avifishman70@gmail.com,
venture@google.com, linux-kernel@vger.kernel.org,
tali.perry1@gmail.com, robh+dt@kernel.org,
chiawei_wang@aspeedtech.com,
linux-arm-kernel@lists.infradead.org, benjaminfair@google.com,
arnd@arndb.de, zweiss@equinix.com, joel@jms.id.au,
KWLIU@nuvoton.com
Subject: [PATCH v4 00/16] ipmi: Allow raw access to KCS devices
Date: Tue, 8 Jun 2021 20:17:41 +0930 [thread overview]
Message-ID: <20210608104757.582199-1-andrew@aj.id.au> (raw)
Hello,
This is the 4th spin of the series refactoring the keyboard-controller-style
device drivers in the IPMI subsystem.
v3 can be found at:
https://lore.kernel.org/lkml/20210510054213.1610760-1-andrew@aj.id.au/
v4:
* Makes kcs_bmc_add_device() return an error if no client successfully
initialised with respect to the binding of the device driver
* Retains the existing single-open semantics (v3 allowed multiple-open)
* Fixes the OBE macro for the NPCM7xx KCS driver
* Cleans up Yoda-style masks (mask constant on the LHS rather than RHS)
* Cleans up includes in kcs_bmc_client.h
* Adds some comments to the SerIO adapter to clarify object lifetimes
Previously:
Changes in v3:
* The series was rebased onto v5.13-rc1
* v5.13-rc1 includes Chiawei's patches reworking the LPC devicetree bindings,
so they're no-longer required in the series.
* After some discussion with Arnd[1] and investigating the serio subsystem,
I've replaced the "raw" KCS driver (patch 16/21 in v2) with a serio adaptor
(patch 11/16 in this series). The adaptor allows us to take advantage of the
existing chardevs provided by serio.
[1] https://lore.kernel.org/linux-arm-kernel/37e75b07-a5c6-422f-84b3-54f2bea0b917@www.fastmail.com/
Changes in v2 include:
* A rebase onto v5.12-rc2
* Incorporation of off-list feedback on SerIRQ configuration from
Chiawei
* Further validation on hardware for ASPEED KCS devices 2, 3 and 4
* Lifting the existing single-open constraint of the IPMI chardev
* Fixes addressing Rob's feedback on the conversion of the ASPEED KCS
binding to dt-schema
* Fixes addressing Rob's feedback on the new aspeed,lpc-interrupts
property definition for the ASPEED KCS binding
Please test and review!
Andrew
Andrew Jeffery (16):
ipmi: kcs_bmc_aspeed: Use of match data to extract KCS properties
ipmi: kcs_bmc: Make status update atomic
ipmi: kcs_bmc: Rename {read,write}_{status,data}() functions
ipmi: kcs_bmc: Split out kcs_bmc_cdev_ipmi
ipmi: kcs_bmc: Turn the driver data-structures inside-out
ipmi: kcs_bmc: Split headers into device and client
ipmi: kcs_bmc: Strip private client data from struct kcs_bmc
ipmi: kcs_bmc: Decouple the IPMI chardev from the core
ipmi: kcs_bmc: Allow clients to control KCS IRQ state
ipmi: kcs_bmc: Enable IBF on open
ipmi: kcs_bmc: Add serio adaptor
dt-bindings: ipmi: Convert ASPEED KCS binding to schema
dt-bindings: ipmi: Add optional SerIRQ property to ASPEED KCS devices
ipmi: kcs_bmc_aspeed: Implement KCS SerIRQ configuration
ipmi: kcs_bmc_aspeed: Fix IBFIE typo from datasheet
ipmi: kcs_bmc_aspeed: Optionally apply status address
.../bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml | 106 +++
.../bindings/ipmi/aspeed-kcs-bmc.txt | 33 -
drivers/char/ipmi/Kconfig | 27 +
drivers/char/ipmi/Makefile | 2 +
drivers/char/ipmi/kcs_bmc.c | 523 ++++-----------
drivers/char/ipmi/kcs_bmc.h | 92 +--
drivers/char/ipmi/kcs_bmc_aspeed.c | 633 +++++++++++++-----
drivers/char/ipmi/kcs_bmc_cdev_ipmi.c | 568 ++++++++++++++++
drivers/char/ipmi/kcs_bmc_client.h | 45 ++
drivers/char/ipmi/kcs_bmc_device.h | 22 +
drivers/char/ipmi/kcs_bmc_npcm7xx.c | 92 ++-
drivers/char/ipmi/kcs_bmc_serio.c | 157 +++++
12 files changed, 1594 insertions(+), 706 deletions(-)
create mode 100644 Documentation/devicetree/bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml
delete mode 100644 Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt
create mode 100644 drivers/char/ipmi/kcs_bmc_cdev_ipmi.c
create mode 100644 drivers/char/ipmi/kcs_bmc_client.h
create mode 100644 drivers/char/ipmi/kcs_bmc_device.h
create mode 100644 drivers/char/ipmi/kcs_bmc_serio.c
--
2.30.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2021-06-08 10:48 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-08 10:47 Andrew Jeffery [this message]
2021-06-08 10:47 ` [PATCH v4 00/16] ipmi: Allow raw access to KCS devices Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 01/16] ipmi: kcs_bmc_aspeed: Use of match data to extract KCS properties Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-18 23:19 ` Zev Weiss
2021-06-18 23:19 ` Zev Weiss
2021-06-18 23:19 ` Zev Weiss
2021-06-08 10:47 ` [PATCH v4 02/16] ipmi: kcs_bmc: Make status update atomic Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 03/16] ipmi: kcs_bmc: Rename {read,write}_{status,data}() functions Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 03/16] ipmi: kcs_bmc: Rename {read, write}_{status, data}() functions Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 04/16] ipmi: kcs_bmc: Split out kcs_bmc_cdev_ipmi Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 05/16] ipmi: kcs_bmc: Turn the driver data-structures inside-out Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 06/16] ipmi: kcs_bmc: Split headers into device and client Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-18 23:24 ` Zev Weiss
2021-06-18 23:24 ` Zev Weiss
2021-06-18 23:24 ` Zev Weiss
2021-06-08 10:47 ` [PATCH v4 07/16] ipmi: kcs_bmc: Strip private client data from struct kcs_bmc Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 08/16] ipmi: kcs_bmc: Decouple the IPMI chardev from the core Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-18 23:26 ` Zev Weiss
2021-06-18 23:26 ` Zev Weiss
2021-06-18 23:26 ` Zev Weiss
2021-06-08 10:47 ` [PATCH v4 09/16] ipmi: kcs_bmc: Allow clients to control KCS IRQ state Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 10/16] ipmi: kcs_bmc: Enable IBF on open Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 11/16] ipmi: kcs_bmc: Add serio adaptor Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-18 23:30 ` Zev Weiss
2021-06-18 23:30 ` Zev Weiss
2021-06-18 23:30 ` Zev Weiss
2021-06-08 10:47 ` [PATCH v4 12/16] dt-bindings: ipmi: Convert ASPEED KCS binding to schema Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 13/16] dt-bindings: ipmi: Add optional SerIRQ property to ASPEED KCS devices Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 14/16] ipmi: kcs_bmc_aspeed: Implement KCS SerIRQ configuration Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 15/16] ipmi: kcs_bmc_aspeed: Fix IBFIE typo from datasheet Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` [PATCH v4 16/16] ipmi: kcs_bmc_aspeed: Optionally apply status address Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-08 10:47 ` Andrew Jeffery
2021-06-15 18:46 ` [PATCH v4 00/16] ipmi: Allow raw access to KCS devices Corey Minyard
2021-06-15 18:46 ` Corey Minyard
2021-06-15 18:46 ` Corey Minyard
2021-06-15 22:43 ` Andrew Jeffery
2021-06-15 22:43 ` Andrew Jeffery
2021-06-15 22:43 ` Andrew Jeffery
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=20210608104757.582199-1-andrew@aj.id.au \
--to=andrew@aj.id.au \
--cc=KWLIU@nuvoton.com \
--cc=arnd@arndb.de \
--cc=avifishman70@gmail.com \
--cc=benjaminfair@google.com \
--cc=chiawei_wang@aspeedtech.com \
--cc=devicetree@vger.kernel.org \
--cc=joel@jms.id.au \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-aspeed@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=minyard@acm.org \
--cc=openbmc@lists.ozlabs.org \
--cc=openipmi-developer@lists.sourceforge.net \
--cc=robh+dt@kernel.org \
--cc=tali.perry1@gmail.com \
--cc=tmaimon77@gmail.com \
--cc=venture@google.com \
--cc=zweiss@equinix.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.