All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Cc: Kumar Gala <galak@codeaurora.org>,
	Andy Gross <agross@codeaurora.org>, Arnd Bergmann <arnd@arndb.de>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Grant Likely <grant.likely@linaro.org>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Pawel Moll <pawel.moll@arm.com>, Rob Herring <robh+dt@kernel.org>,
	Samuel Ortiz <sameo@linux.intel.com>
Subject: Re: [RFC 6/7] mfd: qcom-smd-rpm: Driver for the Qualcomm RPM over SMD
Date: Mon, 20 Oct 2014 08:22:11 +0100	[thread overview]
Message-ID: <20141020072211.GC25349@x1> (raw)
In-Reply-To: <20141017135553.GA28882@sonymobile.com>

On Fri, 17 Oct 2014, Bjorn Andersson wrote:
> On Wed 08 Oct 01:40 PDT 2014, Lee Jones wrote:

[...]

> > > +static struct qcom_smd_driver qcom_smd_rpm_driver = {
> > > +	.probe = qcom_smd_rpm_probe,
> > > +	.remove = qcom_smd_rpm_remove,
> > > +	.callback = qcom_smd_rpm_callback,
> > > +	.driver  = {
> > > +		.name  = "qcom_smd_rpm",
> > > +		.owner = THIS_MODULE,
> > > +		.of_match_table = qcom_smd_rpm_of_match,
> > > +	},
> > > +};
> > > +
> > > +module_qcom_smd_driver(qcom_smd_rpm_driver);
> > 
> > I don't like this.  What's wrong with the existing platform driver
> > code?
> > 
> 
> I started off with having smd child devices as platform drivers and had some
> accessor functions to find the open handles that triggered the probe() and
> register the callback with those. But this didn't feel very sane, so I did
> implemented a custom driver struct and probe prototype to simplify writing
> drivers.
> 
> May I ask why you dislike this? This is how it's done in so many other places
> in the kernel...

I don't believe that's the case.  All owners of their own
module_*_driver() registration calls are busses (see below), whereas
'qcom_smd' is just a driver.  Things would soon get out of control if
we allowed every driver in the kernel to supply their own driver
registration information variants.

$ git grep "^module_.*_driver(" | \
  cut -d: -f2 | cut -d'(' -f1 | sort | uniq

module_acpi_driver
module_amba_driver
module_comedi_driver
module_comedi_pci_driver
module_comedi_pcmcia_driver
module_comedi_usb_driver
module_gameport_driver
module_hid_driver
module_i2c_driver
module_mcb_driver
module_mipi_dsi_driver
module_pci_driver
module_pcmcia_driver
module_platform_driver
module_serio_driver
module_spi_driver
module_spmi_driver
module_usb_composite_driver
module_usb_driver
module_usb_serial_driver
module_virtio_driver

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 6/7] mfd: qcom-smd-rpm: Driver for the Qualcomm RPM over SMD
Date: Mon, 20 Oct 2014 08:22:11 +0100	[thread overview]
Message-ID: <20141020072211.GC25349@x1> (raw)
In-Reply-To: <20141017135553.GA28882@sonymobile.com>

On Fri, 17 Oct 2014, Bjorn Andersson wrote:
> On Wed 08 Oct 01:40 PDT 2014, Lee Jones wrote:

[...]

> > > +static struct qcom_smd_driver qcom_smd_rpm_driver = {
> > > +	.probe = qcom_smd_rpm_probe,
> > > +	.remove = qcom_smd_rpm_remove,
> > > +	.callback = qcom_smd_rpm_callback,
> > > +	.driver  = {
> > > +		.name  = "qcom_smd_rpm",
> > > +		.owner = THIS_MODULE,
> > > +		.of_match_table = qcom_smd_rpm_of_match,
> > > +	},
> > > +};
> > > +
> > > +module_qcom_smd_driver(qcom_smd_rpm_driver);
> > 
> > I don't like this.  What's wrong with the existing platform driver
> > code?
> > 
> 
> I started off with having smd child devices as platform drivers and had some
> accessor functions to find the open handles that triggered the probe() and
> register the callback with those. But this didn't feel very sane, so I did
> implemented a custom driver struct and probe prototype to simplify writing
> drivers.
> 
> May I ask why you dislike this? This is how it's done in so many other places
> in the kernel...

I don't believe that's the case.  All owners of their own
module_*_driver() registration calls are busses (see below), whereas
'qcom_smd' is just a driver.  Things would soon get out of control if
we allowed every driver in the kernel to supply their own driver
registration information variants.

$ git grep "^module_.*_driver(" | \
  cut -d: -f2 | cut -d'(' -f1 | sort | uniq

