@@ -11,13 +11,13 @@
#include <linux/property.h>
#include <linux/slab.h>
-static int pci_pwrctl_notify(struct notifier_block *nb, unsigned long action,
- void *data)
+static int pci_pwrctrl_notify(struct notifier_block *nb, unsigned long action,
+ void *data)
{
- struct pci_pwrctl *pwrctl = container_of(nb, struct pci_pwrctl, nb);
+ struct pci_pwrctrl *pwrctrl = container_of(nb, struct pci_pwrctrl, nb);
struct device *dev = data;
- if (dev_fwnode(dev) != dev_fwnode(pwrctl->dev))
+ if (dev_fwnode(dev) != dev_fwnode(pwrctrl->dev))
return NOTIFY_DONE;
switch (action) {
@@ -34,14 +34,14 @@ static int pci_pwrctl_notify(struct notifier_block *nb, unsigned long action,
dev->of_node_reused = true;
break;
case BUS_NOTIFY_BOUND_DRIVER:
- pwrctl->link = device_link_add(dev, pwrctl->dev,
+ pwrctrl->link = device_link_add(dev, pwrctrl->dev,
DL_FLAG_AUTOREMOVE_CONSUMER);
- if (!pwrctl->link)
- dev_err(pwrctl->dev, "Failed to add device link\n");
+ if (!pwrctrl->link)
+ dev_err(pwrctrl->dev, "Failed to add device link\n");
break;
case BUS_NOTIFY_UNBOUND_DRIVER:
- if (pwrctl->link)
- device_link_remove(dev, pwrctl->dev);
+ if (pwrctrl->link)
+ device_link_remove(dev, pwrctrl->dev);
break;
}
@@ -50,31 +50,31 @@ static int pci_pwrctl_notify(struct notifier_block *nb, unsigned long action,
static void rescan_work_func(struct work_struct *work)
{
- struct pci_pwrctl *pwrctl = container_of(work, struct pci_pwrctl, work);
+ struct pci_pwrctrl *pwrctrl = container_of(work, struct pci_pwrctrl, work);
pci_lock_rescan_remove();
- pci_rescan_bus(to_pci_dev(pwrctl->dev->parent)->bus);
+ pci_rescan_bus(to_pci_dev(pwrctrl->dev->parent)->bus);
pci_unlock_rescan_remove();
}
/**
- * pci_pwrctl_init() - Initialize the PCI power control context struct
+ * pci_pwrctrl_init() - Initialize the PCI power control context struct
*
- * @pwrctl: PCI power control data
+ * @pwrctrl: PCI power control data
* @dev: Parent device
*/
-void pci_pwrctl_init(struct pci_pwrctl *pwrctl, struct device *dev)
+void pci_pwrctrl_init(struct pci_pwrctrl *pwrctrl, struct device *dev)
{
- pwrctl->dev = dev;
- INIT_WORK(&pwrctl->work, rescan_work_func);
+ pwrctrl->dev = dev;
+ INIT_WORK(&pwrctrl->work, rescan_work_func);
}
-EXPORT_SYMBOL_GPL(pci_pwrctl_init);
+EXPORT_SYMBOL_GPL(pci_pwrctrl_init);
/**
- * pci_pwrctl_device_set_ready() - Notify the pwrctl subsystem that the PCI
+ * pci_pwrctrl_device_set_ready() - Notify the pwrctrl subsystem that the PCI
* device is powered-up and ready to be detected.
*
- * @pwrctl: PCI power control data.
+ * @pwrctrl: PCI power control data.
*
* Returns:
* 0 on success, negative error number on error.
@@ -84,31 +84,31 @@ EXPORT_SYMBOL_GPL(pci_pwrctl_init);
* that the bus rescan was successfully started. The device will get bound to
* its PCI driver asynchronously.
*/
-int pci_pwrctl_device_set_ready(struct pci_pwrctl *pwrctl)
+int pci_pwrctrl_device_set_ready(struct pci_pwrctrl *pwrctrl)
{
int ret;
- if (!pwrctl->dev)
+ if (!pwrctrl->dev)
return -ENODEV;
- pwrctl->nb.notifier_call = pci_pwrctl_notify;
- ret = bus_register_notifier(&pci_bus_type, &pwrctl->nb);
+ pwrctrl->nb.notifier_call = pci_pwrctrl_notify;
+ ret = bus_register_notifier(&pci_bus_type, &pwrctrl->nb);
if (ret)
return ret;
- schedule_work(&pwrctl->work);
+ schedule_work(&pwrctrl->work);
return 0;
}
-EXPORT_SYMBOL_GPL(pci_pwrctl_device_set_ready);
+EXPORT_SYMBOL_GPL(pci_pwrctrl_device_set_ready);
/**
- * pci_pwrctl_device_unset_ready() - Notify the pwrctl subsystem that the PCI
+ * pci_pwrctrl_device_unset_ready() - Notify the pwrctrl subsystem that the PCI
* device is about to be powered-down.
*
- * @pwrctl: PCI power control data.
+ * @pwrctrl: PCI power control data.
*/
-void pci_pwrctl_device_unset_ready(struct pci_pwrctl *pwrctl)
+void pci_pwrctrl_device_unset_ready(struct pci_pwrctrl *pwrctrl)
{
/*
* We don't have to delete the link here. Typically, this function
@@ -116,41 +116,41 @@ void pci_pwrctl_device_unset_ready(struct pci_pwrctl *pwrctl)
* it is being detached then the child PCI device must have already
* been unbound too or the device core wouldn't let us unbind.
*/
- bus_unregister_notifier(&pci_bus_type, &pwrctl->nb);
+ bus_unregister_notifier(&pci_bus_type, &pwrctrl->nb);
}
-EXPORT_SYMBOL_GPL(pci_pwrctl_device_unset_ready);
+EXPORT_SYMBOL_GPL(pci_pwrctrl_device_unset_ready);
-static void devm_pci_pwrctl_device_unset_ready(void *data)
+static void devm_pci_pwrctrl_device_unset_ready(void *data)
{
- struct pci_pwrctl *pwrctl = data;
+ struct pci_pwrctrl *pwrctrl = data;
- pci_pwrctl_device_unset_ready(pwrctl);
+ pci_pwrctrl_device_unset_ready(pwrctrl);
}
/**
- * devm_pci_pwrctl_device_set_ready - Managed variant of
- * pci_pwrctl_device_set_ready().
+ * devm_pci_pwrctrl_device_set_ready - Managed variant of
+ * pci_pwrctrl_device_set_ready().
*
- * @dev: Device managing this pwrctl provider.
- * @pwrctl: PCI power control data.
+ * @dev: Device managing this pwrctrl provider.
+ * @pwrctrl: PCI power control data.
*
* Returns:
* 0 on success, negative error number on error.
*/
-int devm_pci_pwrctl_device_set_ready(struct device *dev,
- struct pci_pwrctl *pwrctl)
+int devm_pci_pwrctrl_device_set_ready(struct device *dev,
+ struct pci_pwrctrl *pwrctrl)
{
int ret;
- ret = pci_pwrctl_device_set_ready(pwrctl);
+ ret = pci_pwrctrl_device_set_ready(pwrctrl);
if (ret)
return ret;
return devm_add_action_or_reset(dev,
- devm_pci_pwrctl_device_unset_ready,
- pwrctl);
+ devm_pci_pwrctrl_device_unset_ready,
+ pwrctrl);
}
-EXPORT_SYMBOL_GPL(devm_pci_pwrctl_device_set_ready);
+EXPORT_SYMBOL_GPL(devm_pci_pwrctrl_device_set_ready);
MODULE_AUTHOR("Bartosz Golaszewski <bartosz.golaszewski@linaro.org>");
MODULE_DESCRIPTION("PCI Device Power Control core driver");
@@ -13,21 +13,21 @@
#include <linux/slab.h>
#include <linux/types.h>
-struct pci_pwrctl_pwrseq_data {
- struct pci_pwrctl ctx;
+struct pci_pwrctrl_pwrseq_data {
+ struct pci_pwrctrl ctx;
struct pwrseq_desc *pwrseq;
};
-static void devm_pci_pwrctl_pwrseq_power_off(void *data)
+static void devm_pci_pwrctrl_pwrseq_power_off(void *data)
{
struct pwrseq_desc *pwrseq = data;
pwrseq_power_off(pwrseq);
}
-static int pci_pwrctl_pwrseq_probe(struct platform_device *pdev)
+static int pci_pwrctrl_pwrseq_probe(struct platform_device *pdev)
{
- struct pci_pwrctl_pwrseq_data *data;
+ struct pci_pwrctrl_pwrseq_data *data;
struct device *dev = &pdev->dev;
int ret;
@@ -45,22 +45,22 @@ static int pci_pwrctl_pwrseq_probe(struct platform_device *pdev)
return dev_err_probe(dev, ret,
"Failed to power-on the device\n");
- ret = devm_add_action_or_reset(dev, devm_pci_pwrctl_pwrseq_power_off,
+ ret = devm_add_action_or_reset(dev, devm_pci_pwrctrl_pwrseq_power_off,
data->pwrseq);
if (ret)
return ret;
- pci_pwrctl_init(&data->ctx, dev);
+ pci_pwrctrl_init(&data->ctx, dev);
- ret = devm_pci_pwrctl_device_set_ready(dev, &data->ctx);
+ ret = devm_pci_pwrctrl_device_set_ready(dev, &data->ctx);
if (ret)
return dev_err_probe(dev, ret,
- "Failed to register the pwrctl wrapper\n");
+ "Failed to register the pwrctrl wrapper\n");
return 0;
}
-static const struct of_device_id pci_pwrctl_pwrseq_of_match[] = {
+static const struct of_device_id pci_pwrctrl_pwrseq_of_match[] = {
{
/* ATH11K in QCA6390 package. */
.compatible = "pci17cb,1101",
@@ -78,16 +78,16 @@ static const struct of_device_id pci_pwrctl_pwrseq_of_match[] = {
},
{ }
};
-MODULE_DEVICE_TABLE(of, pci_pwrctl_pwrseq_of_match);
+MODULE_DEVICE_TABLE(of, pci_pwrctrl_pwrseq_of_match);
-static struct platform_driver pci_pwrctl_pwrseq_driver = {
+static struct platform_driver pci_pwrctrl_pwrseq_driver = {
.driver = {
- .name = "pci-pwrctl-pwrseq",
- .of_match_table = pci_pwrctl_pwrseq_of_match,
+ .name = "pci-pwrctrl-pwrseq",
+ .of_match_table = pci_pwrctrl_pwrseq_of_match,
},
- .probe = pci_pwrctl_pwrseq_probe,
+ .probe = pci_pwrctrl_pwrseq_probe,
};
-module_platform_driver(pci_pwrctl_pwrseq_driver);
+module_platform_driver(pci_pwrctrl_pwrseq_driver);
MODULE_AUTHOR("Bartosz Golaszewski <bartosz.golaszewski@linaro.org>");
MODULE_DESCRIPTION("Generic PCI Power Control module for power sequenced devices");
@@ -17,7 +17,7 @@ static void pci_free_resources(struct pci_dev *dev)
}
}
-static int pci_pwrctl_unregister(struct device *dev, void *data)
+static int pci_pwrctrl_unregister(struct device *dev, void *data)
{
struct device_node *pci_node = data, *plat_node = dev_of_node(dev);
@@ -35,7 +35,7 @@ static void pci_stop_dev(struct pci_dev *dev)
if (pci_dev_is_added(dev)) {
device_for_each_child(dev->dev.parent, dev_of_node(&dev->dev),
- pci_pwrctl_unregister);
+ pci_pwrctrl_unregister);
device_release_driver(&dev->dev);
pci_proc_detach_device(dev);
pci_remove_sysfs_dev_files(dev);
@@ -3,8 +3,8 @@
* Copyright (C) 2024 Linaro Ltd.
*/
-#ifndef __PCI_PWRCTL_H__
-#define __PCI_PWRCTL_H__
+#ifndef __PCI_PWRCTRL_H__
+#define __PCI_PWRCTRL_H__
#include <linux/notifier.h>
#include <linux/workqueue.h>
@@ -29,14 +29,14 @@ struct device_link;
*/
/**
- * struct pci_pwrctl - PCI device power control context.
+ * struct pci_pwrctrl - PCI device power control context.
* @dev: Address of the power controlling device.
*
* An object of this type must be allocated by the PCI power control device and
- * passed to the pwrctl subsystem to trigger a bus rescan and setup a device
+ * passed to the pwrctrl subsystem to trigger a bus rescan and setup a device
* link with the device once it's up.
*/
-struct pci_pwrctl {
+struct pci_pwrctrl {
struct device *dev;
/* Private: don't use. */
@@ -45,10 +45,10 @@ struct pci_pwrctl {
struct work_struct work;
};
-void pci_pwrctl_init(struct pci_pwrctl *pwrctl, struct device *dev);
-int pci_pwrctl_device_set_ready(struct pci_pwrctl *pwrctl);
-void pci_pwrctl_device_unset_ready(struct pci_pwrctl *pwrctl);
-int devm_pci_pwrctl_device_set_ready(struct device *dev,
- struct pci_pwrctl *pwrctl);
+void pci_pwrctrl_init(struct pci_pwrctrl *pwrctrl, struct device *dev);
+int pci_pwrctrl_device_set_ready(struct pci_pwrctrl *pwrctrl);
+void pci_pwrctrl_device_unset_ready(struct pci_pwrctrl *pwrctrl);
+int devm_pci_pwrctrl_device_set_ready(struct device *dev,
+ struct pci_pwrctrl *pwrctrl);
-#endif /* __PCI_PWRCTL_H__ */
+#endif /* __PCI_PWRCTRL_H__ */