devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sebastian Reichel <sre@kernel.org>
To: Sebastian Reichel <sre@ring0.de>,
	Linus Walleij <linus.walleij@linaro.org>,
	Shubhrajyoti Datta <omaplinuxkernel@gmail.com>,
	Carlos Chinea <cch.devel@gmail.com>
Cc: "Tony Lindgren" <tony@atomide.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Pawel Moll" <pawel.moll@arm.com>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"Kumar Gala" <galak@codeaurora.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-omap@vger.kernel.org, "Pali Rohár" <pali.rohar@gmail.com>,
	"Ивайло Димитров" <freemangordon@abv.bg>,
	"Joni Lapilainen" <joni.lapilainen@gmail.com>,
	"Aaro Koskinen" <aaro.koskinen@iki.fi>,
	"Sebastian Reichel" <sre@kernel.org>
Subject: [PATCHv3 06/14] HSI: export method to (un)register clients
Date: Sat, 29 Mar 2014 01:31:42 +0100	[thread overview]
Message-ID: <1396053110-21639-7-git-send-email-sre@kernel.org> (raw)
In-Reply-To: <1396053110-21639-1-git-send-email-sre@kernel.org>

Expose method for registering and unregistering HSI clients, so that
client drivers can register other client drivers.

This is useful for HSI drivers, which want to use the functionality
of other HSI drivers. For example the N900 modem driver can load HSI
drivers for mcsaab protocol and speech protocol.

Signed-off-by: Sebastian Reichel <sre@kernel.org>
---
 drivers/hsi/hsi.c       | 11 ++++++++---
 include/linux/hsi/hsi.h |  3 +++
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/hsi/hsi.c b/drivers/hsi/hsi.c
index 9d1130d..07e1639 100644
--- a/drivers/hsi/hsi.c
+++ b/drivers/hsi/hsi.c
@@ -72,14 +72,15 @@ static void hsi_client_release(struct device *dev)
 	kfree(cl);
 }
 
-static void hsi_new_client(struct hsi_port *port, struct hsi_board_info *info)
+struct hsi_client *hsi_new_client(struct hsi_port *port,
+						struct hsi_board_info *info)
 {
 	struct hsi_client *cl;
 	size_t size;
 
 	cl = kzalloc(sizeof(*cl), GFP_KERNEL);
 	if (!cl)
-		return;
+		return NULL;
 
 	cl->tx_cfg = info->tx_cfg;
 	if (cl->tx_cfg.channels) {
@@ -106,7 +107,10 @@ static void hsi_new_client(struct hsi_port *port, struct hsi_board_info *info)
 		pr_err("hsi: failed to register client: %s\n", info->name);
 		put_device(&cl->device);
 	}
+
+	return cl;
 }
+EXPORT_SYMBOL_GPL(hsi_new_client);
 
 static void hsi_scan_board_info(struct hsi_controller *hsi)
 {
@@ -122,12 +126,13 @@ static void hsi_scan_board_info(struct hsi_controller *hsi)
 		}
 }
 
