interconnect changes for 6.1
These are the interconnect changes for the 6.1-rc1 merge window, which this time are tiny. One is a series to convert the remove() callback of platform devices to return void instead of int. The other change is enabling modular support for a driver. Signed-off-by: Georgi Djakov <djakov@kernel.org> -----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJjMapuAAoJEIDQzArG2BZjERkP/jBLAdgFeiYidCJPrK6FB9WB qjbmYJIHrDhQgRThSxLhjAX8me1UXd5VEkjgD26EbNnvNfmt/1Wb2twl7NTEGn+7 dzqFHCALbmVpJJg2BFg0k+B2stZF0+cPBXsvVzCEbihnVuOfrK9QFu7JwVUaivF5 wPxYn0vtutqXt2/mjMqGMvjteJPO2D8jV0aSdr1j3mqIZslwqWgr9JMC0IVxGHvW ubGV7Ydh64U3PT0eSl0iMCC16HQXihhbU06Lj54QKrOjvVRGQV2kFvPU46TXHskH aI0deNrYatnWQo/3sHUt7ihiHadOEDYCXYOT0lq9GYQ2j1EIM9wCL00s/Ljbg1d1 fBfRtAgtnU/jnsnMlBDbg/PsDSPcNQLE3zKh09Lv4q4rjo69LkKwvraaXEi5j7nc +IjpSoppjxd807wxNug/pAXKtVppEsonZhZO+jUnE7hNOAA4wHyr05GKCrCifju8 7KTKej4dpTeKtIhw4i3/bNj/XzqLlLaOCG7BcEvIQjRW8TUn/BJhDY0PMsdGnXjA iE0gx5REJ0TFf+RsccT7ub8K7W03KU8hCREll41/fX06Y6LJbaWMPX874i5P505V cTnjISddLgvzlQqD74le9Zel2O+gcaneLiAcXKVPsY8mvRPEJ6S61BvMb2bwT2SB jIKhEwCJemNST2e2k4Ej =RunL -----END PGP SIGNATURE----- Merge tag 'icc-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next Grorgi writes: "interconnect changes for 6.1 These are the interconnect changes for the 6.1-rc1 merge window, which this time are tiny. One is a series to convert the remove() callback of platform devices to return void instead of int. The other change is enabling modular support for a driver." Signed-off-by: Georgi Djakov <djakov@kernel.org> * tag 'icc-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc: interconnect: qcom: Kconfig: Make INTERCONNECT_QCOM tristate interconnect: imx: Make imx_icc_unregister() return void interconnect: Make icc_provider_del() return void interconnect: sm8450: Ignore return value of icc_provider_del() in .remove() interconnect: osm-l3: Ignore return value of icc_provider_del() in .remove() interconnect: msm8974: Ignore return value of icc_provider_del() in .remove() interconnect: icc-rpmh: Ignore return value of icc_provider_del() in .remove() interconnect: icc-rpm: Ignore return value of icc_provider_del() in .remove() interconnect: imx: Ignore return value of icc_provider_del() in .remove()
This commit is contained in:
commit
3aa12610b4
15 changed files with 39 additions and 23 deletions
|
@ -1057,29 +1057,25 @@ EXPORT_SYMBOL_GPL(icc_provider_add);
|
|||
/**
|
||||
* icc_provider_del() - delete previously added interconnect provider
|
||||
* @provider: the interconnect provider that will be removed from topology
|
||||
*
|
||||
* Return: 0 on success, or an error code otherwise
|
||||
*/
|
||||
int icc_provider_del(struct icc_provider *provider)
|
||||
void icc_provider_del(struct icc_provider *provider)
|
||||
{
|
||||
mutex_lock(&icc_lock);
|
||||
if (provider->users) {
|
||||
pr_warn("interconnect provider still has %d users\n",
|
||||
provider->users);
|
||||
mutex_unlock(&icc_lock);
|
||||
return -EBUSY;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!list_empty(&provider->nodes)) {
|
||||
pr_warn("interconnect provider still has nodes\n");
|
||||
mutex_unlock(&icc_lock);
|
||||
return -EBUSY;
|
||||
return;
|
||||
}
|
||||
|
||||
list_del(&provider->provider_list);
|
||||
mutex_unlock(&icc_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(icc_provider_del);
|
||||
|
||||
|
|
|
@ -324,13 +324,13 @@ int imx_icc_register(struct platform_device *pdev,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(imx_icc_register);
|
||||
|
||||
int imx_icc_unregister(struct platform_device *pdev)
|
||||
void imx_icc_unregister(struct platform_device *pdev)
|
||||
{
|
||||
struct imx_icc_provider *imx_provider = platform_get_drvdata(pdev);
|
||||
|
||||
imx_icc_unregister_nodes(&imx_provider->provider);
|
||||
|
||||
return icc_provider_del(&imx_provider->provider);
|
||||
icc_provider_del(&imx_provider->provider);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(imx_icc_unregister);
|
||||
|
||||
|
|
|
@ -103,6 +103,6 @@ int imx_icc_register(struct platform_device *pdev,
|
|||
struct imx_icc_node_desc *nodes,
|
||||
int nodes_count,
|
||||
struct imx_icc_noc_setting *noc_settings);
|
||||
int imx_icc_unregister(struct platform_device *pdev);
|
||||
void imx_icc_unregister(struct platform_device *pdev);
|
||||
|
||||
#endif /* __DRIVERS_INTERCONNECT_IMX_H */
|
||||
|
|
|
@ -88,7 +88,9 @@ static int imx8mm_icc_probe(struct platform_device *pdev)
|
|||
|
||||
static int imx8mm_icc_remove(struct platform_device *pdev)
|
||||
{
|
||||
return imx_icc_unregister(pdev);
|
||||
imx_icc_unregister(pdev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver imx8mm_icc_driver = {
|
||||
|
|
|
@ -77,7 +77,9 @@ static int imx8mn_icc_probe(struct platform_device *pdev)
|
|||
|
||||
static int imx8mn_icc_remove(struct platform_device *pdev)
|
||||
{
|
||||
return imx_icc_unregister(pdev);
|
||||
imx_icc_unregister(pdev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver imx8mn_icc_driver = {
|
||||
|
|
|
@ -242,7 +242,9 @@ static int imx8mp_icc_probe(struct platform_device *pdev)
|
|||
|
||||
static int imx8mp_icc_remove(struct platform_device *pdev)
|
||||
{
|
||||
return imx_icc_unregister(pdev);
|
||||
imx_icc_unregister(pdev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver imx8mp_icc_driver = {
|
||||
|
|
|
@ -87,7 +87,9 @@ static int imx8mq_icc_probe(struct platform_device *pdev)
|
|||
|
||||
static int imx8mq_icc_remove(struct platform_device *pdev)
|
||||
{
|
||||
return imx_icc_unregister(pdev);
|
||||
imx_icc_unregister(pdev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver imx8mq_icc_driver = {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
config INTERCONNECT_QCOM
|
||||
bool "Qualcomm Network-on-Chip interconnect drivers"
|
||||
tristate "Qualcomm Network-on-Chip interconnect drivers"
|
||||
depends on ARCH_QCOM
|
||||
help
|
||||
Support for Qualcomm's Network-on-Chip interconnect hardware.
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#include <linux/of.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/module.h>
|
||||
|
||||
#include "icc-common.h"
|
||||
|
||||
|
@ -32,3 +33,5 @@ struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void
|
|||
return ndata;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(qcom_icc_xlate_extended);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
|
|
|
@ -563,6 +563,8 @@ int qnoc_remove(struct platform_device *pdev)
|
|||
|
||||
icc_nodes_remove(&qp->provider);
|
||||
clk_bulk_disable_unprepare(qp->num_clks, qp->bus_clks);
|
||||
return icc_provider_del(&qp->provider);
|
||||
icc_provider_del(&qp->provider);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(qnoc_remove);
|
||||
|
|
|
@ -251,7 +251,9 @@ int qcom_icc_rpmh_remove(struct platform_device *pdev)
|
|||
struct qcom_icc_provider *qp = platform_get_drvdata(pdev);
|
||||
|
||||
icc_nodes_remove(&qp->provider);
|
||||
return icc_provider_del(&qp->provider);
|
||||
icc_provider_del(&qp->provider);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(qcom_icc_rpmh_remove);
|
||||
|
||||
|
|
|
@ -749,7 +749,9 @@ static int msm8974_icc_remove(struct platform_device *pdev)
|
|||
|
||||
icc_nodes_remove(&qp->provider);
|
||||
clk_bulk_disable_unprepare(qp->num_clks, qp->bus_clks);
|
||||
return icc_provider_del(&qp->provider);
|
||||
icc_provider_del(&qp->provider);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id msm8974_noc_of_match[] = {
|
||||
|
|
|
@ -217,7 +217,9 @@ static int qcom_osm_l3_remove(struct platform_device *pdev)
|
|||
struct qcom_osm_l3_icc_provider *qp = platform_get_drvdata(pdev);
|
||||
|
||||
icc_nodes_remove(&qp->provider);
|
||||
return icc_provider_del(&qp->provider);
|
||||
icc_provider_del(&qp->provider);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int qcom_osm_l3_probe(struct platform_device *pdev)
|
||||
|
|
|
@ -1933,7 +1933,9 @@ static int qnoc_remove(struct platform_device *pdev)
|
|||
struct qcom_icc_provider *qp = platform_get_drvdata(pdev);
|
||||
|
||||
icc_nodes_remove(&qp->provider);
|
||||
return icc_provider_del(&qp->provider);
|
||||
icc_provider_del(&qp->provider);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id qnoc_of_match[] = {
|
||||
|
|
|
@ -123,7 +123,7 @@ void icc_node_add(struct icc_node *node, struct icc_provider *provider);
|
|||
void icc_node_del(struct icc_node *node);
|
||||
int icc_nodes_remove(struct icc_provider *provider);
|
||||
int icc_provider_add(struct icc_provider *provider);
|
||||
int icc_provider_del(struct icc_provider *provider);
|
||||
void icc_provider_del(struct icc_provider *provider);
|
||||
struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec);
|
||||
void icc_sync_state(struct device *dev);
|
||||
|
||||
|
@ -172,9 +172,8 @@ static inline int icc_provider_add(struct icc_provider *provider)
|
|||
return -ENOTSUPP;
|
||||
}
|
||||
|
||||
static inline int icc_provider_del(struct icc_provider *provider)
|
||||
static inline void icc_provider_del(struct icc_provider *provider)
|
||||
{
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
|
||||
static inline struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec)
|
||||
|
|
Loading…
Reference in a new issue