linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Matt Johnston <matt@codeconstruct.com.au>
To: linux-i2c@vger.kernel.org, matt@codeconstruct.com.au
Cc: linux-aspeed@lists.ozlabs.org, jk@codeconstruct.com.au
Subject: [RFC PATCH 0/3] Increase SMBus max block size to 255
Date: Wed,  2 Jun 2021 12:41:10 +0800	[thread overview]
Message-ID: <20210602044113.1581347-1-matt@codeconstruct.com.au> (raw)

This patch series increases the SMBus max block size from 32 to 255
as per the SMBus 3.0 specification.

Userspace remains backwards compatible with the current 32 byte block
for the I2C_SMBUS ioctl, and the block size limit remains for I2C_RDWR
ioctl with I2C_M_RECV_LEN.

It is separated into patches 1 & 2 though the userspace API isn't
correct with only the first patch - maybe they should be squashed. The
stack buffers in i2c_smbus_xfer_emulated() increase from ~70 bytes to
~500 bytes - I'm not sure if that is a problem.

I have tested with the Aspeed I2C controller, other drivers can add the
functionality as needed. For most emulated drivers it looks like minimal
changes are required.

This is required for MCTP I2C transport which has a 64 byte baseline
packet size.

Cheers,
Matt

Matt Johnston (3):
  i2c: core: Allow 255 byte transfers for SMBus 3.x
  i2c: dev: Handle 255 byte blocks for i2c ioctl
  i2c: aspeed: allow 255 byte block transfers

 drivers/i2c/busses/i2c-aspeed.c |  5 +-
 drivers/i2c/i2c-core-smbus.c    | 20 ++++---
 drivers/i2c/i2c-dev.c           | 92 ++++++++++++++++++++++++++++-----
 include/linux/i2c.h             | 13 +++++
 include/uapi/linux/i2c-dev.h    |  2 +
 include/uapi/linux/i2c.h        |  7 ++-
 6 files changed, 115 insertions(+), 24 deletions(-)

-- 
2.30.2


             reply	other threads:[~2021-06-02  4:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-02  4:41 Matt Johnston [this message]
2021-06-02  4:41 ` [RFC PATCH 1/3] i2c: core: Allow 255 byte transfers for SMBus 3.x Matt Johnston
2021-06-02  4:41 ` [RFC PATCH 2/3] i2c: dev: Handle 255 byte blocks for i2c ioctl Matt Johnston
2021-06-02  4:41 ` [RFC PATCH 3/3] i2c: aspeed: allow 255 byte block transfers Matt Johnston
2021-06-07 19:50   ` Brendan Higgins

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=20210602044113.1581347-1-matt@codeconstruct.com.au \
    --to=matt@codeconstruct.com.au \
    --cc=jk@codeconstruct.com.au \
    --cc=linux-aspeed@lists.ozlabs.org \
    --cc=linux-i2c@vger.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).