-static int hsi_remove_client(struct device *dev, void *data __maybe_unused)
+int hsi_remove_client(struct device *dev, void *data __maybe_unused)
 {
 	device_unregister(dev);
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(hsi_remove_client);
 
 static int hsi_remove_port(struct device *dev, void *data __maybe_unused)
 {
diff --git a/include/linux/hsi/hsi.h b/include/linux/hsi/hsi.h
index 50a85a9..57ee40f 100644
--- a/include/linux/hsi/hsi.h
+++ b/include/linux/hsi/hsi.h
@@ -296,6 +296,9 @@ struct hsi_controller *hsi_alloc_controller(unsigned int n_ports, gfp_t flags);
 void hsi_put_controller(struct hsi_controller *hsi);
 int hsi_register_controller(struct hsi_controller *hsi);
 void hsi_unregister_controller(struct hsi_controller *hsi);
+struct hsi_client *hsi_new_client(struct hsi_port *port,
+						struct hsi_board_info *info);
+int hsi_remove_client(struct device *dev, void *data);
 void hsi_port_unregister_clients(struct hsi_port *port);
 
 static inline void hsi_controller_set_drvdata(struct hsi_controller *hsi,
-- 
1.9.0

  parent reply	other threads:[~2014-03-29  0:31 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-29  0:31 [PATCHv3 00/14] OMAP SSI driver / N900 modem support Sebastian Reichel
2014-03-29  0:31 ` [PATCHv3 01/14] Documentation: HSI: Add some general description for the HSI subsystem Sebastian Reichel
     [not found]   ` <1396053110-21639-2-git-send-email-sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-04-19 19:05     ` Pavel Machek
2014-03-29  0:31 ` [PATCHv3 02/14] MAINTAINERS: update HSI entry Sebastian Reichel
2014-04-19 19:06   ` Pavel Machek
2014-03-29  0:31 ` [PATCHv3 03/14] HSI: hsi-char: fix driver for multiport scenarios Sebastian Reichel
2014-04-19 19:06   ` Pavel Machek
2014-03-29  0:31 ` [PATCHv3 04/14] HSI: method to unregister clients from an hsi port Sebastian Reichel
     [not found]   ` <1396053110-21639-5-git-send-email-sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-04-19 19:07     ` Pavel Machek
2014-03-29  0:31 ` [PATCHv3 05/14] HSI: Add channel resource support to HSI clients Sebastian Reichel
     [not found]   ` <1396053110-21639-6-git-send-email-sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-04-19 19:11     ` Pavel Machek
2014-04-25 17:32       ` Sebastian Reichel
2014-03-29  0:31 ` Sebastian Reichel [this message]
     [not found]   ` <1396053110-21639-7-git-send-email-sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-04-19 19:13     ` [PATCHv3 06/14] HSI: export method to (un)register clients Pavel Machek
2014-03-29  0:31 ` [PATCHv3 07/14] HSI: Add common DT binding for HSI client devices Sebastian Reichel
     [not found]   ` <1396053110-21639-8-git-send-email-sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-04-19 19:16     ` Pavel Machek
2014-04-25 18:25       ` Sebastian Reichel
     [not found]         ` <20140425182535.GB22721-SfvFxonMDyemK9LvCR3Hrw@public.gmane.org>
2014-04-25 20:59           ` Sebastian Reichel
     [not found]             ` <20140425205926.GA30032-SfvFxonMDyemK9LvCR3Hrw@public.gmane.org>
2014-04-27 10:57               ` Pavel Machek
     [not found]                 ` <20140427105755.GA12265-tWAi6jLit6GreWDznjuHag@public.gmane.org>
2014-04-27 11:33                   ` Sebastian Reichel
2014-04-21 16:52   ` Rob Herring
2014-04-25 18:32     ` Sebastian Reichel
2014-03-29  0:31 ` [PATCHv3 08/14] HSI: Introduce OMAP SSI driver Sebastian Reichel
     [not found]   ` <1396053110-21639-9-git-send-email-sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-04-19 19:30     ` Pavel Machek
2014-04-25 18:36       ` Sebastian Reichel
2014-03-29  0:31 ` [PATCHv3 09/14] Documentation: DT: omap-ssi binding documentation Sebastian Reichel
2014-04-19 19:32   ` Pavel Machek
2014-04-21 16:43   ` Rob Herring
2014-04-25 18:38     ` Sebastian Reichel
2014-03-29  0:31 ` [PATCHv3 10/14] HSI: Introduce driver for SSI Protocol Sebastian Reichel
     [not found]   ` <1396053110-21639-11-git-send-email-sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-04-19 19:49     ` Pavel Machek
     [not found]       ` <20140419194936.GJ5148-tWAi6jLit6GreWDznjuHag@public.gmane.org>
2014-04-25 18:49         ` Sebastian Reichel
     [not found] ` <1396053110-21639-1-git-send-email-sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2014-03-29  0:31   ` [PATCHv3 11/14] HSI: Introduce Nokia N900 modem driver Sebastian Reichel
2014-04-19 20:25     ` Pavel Machek
2014-03-29  0:31 ` [PATCHv3 12/14] ARM: dts: omap3 clocks: simplify ssi aliases Sebastian Reichel
2014-04-19 20:26   ` Pavel Machek
2014-03-29  0:31 ` [PATCHv3 13/14] DTS: ARM: OMAP3-N900: Add SSI support Sebastian Reichel
2014-04-19 20:28   ` Pavel Machek
2014-03-29  0:31 ` [PATCHv3 14/14] DTS: ARM: OMAP3-N900: Add modem support Sebastian Reichel
2014-04-19 20:28   ` Pavel Machek
2014-05-05 19:31 ` [PATCHv3 00/14] OMAP SSI driver / N900 " Tony Lindgren
2014-05-05 22:41   ` Sebastian Reichel

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=1396053110-21639-7-git-send-email-sre@kernel.org \
    --to=sre@kernel.org \
    --cc=aaro.koskinen@iki.fi \
    --cc=cch.devel@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=freemangordon@abv.bg \
    --cc=galak@codeaurora.org \
    --cc=joni.lapilainen@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=omaplinuxkernel@gmail.com \
    --cc=pali.rohar@gmail.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=sre@ring0.de \
    --cc=tony@atomide.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).