All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cristian Marussi <cristian.marussi@arm.com>
To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: sudeep.holla@arm.com, lukasz.luba@arm.com,
	james.quinlan@broadcom.com, Jonathan.Cameron@Huawei.com,
	f.fainelli@gmail.com, etienne.carriere@linaro.org,
	thara.gopinath@linaro.org, vincent.guittot@linaro.org,
	souvik.chakravarty@arm.com, cristian.marussi@arm.com
Subject: [PATCH v4 35/37] firmware: arm_scmi: make notify_priv really private
Date: Wed,  6 Jan 2021 20:16:08 +0000	[thread overview]
Message-ID: <20210106201610.26538-36-cristian.marussi@arm.com> (raw)
In-Reply-To: <20210106201610.26538-1-cristian.marussi@arm.com>

Notification private data is currently accessible via handle->notify_priv;
this data was indeed meant to be private to the notification core support
and not to be accessible by SCMI drivers: make it private hiding it inside
instance descriptor struct scmi_info and accessible only via dedicated
helpers.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
---
 drivers/firmware/arm_scmi/common.h |  4 +++
 drivers/firmware/arm_scmi/driver.c | 21 ++++++++++++++
 drivers/firmware/arm_scmi/notify.c | 45 ++++++++++--------------------
 include/linux/scmi_protocol.h      |  3 --
 4 files changed, 40 insertions(+), 33 deletions(-)

diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h
index 65db0aefc489..5fb64182610a 100644
--- a/drivers/firmware/arm_scmi/common.h
+++ b/drivers/firmware/arm_scmi/common.h
@@ -341,4 +341,8 @@ void shmem_clear_channel(struct scmi_shared_mem __iomem *shmem);
 bool shmem_poll_done(struct scmi_shared_mem __iomem *shmem,
 		     struct scmi_xfer *xfer);
 
+void scmi_set_notification_instance_data(const struct scmi_handle *handle,
+					 void *priv);
+void *scmi_get_notification_instance_data(const struct scmi_handle *handle);
+
 #endif /* _SCMI_COMMON_H */
diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
index 77e108475aea..a0a6a3d1d239 100644
--- a/drivers/firmware/arm_scmi/driver.c
+++ b/drivers/firmware/arm_scmi/driver.c
@@ -113,6 +113,7 @@ struct scmi_protocol_instance {
  * @protocols_mtx: A mutex to protect protocols instances initialization.
  * @protocols_imp: List of protocols implemented, currently maximum of
  *	MAX_PROTOCOLS_IMP elements allocated by the base protocol
+ * @notify_priv: Pointer to private data structure specific to notifications.
  * @node: List head
  * @users: Number of users of this instance
  */
@@ -129,6 +130,7 @@ struct scmi_info {
 	/* Ensure mutual exclusive access to protocols instance array */
 	struct mutex protocols_mtx;
 	u8 *protocols_imp;
+	void *notify_priv;
 	struct list_head node;
 	int users;
 };
@@ -170,6 +172,25 @@ static inline void scmi_dump_header_dbg(struct device *dev,
 		hdr->id, hdr->seq, hdr->protocol_id);
 }
 
