From: Wolfram Sang <wsa@the-dreams.de>
To: linux-i2c@vger.kernel.org
Cc: Jean Delvare <jdelvare@suse.de>,
linux-acpi@vger.kernel.org, Wolfram Sang <wsa@the-dreams.de>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 0/8] i2c: refactor core and break out blocks
Date: Fri, 26 May 2017 10:20:51 +0200 [thread overview]
Message-ID: <20170526082101.4746-1-wsa@the-dreams.de> (raw)
Yes, I wanted to do this for years now... The I2C core became a huge monolithic
blob getting harder and harder to maintain. This series breaks out some
functional parts into seperate files. This makes the code easier to handle
because of the smaller chunks. It reduces ifdeffery because we can now handle
compilation at the Makefile level. And it helps to spread responsibility, e.g.
the ACPI maintainers do now have a dedicated file listed in MAINTAINERS.
This series was tested with a Renesas Lager board (R-Car H2 SoC). It booted
normally and all device drivers for I2C clients seem to work normally. I wired
two I2C busses together and used i2c-slave-eeprom to let one I2C IP core read
out data from the other. That all worked fine. Buildbot is also happy, it found
two issues of the first (non public) iteration. Thanks!
I did not test ACPI and hope for some assistance here :) I'd also be happy if
people could check the includes of the newly created files, there might be
missing some.
As a result, the main i2c-core file goes down from ~3600 lines to ~2000 lines.
I think this is pretty helpful. I plan to apply this for v4.13 to not block
other core changes. Let's see if we are there yet and the series is ready.
Looking forward to comments.
A branch can be found here:
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/core-refactor
Kind regards,
Wolfram
Wolfram Sang (8):
i2c: rename core source file to allow refactorization
i2c: break out slave support into seperate file
i2c: break out smbus support into seperate file
i2c: break out OF support into seperate file
i2c: break out ACPI support into seperate file
docs: i2c: dev-interface: adapt to new filenames of the i2c core
i2c: remove unneeded includes from core
i2c: reformat core-base file header
Documentation/driver-api/i2c.rst | 5 +-
Documentation/i2c/dev-interface | 14 +-
MAINTAINERS | 1 +
drivers/i2c/Makefile | 7 +-
drivers/i2c/busses/i2c-designware-core.c | 2 +-
drivers/i2c/i2c-core-acpi.c | 653 +++++++++++
drivers/i2c/{i2c-core.c => i2c-core-base.c} | 1681 +--------------------------
drivers/i2c/i2c-core-of.c | 276 +++++
drivers/i2c/i2c-core-slave.c | 115 ++
drivers/i2c/i2c-core-smbus.c | 594 ++++++++++
drivers/i2c/i2c-core.h | 24 +
include/trace/events/i2c.h | 226 +---
include/trace/events/smbus.h | 249 ++++
13 files changed, 1978 insertions(+), 1869 deletions(-)
create mode 100644 drivers/i2c/i2c-core-acpi.c
rename drivers/i2c/{i2c-core.c => i2c-core-base.c} (58%)
create mode 100644 drivers/i2c/i2c-core-of.c
create mode 100644 drivers/i2c/i2c-core-slave.c
create mode 100644 drivers/i2c/i2c-core-smbus.c
create mode 100644 include/trace/events/smbus.h
--
2.11.0
next reply other threads:[~2017-05-26 8:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-26 8:20 Wolfram Sang [this message]
2017-05-26 8:20 ` [PATCH 1/8] i2c: rename core source file to allow refactorization Wolfram Sang
2017-05-26 16:12 ` Mika Westerberg
2017-05-29 9:44 ` Jarkko Nikula
2017-05-26 8:20 ` [PATCH 2/8] i2c: break out slave support into seperate file Wolfram Sang
2017-05-26 8:20 ` [PATCH 3/8] i2c: break out smbus " Wolfram Sang
2017-05-26 8:20 ` [PATCH 4/8] i2c: break out OF " Wolfram Sang
2017-05-26 8:20 ` [PATCH 5/8] i2c: break out ACPI " Wolfram Sang
2017-05-26 16:15 ` Mika Westerberg
2017-05-26 18:30 ` Uwe Kleine-König
2017-05-26 8:20 ` [PATCH 6/8] docs: i2c: dev-interface: adapt to new filenames of the i2c core Wolfram Sang
2017-05-26 8:20 ` [PATCH 7/8] i2c: remove unneeded includes from core Wolfram Sang
2017-05-26 8:20 ` [PATCH 8/8] i2c: reformat core-base file header Wolfram Sang
2017-05-27 11:17 ` Andy Shevchenko
2017-05-31 19:05 ` Wolfram Sang
2017-05-26 11:57 ` [PATCH 0/8] i2c: refactor core and break out blocks Jani Nikula
2017-05-27 16:32 ` Wolfram Sang
2017-05-31 19:07 ` Wolfram Sang
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=20170526082101.4746-1-wsa@the-dreams.de \
--to=wsa@the-dreams.de \
--cc=jdelvare@suse.de \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@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).