All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Elder <elder@linaro.org>
To: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Krzysztof Wilczyński" <kw@linux.com>
Cc: Ulf Hansson <ulf.hansson@linaro.org>,
	linux-pci@vger.kernel.org,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Pavel Machek <pavel@ucw.cz>,
	linux-s390@vger.kernel.org, linux-scsi@vger.kernel.org,
	Kevin Hilman <khilman@kernel.org>,
	Julian Wiedmann <jwi@linux.ibm.com>,
	linux-acpi@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>,
	Dan Carpenter <dan.carpenter@oracle.com>,
	Len Brown <lenb@kernel.org>,
	linux-pm@vger.kernel.org,
	"James E.J. Bottomley" <jejb@linux.ibm.com>,
	Ursula Braun <ubraun@linux.ibm.com>,
	Johan Hovold <johan@kernel.org>,
	greybus-dev@lists.linaro.org,
	John Stultz <john.stultz@linaro.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Felipe Balbi <balbi@kernel.org>, Alex Elder <elder@kernel.org>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	netdev@vger.kernel.org, linux-usb@vger.kernel.org,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Karsten Graul <kgraul@linux.ibm.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [greybus-dev] [PATCH 1/8] driver core: Add helper for accessing Power Management callbacs
Date: Tue, 26 May 2020 06:53:22 -0500	[thread overview]
Message-ID: <41c42552-0f4f-df6a-d587-5c62333aa6a8@linaro.org> (raw)
In-Reply-To: <20200526063334.GB2578492@kroah.com>

