Message ID | 20240208164017.26699-1-brgl@bgdev.pl |
---|---|
State | New |
Headers | show |
Series | Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional() | expand |
On Thu, Feb 8, 2024 at 5:40 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > The optional variants for the gpiod_get() family of functions return NULL > if the GPIO in question is not associated with this device. They return > ERR_PTR() on any other error. NULL descriptors are graciously handled by > GPIOLIB and can be safely passed to any of the GPIO consumer interfaces > as they will return 0 and act as if the function succeeded. If one is > using the optional variant, then there's no point in checking for NULL. > > Fixes: 6845667146a2 ("Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe") > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > --- > drivers/bluetooth/hci_qca.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c > index edd2a81b4d5e..8a60ad7acd70 100644 > --- a/drivers/bluetooth/hci_qca.c > +++ b/drivers/bluetooth/hci_qca.c > @@ -2326,7 +2326,7 @@ static int qca_serdev_probe(struct serdev_device *serdev) > > qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", > GPIOD_OUT_LOW); > - if (IS_ERR_OR_NULL(qcadev->bt_en) && > + if (IS_ERR(qcadev->bt_en) && > (data->soc_type == QCA_WCN6750 || > data->soc_type == QCA_WCN6855)) { > dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n"); > @@ -2335,7 +2335,7 @@ static int qca_serdev_probe(struct serdev_device *serdev) > > qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl", > GPIOD_IN); > - if (IS_ERR_OR_NULL(qcadev->sw_ctrl) && > + if (IS_ERR(qcadev->sw_ctrl) && > (data->soc_type == QCA_WCN6750 || > data->soc_type == QCA_WCN6855 || > data->soc_type == QCA_WCN7850)) > @@ -2357,7 +2357,7 @@ static int qca_serdev_probe(struct serdev_device *serdev) > default: > qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", > GPIOD_OUT_LOW); > - if (IS_ERR_OR_NULL(qcadev->bt_en)) { > + if (IS_ERR(qcadev->bt_en)) { > dev_warn(&serdev->dev, "failed to acquire enable gpio\n"); > power_ctrl_enabled = false; > } > -- > 2.40.1 > Gentle ping. Bartosz
Hello: This patch was applied to bluetooth/bluetooth-next.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Thu, 8 Feb 2024 17:40:17 +0100 you wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > The optional variants for the gpiod_get() family of functions return NULL > if the GPIO in question is not associated with this device. They return > ERR_PTR() on any other error. NULL descriptors are graciously handled by > GPIOLIB and can be safely passed to any of the GPIO consumer interfaces > as they will return 0 and act as if the function succeeded. If one is > using the optional variant, then there's no point in checking for NULL. > > [...] Here is the summary with links: - Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional() https://git.kernel.org/bluetooth/bluetooth-next/c/75518da8cf76 You are awesome, thank you!
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index edd2a81b4d5e..8a60ad7acd70 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -2326,7 +2326,7 @@ static int qca_serdev_probe(struct serdev_device *serdev) qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", GPIOD_OUT_LOW); - if (IS_ERR_OR_NULL(qcadev->bt_en) && + if (IS_ERR(qcadev->bt_en) && (data->soc_type == QCA_WCN6750 || data->soc_type == QCA_WCN6855)) { dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n"); @@ -2335,7 +2335,7 @@ static int qca_serdev_probe(struct serdev_device *serdev) qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl", GPIOD_IN); - if (IS_ERR_OR_NULL(qcadev->sw_ctrl) && + if (IS_ERR(qcadev->sw_ctrl) && (data->soc_type == QCA_WCN6750 || data->soc_type == QCA_WCN6855 || data->soc_type == QCA_WCN7850)) @@ -2357,7 +2357,7 @@ static int qca_serdev_probe(struct serdev_device *serdev) default: qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", GPIOD_OUT_LOW); - if (IS_ERR_OR_NULL(qcadev->bt_en)) { + if (IS_ERR(qcadev->bt_en)) { dev_warn(&serdev->dev, "failed to acquire enable gpio\n"); power_ctrl_enabled = false; }