+void scmi_set_notification_instance_data(const struct scmi_handle *handle,
+					 void *priv)
+{
+	struct scmi_info *info = handle_to_scmi_info(handle);
+
+	info->notify_priv = priv;
+	/* Ensure updated protocol private date are visible */
+	smp_wmb();
+}
+
+void *scmi_get_notification_instance_data(const struct scmi_handle *handle)
+{
+	struct scmi_info *info = handle_to_scmi_info(handle);
+
+	/* Ensure protocols_private_data has been updated */
+	smp_rmb();
+	return info->notify_priv;
+}
+
 /**
  * scmi_xfer_get() - Allocate one message
  *
diff --git a/drivers/firmware/arm_scmi/notify.c b/drivers/firmware/arm_scmi/notify.c
index d88bc9960c7c..39374255b3a7 100644
--- a/drivers/firmware/arm_scmi/notify.c
+++ b/drivers/firmware/arm_scmi/notify.c
@@ -582,11 +582,9 @@ int scmi_notify(const struct scmi_handle *handle, u8 proto_id, u8 evt_id,
 	struct scmi_event_header eh;
 	struct scmi_notify_instance *ni;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return 0;
-	ni = handle->notify_priv;
 
 	r_evt = SCMI_GET_REVT(ni, proto_id, evt_id);
 	if (!r_evt)
@@ -762,11 +760,9 @@ int scmi_register_protocol_events(const struct scmi_handle *handle, u8 proto_id,
 	    (!ee->num_sources && !ee->ops->get_num_sources))
 		return -EINVAL;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return -ENOMEM;
-	ni = handle->notify_priv;
 
 	/* num_sources cannot be <= 0 */
 	if (ee->num_sources) {
@@ -851,12 +847,10 @@ void scmi_deregister_protocol_events(const struct scmi_handle *handle,
 	struct scmi_notify_instance *ni;
 	struct scmi_registered_events_desc *pd;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return;
 
-	ni = handle->notify_priv;
 	pd = ni->registered_protocols[proto_id];
 	if (!pd)
 		return;
@@ -1359,11 +1353,9 @@ static int scmi_register_notifier(const struct scmi_handle *handle,
 	struct scmi_event_handler *hndl;
 	struct scmi_notify_instance *ni;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return -ENODEV;
-	ni = handle->notify_priv;
 
 	evt_key = MAKE_HASH_KEY(proto_id, evt_id,
 				src_id ? *src_id : SRC_ID_MASK);
@@ -1407,11 +1399,9 @@ static int scmi_unregister_notifier(const struct scmi_handle *handle,
 	struct scmi_event_handler *hndl;
 	struct scmi_notify_instance *ni;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return -ENODEV;
-	ni = handle->notify_priv;
 
 	evt_key = MAKE_HASH_KEY(proto_id, evt_id,
 				src_id ? *src_id : SRC_ID_MASK);
@@ -1684,8 +1674,8 @@ int scmi_notification_init(struct scmi_handle *handle)
 
 	INIT_WORK(&ni->init_work, scmi_protocols_late_init);
 
+	scmi_set_notification_instance_data(handle, ni);
 	handle->notify_ops = &notify_ops;
-	handle->notify_priv = ni;
 	/* Ensure handle is up to date */
 	smp_wmb();
 
@@ -1697,7 +1687,7 @@ int scmi_notification_init(struct scmi_handle *handle)
 
 err:
 	dev_warn(handle->dev, "Initialization Failed.\n");
-	devres_release_group(handle->dev, NULL);
+	devres_release_group(handle->dev, gid);
 	return -ENOMEM;
 }
 
@@ -1709,15 +1699,10 @@ void scmi_notification_exit(struct scmi_handle *handle)
 {
 	struct scmi_notify_instance *ni;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return;
-	ni = handle->notify_priv;
-
-	handle->notify_priv = NULL;
-	/* Ensure handle is up to date */
-	smp_wmb();
+	scmi_set_notification_instance_data(handle, NULL);
 
 	/* Destroy while letting pending work complete */
 	destroy_workqueue(ni->notify_wq);
diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h
index 6c05e8acafac..c5d3f9b7de7c 100644
--- a/include/linux/scmi_protocol.h
+++ b/include/linux/scmi_protocol.h
@@ -609,8 +609,6 @@ struct scmi_notify_ops {
  *	     dedicated protocol handler
  * @put_ops: method to release a protocol
  * @notify_ops: pointer to set of notifications related operations
- * @notify_priv: pointer to private data structure specific to notifications
- *	(for internal use only)
  */
 struct scmi_handle {
 	struct device *dev;
@@ -627,7 +625,6 @@ struct scmi_handle {
 	void (*put_ops)(const struct scmi_handle *handle, u8 proto);
 
 	const struct scmi_notify_ops *notify_ops;
-	void *notify_priv;
 };
 
 enum scmi_std_protocol {
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: Cristian Marussi <cristian.marussi@arm.com>
To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: f.fainelli@gmail.com, vincent.guittot@linaro.org,
	sudeep.holla@arm.com, thara.gopinath@linaro.org,
	cristian.marussi@arm.com, james.quinlan@broadcom.com,
	Jonathan.Cameron@Huawei.com, souvik.chakravarty@arm.com,
	etienne.carriere@linaro.org, lukasz.luba@arm.com
Subject: [PATCH v4 35/37] firmware: arm_scmi: make notify_priv really private
Date: Wed,  6 Jan 2021 20:16:08 +0000	[thread overview]
Message-ID: <20210106201610.26538-36-cristian.marussi@arm.com> (raw)
In-Reply-To: <20210106201610.26538-1-cristian.marussi@arm.com>

Notification private data is currently accessible via handle->notify_priv;
this data was indeed meant to be private to the notification core support
and not to be accessible by SCMI drivers: make it private hiding it inside
instance descriptor struct scmi_info and accessible only via dedicated
helpers.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
---
 drivers/firmware/arm_scmi/common.h |  4 +++
 drivers/firmware/arm_scmi/driver.c | 21 ++++++++++++++
 drivers/firmware/arm_scmi/notify.c | 45 ++++++++++--------------------
 include/linux/scmi_protocol.h      |  3 --
 4 files changed, 40 insertions(+), 33 deletions(-)

diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h
index 65db0aefc489..5fb64182610a 100644
--- a/drivers/firmware/arm_scmi/common.h
+++ b/drivers/firmware/arm_scmi/common.h
@@ -341,4 +341,8 @@ void shmem_clear_channel(struct scmi_shared_mem __iomem *shmem);
 bool shmem_poll_done(struct scmi_shared_mem __iomem *shmem,
 		     struct scmi_xfer *xfer);
 
+void scmi_set_notification_instance_data(const struct scmi_handle *handle,
+					 void *priv);
+void *scmi_get_notification_instance_data(const struct scmi_handle *handle);
+
 #endif /* _SCMI_COMMON_H */
diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
index 77e108475aea..a0a6a3d1d239 100644
--- a/drivers/firmware/arm_scmi/driver.c
+++ b/drivers/firmware/arm_scmi/driver.c
@@ -113,6 +113,7 @@ struct scmi_protocol_instance {
  * @protocols_mtx: A mutex to protect protocols instances initialization.
  * @protocols_imp: List of protocols implemented, currently maximum of
  *	MAX_PROTOCOLS_IMP elements allocated by the base protocol
+ * @notify_priv: Pointer to private data structure specific to notifications.
  * @node: List head
  * @users: Number of users of this instance
  */
@@ -129,6 +130,7 @@ struct scmi_info {
 	/* Ensure mutual exclusive access to protocols instance array */
 	struct mutex protocols_mtx;
 	u8 *protocols_imp;
+	void *notify_priv;
 	struct list_head node;
 	int users;
 };
@@ -170,6 +172,25 @@ static inline void scmi_dump_header_dbg(struct device *dev,
 		hdr->id, hdr->seq, hdr->protocol_id);
 }
 
+void scmi_set_notification_instance_data(const struct scmi_handle *handle,
+					 void *priv)
+{
+	struct scmi_info *info = handle_to_scmi_info(handle);
+
+	info->notify_priv = priv;
+	/* Ensure updated protocol private date are visible */
+	smp_wmb();
+}
+
+void *scmi_get_notification_instance_data(const struct scmi_handle *handle)
+{
+	struct scmi_info *info = handle_to_scmi_info(handle);
+
+	/* Ensure protocols_private_data has been updated */
+	smp_rmb();
+	return info->notify_priv;
+}
+
 /**
  * scmi_xfer_get() - Allocate one message
  *
diff --git a/drivers/firmware/arm_scmi/notify.c b/drivers/firmware/arm_scmi/notify.c
index d88bc9960c7c..39374255b3a7 100644
--- a/drivers/firmware/arm_scmi/notify.c
+++ b/drivers/firmware/arm_scmi/notify.c
@@ -582,11 +582,9 @@ int scmi_notify(const struct scmi_handle *handle, u8 proto_id, u8 evt_id,
 	struct scmi_event_header eh;
 	struct scmi_notify_instance *ni;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return 0;
-	ni = handle->notify_priv;
 
 	r_evt = SCMI_GET_REVT(ni, proto_id, evt_id);
 	if (!r_evt)
@@ -762,11 +760,9 @@ int scmi_register_protocol_events(const struct scmi_handle *handle, u8 proto_id,
 	    (!ee->num_sources && !ee->ops->get_num_sources))
 		return -EINVAL;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return -ENOMEM;
-	ni = handle->notify_priv;
 
 	/* num_sources cannot be <= 0 */
 	if (ee->num_sources) {
@@ -851,12 +847,10 @@ void scmi_deregister_protocol_events(const struct scmi_handle *handle,
 	struct scmi_notify_instance *ni;
 	struct scmi_registered_events_desc *pd;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return;
 
-	ni = handle->notify_priv;
 	pd = ni->registered_protocols[proto_id];
 	if (!pd)
 		return;
@@ -1359,11 +1353,9 @@ static int scmi_register_notifier(const struct scmi_handle *handle,
 	struct scmi_event_handler *hndl;
 	struct scmi_notify_instance *ni;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return -ENODEV;
-	ni = handle->notify_priv;
 
 	evt_key = MAKE_HASH_KEY(proto_id, evt_id,
 				src_id ? *src_id : SRC_ID_MASK);
@@ -1407,11 +1399,9 @@ static int scmi_unregister_notifier(const struct scmi_handle *handle,
 	struct scmi_event_handler *hndl;
 	struct scmi_notify_instance *ni;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return -ENODEV;
-	ni = handle->notify_priv;
 
 	evt_key = MAKE_HASH_KEY(proto_id, evt_id,
 				src_id ? *src_id : SRC_ID_MASK);
@@ -1684,8 +1674,8 @@ int scmi_notification_init(struct scmi_handle *handle)
 
 	INIT_WORK(&ni->init_work, scmi_protocols_late_init);
 
+	scmi_set_notification_instance_data(handle, ni);
 	handle->notify_ops = &notify_ops;
-	handle->notify_priv = ni;
 	/* Ensure handle is up to date */
 	smp_wmb();
 
@@ -1697,7 +1687,7 @@ int scmi_notification_init(struct scmi_handle *handle)
 
 err:
 	dev_warn(handle->dev, "Initialization Failed.\n");
-	devres_release_group(handle->dev, NULL);
+	devres_release_group(handle->dev, gid);
 	return -ENOMEM;
 }
 
@@ -1709,15 +1699,10 @@ void scmi_notification_exit(struct scmi_handle *handle)
 {
 	struct scmi_notify_instance *ni;
 
-	/* Ensure notify_priv is updated */
-	smp_rmb();
-	if (!handle->notify_priv)
+	ni = scmi_get_notification_instance_data(handle);
+	if (!ni)
 		return;
-	ni = handle->notify_priv;
-
-	handle->notify_priv = NULL;
-	/* Ensure handle is up to date */
-	smp_wmb();
+	scmi_set_notification_instance_data(handle, NULL);
 
 	/* Destroy while letting pending work complete */
 	destroy_workqueue(ni->notify_wq);
diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h
index 6c05e8acafac..c5d3f9b7de7c 100644
--- a/include/linux/scmi_protocol.h
+++ b/include/linux/scmi_protocol.h
@@ -609,8 +609,6 @@ struct scmi_notify_ops {
  *	     dedicated protocol handler
  * @put_ops: method to release a protocol
  * @notify_ops: pointer to set of notifications related operations
- * @notify_priv: pointer to private data structure specific to notifications
- *	(for internal use only)
  */
 struct scmi_handle {
 	struct device *dev;
@@ -627,7 +625,6 @@ struct scmi_handle {
 	void (*put_ops)(const struct scmi_handle *handle, u8 proto);
 
 	const struct scmi_notify_ops *notify_ops;
-	void *notify_priv;
 };
 
 enum scmi_std_protocol {
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-01-06 20:21 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-06 20:15 [PATCH v4 0/37] SCMI vendor protocols and modularization Cristian Marussi
2021-01-06 20:15 ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 01/37] firmware: arm_scmi: review protocol registration interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 02/37] firmware: arm_scmi: introduce protocol handle definitions Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-07 14:29   ` Thara Gopinath
2021-01-07 14:29     ` Thara Gopinath
2021-01-08 12:04     ` Cristian Marussi
2021-01-08 12:04       ` Cristian Marussi
2021-01-08 15:50       ` Thara Gopinath
2021-01-08 15:50         ` Thara Gopinath
2021-01-06 20:15 ` [PATCH v4 03/37] firmware: arm_scmi: introduce devres get/put protocols operations Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-07 14:28   ` Thara Gopinath
2021-01-07 14:28     ` Thara Gopinath
2021-01-08 12:24     ` Cristian Marussi
2021-01-08 12:24       ` Cristian Marussi
2021-01-08 13:42       ` Etienne Carriere
2021-01-08 13:42         ` Etienne Carriere
2021-01-08 16:42         ` Cristian Marussi
2021-01-08 16:42           ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 04/37] [RFC] firmware: arm_scmi: introduce bare get/put protocols ops Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-07 14:30   ` Thara Gopinath
2021-01-07 14:30     ` Thara Gopinath
2021-01-06 20:15 ` [PATCH v4 05/37] firmware: arm_scmi: make notifications aware of protocols users Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 06/37] firmware: arm_scmi: introduce new devres notification ops Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 07/37] firmware: arm_scmi: refactor events registration Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 08/37] firmware: arm_scmi: convert events registration to protocol handles Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 09/37] firmware: arm_scmi: add new protocol handle core xfer ops Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 10/37] firmware: arm_scmi: add helper to access revision area memory Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 11/37] firmware: arm_scmi: port Base protocol to new interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 12/37] firmware: arm_scmi: port Perf protocol to new protocols interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 13/37] cpufreq: scmi: port driver to the new scmi_perf_proto_ops interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 14/37] firmware: arm_scmi: remove legacy scmi_perf_ops protocol interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 15/37] firmware: arm_scmi: port Power protocol to new protocols interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 16/37] firmware: arm_scmi: port GenPD driver to the new scmi_power_proto_ops interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 17/37] firmware: arm_scmi: remove legacy scmi_power_ops protocol interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 18/37] firmware: arm_scmi: port Clock protocol to new protocols interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 19/37] clk: scmi: port driver to the new scmi_clk_proto_ops interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 20/37] firmware: arm_scmi: remove legacy scmi_clk_ops protocol interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 21/37] firmware: arm_scmi: port Reset protocol to new protocols interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 22/37] reset: reset-scmi: port driver to the new scmi_reset_proto_ops interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 23/37] firmware: arm_scmi: remove legacy scmi_reset_ops protocol interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 24/37] firmware: arm_scmi: port Sensor protocol to new protocols interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 25/37] hwmon: (scmi) port driver to the new scmi_sensor_proto_ops interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:15 ` [PATCH v4 26/37] firmware: arm_scmi: remove legacy scmi_sensor_ops protocol interface Cristian Marussi
2021-01-06 20:15   ` Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 27/37] firmware: arm_scmi: port SystemPower protocol to new protocols interface Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 28/37] firmware: arm_scmi: port Voltage " Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 29/37] regulator: scmi: port driver to the new scmi_voltage_proto_ops interface Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 30/37] firmware: arm_scmi: remove legacy scmi_voltage_ops protocol interface Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 31/37] firmware: arm_scmi: make references to handle const Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 32/37] firmware: arm_scmi: cleanup legacy protocol init code Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 33/37] firmware: arm_scmi: cleanup unused core xfer wrappers Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 34/37] firmware: arm_scmi: cleanup events registration transient code Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-06 20:16 ` Cristian Marussi [this message]
2021-01-06 20:16   ` [PATCH v4 35/37] firmware: arm_scmi: make notify_priv really private Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 36/37] firmware: arm_scmi: add protocol modularization support Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-06 20:16 ` [PATCH v4 37/37] firmware: arm_scmi: add dynamic scmi devices creation Cristian Marussi
2021-01-06 20:16   ` Cristian Marussi
2021-01-07 14:28   ` Thara Gopinath
2021-01-07 14:28     ` Thara Gopinath
2021-01-08 14:42     ` Cristian Marussi
2021-01-08 14:42       ` Cristian Marussi
2021-01-08 16:32       ` Thara Gopinath
2021-01-08 16:32         ` Thara Gopinath
2021-01-08 16:52         ` Cristian Marussi
2021-01-08 16:52           ` Cristian Marussi

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=20210106201610.26538-36-cristian.marussi@arm.com \
    --to=cristian.marussi@arm.com \
    --cc=Jonathan.Cameron@Huawei.com \
    --cc=etienne.carriere@linaro.org \
    --cc=f.fainelli@gmail.com \
    --cc=james.quinlan@broadcom.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukasz.luba@arm.com \
    --cc=souvik.chakravarty@arm.com \
    --cc=sudeep.holla@arm.com \
    --cc=thara.gopinath@linaro.org \
    --cc=vincent.guittot@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.