linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: alsa-devel@alsa-project.org
Cc: linux-kernel@vger.kernel.org, tiwai@suse.de, broonie@kernel.org,
	vkoul@kernel.org, gregkh@linuxfoundation.org, jank@cadence.com,
	srinivas.kandagatla@linaro.org, slawomir.blauciak@intel.com,
	Bard liao <yung-chuan.liao@linux.intel.com>,
	Rander Wang <rander.wang@linux.intel.com>,
	Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Subject: [RFC PATCH 0/9] soundwire: add Master device support, GreyBus style
Date: Mon, 16 Sep 2019 16:23:33 -0500	[thread overview]
Message-ID: <20190916212342.12578-1-pierre-louis.bossart@linux.intel.com> (raw)

The current use of platform devices leads to limitations in terms of
API and problematic reference counts flagged during the review of
sysfs patches.

As suggested by Greg KH, this patch series introduces a 'Master
device' and gets rid of platform devices. The code is inspired by
GreyBus, e.g. 'gb_hd_driver' is translated for the SoundWire context
as 'sdw_md_driver' and likewise 'gb_host_device' is translated as
'sdw_master_device'. There are differences in the way devices are
created, using device_register instead of the multiple steps used in
GreyBus.

All I know about GreyBus is that it's based on Unipro, so the
code updates are based on a first-order analysis, it could very well
be I missed concepts while trying to reverse-engineer the code in
staging/greybus/. I focused on the concepts mainly and it's also
possible that the dual-license for new files or plan-vanilla
EXPORT_SYMBOL are not appropriate for all the changes in this
series. Please don't take errors as deliberate intent to work-around
GPL but rather as an indicator of maturity of the code only developed
in the last few days.

These changes make it possible to provide new callbacks, e.g splitting
the bus startup from the initializations in probe, which is very much
desired on Intel platforms to detect the machine driver as early as
possible before the hardware is fully powered/enable. These patches
will be provided as a separate RFC later today to illustrate the
benefit of these changes.

To make the code more consistent the first series of patches are
renames. I did not rename 'sdw_slave' or 'module_sdw_driver' to avoid
compatibility issues since there are codec drivers almost ready for
integration. I don't have any specific opinion on if/when additional
renames should be done, as long as there is a means to clearly
identify what is specific to a SoundWire Master I am fine.

Feedback and reviews welcome.

Bard Liao (1):
  soundwire: add device driver to sdw_md_driver

Pierre-Louis Bossart (8):
  soundwire: renames to prepare support for master drivers/devices
  soundwire: rename dev_to_sdw_dev macro
  soundwire: rename drv_to_sdw_slave_driver macro
  soundwire: bus_type: rename sdw_drv_ to sdw_slave_drv
  soundwire: intel: rename res field as link_res
  soundwire: add support for sdw_slave_type
  soundwire: add initial definitions for sdw_master_device
  soundwire: intel: remove platform devices and provide new interface

 drivers/base/regmap/regmap-sdw.c    |   4 +-
 drivers/soundwire/Makefile          |   2 +-
 drivers/soundwire/bus.c             |   2 +-
 drivers/soundwire/bus_type.c        |  60 +++---
 drivers/soundwire/intel.c           | 117 ++++++-----
 drivers/soundwire/intel.h           |  22 +--
 drivers/soundwire/intel_init.c      | 293 +++++++++++++++++++---------
 drivers/soundwire/master.c          |  80 ++++++++
 drivers/soundwire/slave.c           |   9 +-
 include/linux/soundwire/sdw.h       |  39 +++-
 include/linux/soundwire/sdw_intel.h |  86 +++++++-
 include/linux/soundwire/sdw_type.h  |  34 +++-
 12 files changed, 551 insertions(+), 197 deletions(-)
 create mode 100644 drivers/soundwire/master.c

-- 
2.20.1


             reply	other threads:[~2019-09-16 21:23 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-16 21:23 Pierre-Louis Bossart [this message]
2019-09-16 21:23 ` [RFC PATCH 1/9] soundwire: renames to prepare support for master drivers/devices Pierre-Louis Bossart
2019-09-16 21:23 ` [RFC PATCH 2/9] soundwire: rename dev_to_sdw_dev macro Pierre-Louis Bossart
2019-09-16 21:23 ` [RFC PATCH 3/9] soundwire: rename drv_to_sdw_slave_driver macro Pierre-Louis Bossart
2019-09-16 21:23 ` [RFC PATCH 4/9] soundwire: bus_type: rename sdw_drv_ to sdw_slave_drv Pierre-Louis Bossart
2019-09-16 21:23 ` [RFC PATCH 5/9] soundwire: intel: rename res field as link_res Pierre-Louis Bossart
2019-09-16 21:23 ` [RFC PATCH 6/9] soundwire: add support for sdw_slave_type Pierre-Louis Bossart
2019-09-16 21:23 ` [RFC PATCH 7/9] soundwire: add initial definitions for sdw_master_device Pierre-Louis Bossart
2019-09-16 21:23 ` [RFC PATCH 8/9] soundwire: intel: remove platform devices and provide new interface Pierre-Louis Bossart
2019-09-17  5:55   ` Greg KH
2019-09-17 14:29     ` [alsa-devel] " Pierre-Louis Bossart
2019-09-18 12:06       ` Greg KH
2019-09-18 13:48         ` Pierre-Louis Bossart
2019-09-18 13:53           ` Greg KH
2019-09-18 13:54             ` Greg KH
2019-09-18 15:14               ` Pierre-Louis Bossart
2019-09-18 19:50                 ` Greg KH
2019-09-16 21:23 ` [RFC PATCH 9/9] soundwire: add device driver to sdw_md_driver Pierre-Louis Bossart

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=20190916212342.12578-1-pierre-louis.bossart@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jank@cadence.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rander.wang@linux.intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=slawomir.blauciak@intel.com \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=tiwai@suse.de \
    --cc=vkoul@kernel.org \
    --cc=yung-chuan.liao@linux.intel.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 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).