On 5/26/20 1:33 AM, Greg Kroah-Hartman wrote:
> On Mon, May 25, 2020 at 06:26:01PM +0000, Krzysztof Wilczyński wrote:
>> Add driver_to_pm() helper allowing for accessing the Power Management
>> callbacs for a particular device.  Access to the callbacs (struct
>> dev_pm_ops) is normally done through using the pm pointer that is
>> embedded within the device_driver struct.
>>
>> Helper allows for the code required to reference the pm pointer and
>> access Power Management callbas to be simplified.  Changing the
>> following:
>>
>>    struct device_driver *drv = dev->driver;
>>    if (dev->driver && dev->driver->pm && dev->driver->pm->prepare) {
>>        int ret = dev->driver->pm->prepare(dev);
>>
>> To:
>>
>>    const struct dev_pm_ops *pm = driver_to_pm(dev->driver);
>>    if (pm && pm->prepare) {
>>        int ret = pm->prepare(dev);
>>
>> Or, changing the following:
>>
>>       const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
>>
>> To:
>>       const struct dev_pm_ops *pm = driver_to_pm(dev->driver);
>>
>> Signed-off-by: Krzysztof Wilczyński <kw@linux.com>
>> ---
>>   include/linux/device/driver.h | 15 +++++++++++++++
>>   1 file changed, 15 insertions(+)
>>
>> diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
>> index ee7ba5b5417e..ccd0b315fd93 100644
>> --- a/include/linux/device/driver.h
>> +++ b/include/linux/device/driver.h
>> @@ -236,6 +236,21 @@ driver_find_device_by_acpi_dev(struct device_driver *drv, const void *adev)
>>   }
>>   #endif
>>   
>> +/**
>> + * driver_to_pm - Return Power Management callbacs (struct dev_pm_ops) for
>> + *                a particular device.
>> + * @drv: Pointer to a device (struct device_driver) for which you want to access
>> + *       the Power Management callbacks.
>> + *
>> + * Returns a pointer to the struct dev_pm_ops embedded within the device (struct
>> + * device_driver), or returns NULL if Power Management is not present and the
>> + * pointer is not valid.
>> + */
>> +static inline const struct dev_pm_ops *driver_to_pm(struct device_driver *drv)
>> +{
>> +	return drv && drv->pm ? drv->pm : NULL;

This could just be:

	if (drv)
		return drv->pm;

	return NULL;

Or if you want to evoke passion in Greg:

	return drv ? drv->pm : NULL;

					-Alex

> I hate ? : lines with a passion, as they break normal pattern mattching
> in my brain.  Please just spell this all out:
> 	if (drv && drv->pm)
> 		return drv->pm;
> 	return NULL;
> 
> Much easier to read, and the compiler will do the exact same thing.
> 
> Only place ? : are ok to use in my opinion, are as function arguments.
> 
> thanks,
> 
> greg k-h
> _______________________________________________
> greybus-dev mailing list
> greybus-dev@lists.linaro.org
> https://lists.linaro.org/mailman/listinfo/greybus-dev
> 


  reply	other threads:[~2020-05-26 11:53 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-25 18:26 [PATCH 0/8] Add helper for accessing Power Management callbacs Krzysztof Wilczyński
2020-05-25 18:26 ` [PATCH 1/8] driver core: " Krzysztof Wilczyński
2020-05-26  6:33   ` Greg Kroah-Hartman
2020-05-26 11:53     ` Alex Elder [this message]
2020-05-26 15:01       ` [greybus-dev] " Krzysztof Wilczyński
2020-05-25 18:26 ` [PATCH 2/8] ACPI: PM: Use the new device_to_pm() helper to access struct dev_pm_ops Krzysztof Wilczyński
2020-05-26  8:37   ` Rafael J. Wysocki
2020-05-26  8:37     ` Rafael J. Wysocki
2020-05-26  9:45     ` Pavel Machek
2020-05-26 10:35       ` Rafael J. Wysocki
2020-05-25 18:26 ` [PATCH 3/8] greybus: " Krzysztof Wilczyński
2020-05-26 11:53   ` [greybus-dev] " Alex Elder
2020-05-25 18:26 ` [PATCH 4/8] scsi: pm: " Krzysztof Wilczyński
2020-05-25 18:26 ` [PATCH 5/8] usb: phy: fsl: " Krzysztof Wilczyński
2020-05-26  8:38   ` Rafael J. Wysocki
2020-05-26  8:38     ` Rafael J. Wysocki
2020-05-25 18:26 ` [PATCH 6/8] PCI/PM: " Krzysztof Wilczyński
2020-05-25 18:26 ` [PATCH 7/8] PM: " Krzysztof Wilczyński
2020-05-26  8:33   ` Rafael J. Wysocki
2020-05-26  8:33     ` Rafael J. Wysocki
2020-05-25 18:26 ` [PATCH 8/8] net/iucv: " Krzysztof Wilczyński
2020-05-26  6:35   ` Greg Kroah-Hartman
2020-05-26 15:07     ` Krzysztof Wilczyński
2020-05-26 15:19       ` Rafael J. Wysocki
2020-05-26 15:19         ` Rafael J. Wysocki
2020-05-26 15:28         ` Alan Stern
2020-05-26 16:06           ` Rafael J. Wysocki
2020-05-26 16:48       ` [greybus-dev] " Alex Elder
2020-05-26  7:07   ` Ursula Braun
2020-05-26 14:57     ` Krzysztof Wilczyński

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=41c42552-0f4f-df6a-d587-5c62333aa6a8@linaro.org \
    --to=elder@linaro.org \
    --cc=balbi@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=dan.carpenter@oracle.com \
    --cc=davem@davemloft.net \
    --cc=elder@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=greybus-dev@lists.linaro.org \
    --cc=jejb@linux.ibm.com \
    --cc=johan@kernel.org \
    --cc=john.stultz@linaro.org \
    --cc=jwi@linux.ibm.com \
    --cc=kgraul@linux.ibm.com \
    --cc=khilman@kernel.org \
    --cc=kuba@kernel.org \
    --cc=kw@linux.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=netdev@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=rjw@rjwysocki.net \
    --cc=ubraun@linux.ibm.com \
    --cc=ulf.hansson@linaro.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 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.