module_acpi_driver
module_amba_driver
module_comedi_driver
module_comedi_pci_driver
module_comedi_pcmcia_driver
module_comedi_usb_driver
module_gameport_driver
module_hid_driver
module_i2c_driver
module_mcb_driver
module_mipi_dsi_driver
module_pci_driver
module_pcmcia_driver
module_platform_driver
module_serio_driver
module_spi_driver
module_spmi_driver
module_usb_composite_driver
module_usb_driver
module_usb_serial_driver
module_virtio_driver

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2014-10-20  7:22 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-30  0:34 [RFC 0/7] Qualcomm SMEM, SMD, RPM and regulators Bjorn Andersson
2014-09-30  0:34 ` Bjorn Andersson
2014-09-30  0:34 ` Bjorn Andersson
2014-09-30  0:34 ` [RFC 1/7] soc: qcom: Add device tree binding for SMEM Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30 13:52   ` Kumar Gala
2014-09-30 13:52     ` Kumar Gala
2014-09-30 19:03   ` Stephen Boyd
2014-09-30 19:03     ` Stephen Boyd
2014-09-30 20:00     ` Bjorn Andersson
2014-09-30 20:00       ` Bjorn Andersson
     [not found]   ` <1412037291-16880-2-git-send-email-bjorn.andersson-/MT0OVThwyLZJqsBc5GL+g@public.gmane.org>
2014-09-30 21:55     ` Suman Anna
2014-09-30 21:55       ` Suman Anna
2014-09-30 21:55       ` Suman Anna
2014-09-30  0:34 ` [RFC 2/7] soc: qcom: Add device tree binding for SMD Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30  0:34 ` [RFC 3/7] mfd: devicetree: bindings: Add Qualcomm SMD based RPM DT binding Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30 13:46   ` Kumar Gala
2014-09-30 13:46     ` Kumar Gala
2014-09-30 14:37     ` Bjorn Andersson
2014-09-30 14:37       ` Bjorn Andersson
2014-09-30 23:16       ` Jeffrey Hugo
2014-09-30 23:16         ` Jeffrey Hugo
2014-10-01  0:08         ` Bjorn Andersson
2014-10-01  0:08           ` Bjorn Andersson
2014-10-08 21:47           ` Jeffrey Hugo
2014-10-08 21:47             ` Jeffrey Hugo
2014-10-24 15:59             ` Bjorn Andersson
2014-10-24 15:59               ` Bjorn Andersson
2014-09-30  0:34 ` [RFC 4/7] soc: qcom: Add Shared Memory Manager driver Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30  6:17   ` Kiran Padwal
2014-09-30  6:17     ` Kiran Padwal
2014-09-30  6:28     ` Kiran Padwal
2014-09-30  6:28       ` Kiran Padwal
2014-09-30 14:15       ` Bjorn Andersson
2014-09-30 14:15         ` Bjorn Andersson
2014-10-08 21:33   ` Jeffrey Hugo
2014-10-08 21:33     ` Jeffrey Hugo
2014-10-17 14:51     ` Bjorn Andersson
2014-10-17 14:51       ` Bjorn Andersson
2014-10-26 15:04       ` Andreas Färber
2014-10-26 15:04         ` Andreas Färber
2014-10-28  0:34     ` Bjorn Andersson
2014-10-28  0:34       ` Bjorn Andersson
2014-09-30  0:34 ` [RFC 5/7] soc: qcom: Add Shared Memory Driver Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-10-02 22:38   ` Stephen Boyd
2014-10-02 22:38     ` Stephen Boyd
2014-10-04  0:02     ` Bjorn Andersson
2014-10-04  0:02       ` Bjorn Andersson
     [not found]   ` <1412037291-16880-6-git-send-email-bjorn.andersson-/MT0OVThwyLZJqsBc5GL+g@public.gmane.org>
2014-10-29 14:28     ` Ohad Ben-Cohen
2014-10-29 14:28       ` Ohad Ben-Cohen
2014-10-29 14:28       ` Ohad Ben-Cohen
2014-10-30  0:38       ` Bjorn Andersson
2014-10-30  0:38         ` Bjorn Andersson
2014-10-30 13:34         ` Ohad Ben-Cohen
2014-10-30 13:34           ` Ohad Ben-Cohen
2014-10-30 15:04           ` Bjorn Andersson
2014-10-30 15:04             ` Bjorn Andersson
2014-09-30  0:34 ` [RFC 6/7] mfd: qcom-smd-rpm: Driver for the Qualcomm RPM over SMD Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-10-08  8:40   ` Lee Jones
2014-10-08  8:40     ` Lee Jones
2014-10-17 13:55     ` Bjorn Andersson
2014-10-17 13:55       ` Bjorn Andersson
2014-10-20  7:22       ` Lee Jones [this message]
2014-10-20  7:22         ` Lee Jones
2014-10-24 16:45         ` Bjorn Andersson
2014-10-24 16:45           ` Bjorn Andersson
2014-09-30  0:34 ` [RFC 7/7] regulator: qcom-smd-rpm: Regulator driver for the Qualcomm RPM Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-09-30  0:34   ` Bjorn Andersson
2014-10-01 18:13   ` Mark Brown
2014-10-01 18:13     ` Mark Brown
2014-09-30 13:49 ` [RFC 0/7] Qualcomm SMEM, SMD, RPM and regulators Kumar Gala
2014-09-30 13:49   ` Kumar Gala
     [not found]   ` <E6EEBBAE-C710-4280-824D-CC5D54CB2551-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2014-09-30 14:51     ` Bjorn Andersson
2014-09-30 14:51       ` Bjorn Andersson
2014-09-30 14:51       ` Bjorn Andersson

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=20141020072211.GC25349@x1 \
    --to=lee.jones@linaro.org \
    --cc=agross@codeaurora.org \
    --cc=arnd@arndb.de \
    --cc=bjorn.andersson@sonymobile.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=grant.likely@linaro.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=sameo@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 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.