linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] Shovel firmware specific code to appropriate locations
@ 2022-03-23 15:47 Sakari Ailus
  2022-03-23 15:47 ` [PATCH v2 1/4] device property: Convert device_{dma_supported,get_dma_attr} to fwnode Sakari Ailus
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Sakari Ailus @ 2022-03-23 15:47 UTC (permalink / raw)
  To: linux-acpi
  Cc: andriy.shevchenko, devicetree, Rafael J.Wysocki, Daniel Scally,
	Heikki Krogerus, Rob Herring, Frank Rowand

Hi folks,

This set moves the implementation of recently added device property API
functions to OF and ACPI frameworks, where the rest of such functionality
resides.

Compile tested.

The dependencies can be found in Rafael's devprop branch now.

changes since v1:

- Drop wrongly placed Depends-on: tag from the first patch.

- Drop IS_ENABLED(CONFIG_OF_ADDRESS) && is_of_node(fwnode) check (3rd
  patch).

Sakari Ailus (4):
  device property: Convert device_{dma_supported,get_dma_attr} to fwnode
  ACPI: property: Move acpi_fwnode_device_get_match_data() up
  device property: Add iomap to fwnode operations
  device property: Add irq_get to fwnode operation

 drivers/acpi/property.c | 36 +++++++++++++++++++++++++++++++----
 drivers/base/property.c | 42 ++++++-----------------------------------
 drivers/of/property.c   | 30 +++++++++++++++++++++++++++++
 include/linux/fwnode.h  |  5 +++++
 4 files changed, 73 insertions(+), 40 deletions(-)

-- 
2.30.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/4] device property: Convert device_{dma_supported,get_dma_attr} to fwnode
  2022-03-23 15:47 [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Sakari Ailus
@ 2022-03-23 15:47 ` Sakari Ailus
  2022-03-23 15:47 ` [PATCH v2 2/4] ACPI: property: Move acpi_fwnode_device_get_match_data() up Sakari Ailus
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Sakari Ailus @ 2022-03-23 15:47 UTC (permalink / raw)
  To: linux-acpi
  Cc: andriy.shevchenko, devicetree, Rafael J.Wysocki, Daniel Scally,
	Heikki Krogerus, Rob Herring, Frank Rowand, Rob Herring

Make the device_dma_supported and device_get_dma_attr functions to use the
fwnode ops, and move the implementation to ACPI and OF frameworks.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/acpi/property.c | 14 ++++++++++++++
 drivers/base/property.c | 25 ++++---------------------
 drivers/of/property.c   | 17 +++++++++++++++++
 include/linux/fwnode.h  |  3 +++
 4 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c
index d0986bda2964..1541b318ba46 100644
--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -1253,6 +1253,17 @@ static bool acpi_fwnode_device_is_available(const struct fwnode_handle *fwnode)
 	return acpi_device_is_present(to_acpi_device_node(fwnode));
 }
 
+static bool acpi_fwnode_device_dma_supported(const struct fwnode_handle *fwnode)
+{
+	return acpi_dma_supported(to_acpi_device_node(fwnode));
+}
+
+static enum dev_dma_attr
+acpi_fwnode_device_get_dma_attr(const struct fwnode_handle *fwnode)
+{
+	return acpi_get_dma_attr(to_acpi_device_node(fwnode));
+}
+
 static bool acpi_fwnode_property_present(const struct fwnode_handle *fwnode,
 					 const char *propname)
 {
@@ -1384,6 +1395,9 @@ acpi_fwnode_device_get_match_data(const struct fwnode_handle *fwnode,
 	const struct fwnode_operations ops = {				\
 		.device_is_available = acpi_fwnode_device_is_available, \
 		.device_get_match_data = acpi_fwnode_device_get_match_data, \
+		.device_dma_supported =				\
+			acpi_fwnode_device_dma_supported,		\
+		.device_get_dma_attr = acpi_fwnode_device_get_dma_attr,	\
 		.property_present = acpi_fwnode_property_present,	\
 		.property_read_int_array =				\
 			acpi_fwnode_property_read_int_array,		\
diff --git a/drivers/base/property.c b/drivers/base/property.c
index c0e94cce9c29..09686e2e903e 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -823,33 +823,16 @@ EXPORT_SYMBOL_GPL(device_get_child_node_count);
 
 bool device_dma_supported(struct device *dev)
 {
-	const struct fwnode_handle *fwnode = dev_fwnode(dev);
-
-	/* For DT, this is always supported.
-	 * For ACPI, this depends on CCA, which
-	 * is determined by the acpi_dma_supported().
-	 */
-	if (is_of_node(fwnode))
-		return true;
-
-	return acpi_dma_supported(to_acpi_device_node(fwnode));
+	return fwnode_call_bool_op(dev_fwnode(dev), device_dma_supported);
 }
 EXPORT_SYMBOL_GPL(device_dma_supported);
 
 enum dev_dma_attr device_get_dma_attr(struct device *dev)
 {
-	const struct fwnode_handle *fwnode = dev_fwnode(dev);
-	enum dev_dma_attr attr = DEV_DMA_NOT_SUPPORTED;
-
-	if (is_of_node(fwnode)) {
-		if (of_dma_is_coherent(to_of_node(fwnode)))
-			attr = DEV_DMA_COHERENT;
-		else
-			attr = DEV_DMA_NON_COHERENT;
-	} else
-		attr = acpi_get_dma_attr(to_acpi_device_node(fwnode));
+	if (!fwnode_has_op(dev_fwnode(dev), device_get_dma_attr))
+		return DEV_DMA_NOT_SUPPORTED;
 
-	return attr;
+	return fwnode_call_int_op(dev_fwnode(dev), device_get_dma_attr);
 }
 EXPORT_SYMBOL_GPL(device_get_dma_attr);
 
diff --git a/drivers/of/property.c b/drivers/of/property.c
index 8e90071de6ed..676899566f7c 100644
--- a/drivers/of/property.c
+++ b/drivers/of/property.c
@@ -22,6 +22,7 @@
 #define pr_fmt(fmt)	"OF: " fmt
 
 #include <linux/of.h>
+#include <linux/of_address.h>
 #include <linux/of_device.h>
 #include <linux/of_graph.h>
 #include <linux/of_irq.h>
@@ -872,6 +873,20 @@ static bool of_fwnode_device_is_available(const struct fwnode_handle *fwnode)
 	return of_device_is_available(to_of_node(fwnode));
 }
 
+static bool of_fwnode_device_dma_supported(const struct fwnode_handle *fwnode)
+{
+	return true;
+}
+
+static enum dev_dma_attr
+of_fwnode_device_get_dma_attr(const struct fwnode_handle *fwnode)
+{
+	if (of_dma_is_coherent(to_of_node(fwnode)))
+		return DEV_DMA_COHERENT;
+	else
+		return DEV_DMA_NON_COHERENT;
+}
+
 static bool of_fwnode_property_present(const struct fwnode_handle *fwnode,
 				       const char *propname)
 {
@@ -1472,6 +1487,8 @@ const struct fwnode_operations of_fwnode_ops = {
 	.put = of_fwnode_put,
 	.device_is_available = of_fwnode_device_is_available,
 	.device_get_match_data = of_fwnode_device_get_match_data,
+	.device_dma_supported = of_fwnode_device_dma_supported,
+	.device_get_dma_attr = of_fwnode_device_get_dma_attr,
 	.property_present = of_fwnode_property_present,
 	.property_read_int_array = of_fwnode_property_read_int_array,
 	.property_read_string_array = of_fwnode_property_read_string_array,
diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
index 3a532ba66f6c..6f307f21fc65 100644
--- a/include/linux/fwnode.h
+++ b/include/linux/fwnode.h
@@ -113,6 +113,9 @@ struct fwnode_operations {
 	bool (*device_is_available)(const struct fwnode_handle *fwnode);
 	const void *(*device_get_match_data)(const struct fwnode_handle *fwnode,
 					     const struct device *dev);
+	bool (*device_dma_supported)(const struct fwnode_handle *fwnode);
+	enum dev_dma_attr
+	(*device_get_dma_attr)(const struct fwnode_handle *fwnode);
 	bool (*property_present)(const struct fwnode_handle *fwnode,
 				 const char *propname);
 	int (*property_read_int_array)(const struct fwnode_handle *fwnode,
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/4] ACPI: property: Move acpi_fwnode_device_get_match_data() up
  2022-03-23 15:47 [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Sakari Ailus
  2022-03-23 15:47 ` [PATCH v2 1/4] device property: Convert device_{dma_supported,get_dma_attr} to fwnode Sakari Ailus
@ 2022-03-23 15:47 ` Sakari Ailus
  2022-03-23 15:47 ` [PATCH v2 3/4] device property: Add iomap to fwnode operations Sakari Ailus
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Sakari Ailus @ 2022-03-23 15:47 UTC (permalink / raw)
  To: linux-acpi
  Cc: andriy.shevchenko, devicetree, Rafael J.Wysocki, Daniel Scally,
	Heikki Krogerus, Rob Herring, Frank Rowand

Move acpi_fwnode_device_get_match_data() up below
acpi_fwnode_device_is_available() so the order matches that in struct
fwnode_operations.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/acpi/property.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c
index 1541b318ba46..75dc22c117a5 100644
--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -1253,6 +1253,13 @@ static bool acpi_fwnode_device_is_available(const struct fwnode_handle *fwnode)
 	return acpi_device_is_present(to_acpi_device_node(fwnode));
 }
 
+static const void *
+acpi_fwnode_device_get_match_data(const struct fwnode_handle *fwnode,
+				  const struct device *dev)
+{
+	return acpi_device_get_match_data(dev);
+}
+
 static bool acpi_fwnode_device_dma_supported(const struct fwnode_handle *fwnode)
 {
 	return acpi_dma_supported(to_acpi_device_node(fwnode));
@@ -1384,13 +1391,6 @@ static int acpi_fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
 	return 0;
 }
 
-static const void *
-acpi_fwnode_device_get_match_data(const struct fwnode_handle *fwnode,
-				  const struct device *dev)
-{
-	return acpi_device_get_match_data(dev);
-}
-
 #define DECLARE_ACPI_FWNODE_OPS(ops) \
 	const struct fwnode_operations ops = {				\
 		.device_is_available = acpi_fwnode_device_is_available, \
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 3/4] device property: Add iomap to fwnode operations
  2022-03-23 15:47 [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Sakari Ailus
  2022-03-23 15:47 ` [PATCH v2 1/4] device property: Convert device_{dma_supported,get_dma_attr} to fwnode Sakari Ailus
  2022-03-23 15:47 ` [PATCH v2 2/4] ACPI: property: Move acpi_fwnode_device_get_match_data() up Sakari Ailus
@ 2022-03-23 15:47 ` Sakari Ailus
  2022-03-23 22:37   ` kernel test robot
  2022-03-23 15:47 ` [PATCH v2 4/4] device property: Add irq_get to fwnode operation Sakari Ailus
  2022-03-23 16:20 ` [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Andy Shevchenko
  4 siblings, 1 reply; 10+ messages in thread
From: Sakari Ailus @ 2022-03-23 15:47 UTC (permalink / raw)
  To: linux-acpi
  Cc: andriy.shevchenko, devicetree, Rafael J.Wysocki, Daniel Scally,
	Heikki Krogerus, Rob Herring, Frank Rowand

Add iomap() fwnode operation to implement fwnode_iomap() through fwnode
operations, moving the code in fwnode_iomap() to OF framework.

Note that the IS_ENABLED(CONFIG_OF_ADDRESS) && is_of_node(fwnode) check is
needed for Sparc that has its own implementation of of_iomap anyway.
Remove that check.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/base/property.c | 5 +----
 drivers/of/property.c   | 6 ++++++
 include/linux/fwnode.h  | 1 +
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/base/property.c b/drivers/base/property.c
index 09686e2e903e..83dd22e7cb81 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -887,10 +887,7 @@ EXPORT_SYMBOL_GPL(device_get_phy_mode);
  */
 void __iomem *fwnode_iomap(struct fwnode_handle *fwnode, int index)
 {
-	if (IS_ENABLED(CONFIG_OF_ADDRESS) && is_of_node(fwnode))
-		return of_iomap(to_of_node(fwnode), index);
-
-	return NULL;
+	return fwnode_call_ptr_op(fwnode, iomap, index);
 }
 EXPORT_SYMBOL(fwnode_iomap);
 
diff --git a/drivers/of/property.c b/drivers/of/property.c
index 676899566f7c..b0b943ef51ef 100644
--- a/drivers/of/property.c
+++ b/drivers/of/property.c
@@ -1465,6 +1465,11 @@ static int of_link_property(struct device_node *con_np, const char *prop_name)
 	return 0;
 }
 
+static void __iomem *of_fwnode_iomap(struct fwnode_handle *fwnode, int index)
+{
+	return of_iomap(to_of_node(fwnode), index);
+}
+
 static int of_fwnode_add_links(struct fwnode_handle *fwnode)
 {
 	struct property *p;
@@ -1502,6 +1507,7 @@ const struct fwnode_operations of_fwnode_ops = {
 	.graph_get_remote_endpoint = of_fwnode_graph_get_remote_endpoint,
 	.graph_get_port_parent = of_fwnode_graph_get_port_parent,
 	.graph_parse_endpoint = of_fwnode_graph_parse_endpoint,
+	.iomap = of_fwnode_iomap,
 	.add_links = of_fwnode_add_links,
 };
 EXPORT_SYMBOL_GPL(of_fwnode_ops);
diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
index 6f307f21fc65..ebbc3bf03f95 100644
--- a/include/linux/fwnode.h
+++ b/include/linux/fwnode.h
@@ -148,6 +148,7 @@ struct fwnode_operations {
 	(*graph_get_port_parent)(struct fwnode_handle *fwnode);
 	int (*graph_parse_endpoint)(const struct fwnode_handle *fwnode,
 				    struct fwnode_endpoint *endpoint);
+	void __iomem *(*iomap)(struct fwnode_handle *fwnode, int index);
 	int (*add_links)(struct fwnode_handle *fwnode);
 };
 
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 4/4] device property: Add irq_get to fwnode operation
  2022-03-23 15:47 [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Sakari Ailus
                   ` (2 preceding siblings ...)
  2022-03-23 15:47 ` [PATCH v2 3/4] device property: Add iomap to fwnode operations Sakari Ailus
@ 2022-03-23 15:47 ` Sakari Ailus
  2022-03-23 16:20 ` [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Andy Shevchenko
  4 siblings, 0 replies; 10+ messages in thread
From: Sakari Ailus @ 2022-03-23 15:47 UTC (permalink / raw)
  To: linux-acpi
  Cc: andriy.shevchenko, devicetree, Rafael J.Wysocki, Daniel Scally,
	Heikki Krogerus, Rob Herring, Frank Rowand, Rob Herring

Add irq_get() fwnode operation to implement fwnode_irq_get() through
fwnode operations, moving the code in fwnode_irq_get() to OF and ACPI
frameworks.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/acpi/property.c | 14 ++++++++++++++
 drivers/base/property.c | 12 +-----------
 drivers/of/property.c   |  7 +++++++
 include/linux/fwnode.h  |  1 +
 4 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c
index 75dc22c117a5..1ad5f097c33a 100644
--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -1391,6 +1391,19 @@ static int acpi_fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
 	return 0;
 }
 
+static int acpi_fwnode_irq_get(const struct fwnode_handle *fwnode,
+			       unsigned int index)
+{
+	struct resource res;
+	int ret;
+
+	ret = acpi_irq_get(ACPI_HANDLE_FWNODE(fwnode), index, &res);
+	if (ret)
+		return ret;
+
+	return res.start;
+}
+
 #define DECLARE_ACPI_FWNODE_OPS(ops) \
 	const struct fwnode_operations ops = {				\
 		.device_is_available = acpi_fwnode_device_is_available, \
@@ -1415,6 +1428,7 @@ static int acpi_fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
 			acpi_graph_get_remote_endpoint,			\
 		.graph_get_port_parent = acpi_fwnode_get_parent,	\
 		.graph_parse_endpoint = acpi_fwnode_graph_parse_endpoint, \
+		.irq_get = acpi_fwnode_irq_get,				\
 	};								\
 	EXPORT_SYMBOL_GPL(ops)
 
diff --git a/drivers/base/property.c b/drivers/base/property.c
index 83dd22e7cb81..3560c4419d11 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -901,17 +901,7 @@ EXPORT_SYMBOL(fwnode_iomap);
  */
 int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index)
 {
-	struct resource res;
-	int ret;
-
-	if (is_of_node(fwnode))
-		return of_irq_get(to_of_node(fwnode), index);
-
-	ret = acpi_irq_get(ACPI_HANDLE_FWNODE(fwnode), index, &res);
-	if (ret)
-		return ret;
-
-	return res.start;
+	return fwnode_call_int_op(fwnode, irq_get, index);
 }
 EXPORT_SYMBOL(fwnode_irq_get);
 
diff --git a/drivers/of/property.c b/drivers/of/property.c
index b0b943ef51ef..e7f8588e532e 100644
--- a/drivers/of/property.c
+++ b/drivers/of/property.c
@@ -1470,6 +1470,12 @@ static void __iomem *of_fwnode_iomap(struct fwnode_handle *fwnode, int index)
 	return of_iomap(to_of_node(fwnode), index);
 }
 
+static int of_fwnode_irq_get(const struct fwnode_handle *fwnode,
+			     unsigned int index)
+{
+	return of_irq_get(to_of_node(fwnode), index);
+}
+
 static int of_fwnode_add_links(struct fwnode_handle *fwnode)
 {
 	struct property *p;
@@ -1508,6 +1514,7 @@ const struct fwnode_operations of_fwnode_ops = {
 	.graph_get_port_parent = of_fwnode_graph_get_port_parent,
 	.graph_parse_endpoint = of_fwnode_graph_parse_endpoint,
 	.iomap = of_fwnode_iomap,
+	.irq_get = of_fwnode_irq_get,
 	.add_links = of_fwnode_add_links,
 };
 EXPORT_SYMBOL_GPL(of_fwnode_ops);
diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h
index ebbc3bf03f95..6ab69871b06d 100644
--- a/include/linux/fwnode.h
+++ b/include/linux/fwnode.h
@@ -149,6 +149,7 @@ struct fwnode_operations {
 	int (*graph_parse_endpoint)(const struct fwnode_handle *fwnode,
 				    struct fwnode_endpoint *endpoint);
 	void __iomem *(*iomap)(struct fwnode_handle *fwnode, int index);
+	int (*irq_get)(const struct fwnode_handle *fwnode, unsigned int index);
 	int (*add_links)(struct fwnode_handle *fwnode);
 };
 
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/4] Shovel firmware specific code to appropriate locations
  2022-03-23 15:47 [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Sakari Ailus
                   ` (3 preceding siblings ...)
  2022-03-23 15:47 ` [PATCH v2 4/4] device property: Add irq_get to fwnode operation Sakari Ailus
@ 2022-03-23 16:20 ` Andy Shevchenko
  2022-03-30 11:01   ` Sakari Ailus
  4 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2022-03-23 16:20 UTC (permalink / raw)
  To: Sakari Ailus
  Cc: linux-acpi, devicetree, Rafael J.Wysocki, Daniel Scally,
	Heikki Krogerus, Rob Herring, Frank Rowand

On Wed, Mar 23, 2022 at 05:47:33PM +0200, Sakari Ailus wrote:
> Hi folks,
> 
> This set moves the implementation of recently added device property API
> functions to OF and ACPI frameworks, where the rest of such functionality
> resides.
> 
> Compile tested.

Thanks!

It would be nice to use --base when creating a cover letter.
Because it has been sent during merge window, I'm not sure
what base you have chosen for it (v5.17 or latest Linus'
master or ...).

> The dependencies can be found in Rafael's devprop branch now.
> 
> changes since v1:
> 
> - Drop wrongly placed Depends-on: tag from the first patch.
> 
> - Drop IS_ENABLED(CONFIG_OF_ADDRESS) && is_of_node(fwnode) check (3rd
>   patch).
> 
> Sakari Ailus (4):
>   device property: Convert device_{dma_supported,get_dma_attr} to fwnode
>   ACPI: property: Move acpi_fwnode_device_get_match_data() up
>   device property: Add iomap to fwnode operations
>   device property: Add irq_get to fwnode operation
> 
>  drivers/acpi/property.c | 36 +++++++++++++++++++++++++++++++----
>  drivers/base/property.c | 42 ++++++-----------------------------------
>  drivers/of/property.c   | 30 +++++++++++++++++++++++++++++
>  include/linux/fwnode.h  |  5 +++++
>  4 files changed, 73 insertions(+), 40 deletions(-)

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 3/4] device property: Add iomap to fwnode operations
  2022-03-23 15:47 ` [PATCH v2 3/4] device property: Add iomap to fwnode operations Sakari Ailus
@ 2022-03-23 22:37   ` kernel test robot
  2022-03-24  9:25     ` Andy Shevchenko
  0 siblings, 1 reply; 10+ messages in thread
From: kernel test robot @ 2022-03-23 22:37 UTC (permalink / raw)
  To: Sakari Ailus, linux-acpi
  Cc: kbuild-all, andriy.shevchenko, devicetree, Rafael J.Wysocki,
	Daniel Scally, Heikki Krogerus, Rob Herring, Frank Rowand

Hi Sakari,

I love your patch! Yet something to improve:

[auto build test ERROR on rafael-pm/linux-next]
[also build test ERROR on next-20220323]
[cannot apply to driver-core/driver-core-testing robh/for-next v5.17]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Sakari-Ailus/Shovel-firmware-specific-code-to-appropriate-locations/20220324-000256
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20220324/202203240648.x2upaXar-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/c9025bc8f89f50eaf9b9d628f1ac5d47b77c6bc8
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sakari-Ailus/Shovel-firmware-specific-code-to-appropriate-locations/20220324-000256
        git checkout c9025bc8f89f50eaf9b9d628f1ac5d47b77c6bc8
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=s390 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   s390-linux-ld: kernel/dma/coherent.o: in function `dma_init_coherent_memory':
   coherent.c:(.text+0x122): undefined reference to `memremap'
   s390-linux-ld: coherent.c:(.text+0x230): undefined reference to `memunmap'
   s390-linux-ld: kernel/dma/coherent.o: in function `dma_declare_coherent_memory':
   coherent.c:(.text+0x69c): undefined reference to `memunmap'
   s390-linux-ld: drivers/irqchip/irq-al-fic.o: in function `al_fic_init_dt':
   irq-al-fic.c:(.init.text+0x7e): undefined reference to `of_iomap'
   s390-linux-ld: irq-al-fic.c:(.init.text+0x502): undefined reference to `iounmap'
   s390-linux-ld: drivers/clk/clk-fixed-mmio.o: in function `fixed_mmio_clk_setup':
   clk-fixed-mmio.c:(.text+0x90): undefined reference to `of_iomap'
   s390-linux-ld: clk-fixed-mmio.c:(.text+0xcc): undefined reference to `iounmap'
   s390-linux-ld: drivers/clocksource/timer-of.o: in function `timer_of_init':
   timer-of.c:(.init.text+0x144): undefined reference to `of_iomap'
   s390-linux-ld: timer-of.c:(.init.text+0x76c): undefined reference to `iounmap'
   s390-linux-ld: drivers/clocksource/timer-of.o: in function `timer_of_cleanup':
   timer-of.c:(.init.text+0x960): undefined reference to `iounmap'
   s390-linux-ld: drivers/clocksource/timer-microchip-pit64b.o: in function `mchp_pit64b_dt_init_timer':
   timer-microchip-pit64b.c:(.init.text+0x67c): undefined reference to `of_iomap'
   s390-linux-ld: timer-microchip-pit64b.c:(.init.text+0xcd2): undefined reference to `iounmap'
   s390-linux-ld: drivers/of/property.o: in function `of_fwnode_iomap':
>> property.c:(.text+0x1b8c): undefined reference to `of_iomap'

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 3/4] device property: Add iomap to fwnode operations
  2022-03-23 22:37   ` kernel test robot
@ 2022-03-24  9:25     ` Andy Shevchenko
  2022-03-30  7:44       ` Sakari Ailus
  0 siblings, 1 reply; 10+ messages in thread
From: Andy Shevchenko @ 2022-03-24  9:25 UTC (permalink / raw)
  To: kernel test robot
  Cc: Sakari Ailus, linux-acpi, kbuild-all, devicetree,
	Rafael J.Wysocki, Daniel Scally, Heikki Krogerus, Rob Herring,
	Frank Rowand

On Thu, Mar 24, 2022 at 06:37:19AM +0800, kernel test robot wrote:
> Hi Sakari,
> 
> I love your patch! Yet something to improve:

...

> compiler: s390-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://github.com/0day-ci/linux/commit/c9025bc8f89f50eaf9b9d628f1ac5d47b77c6bc8
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review Sakari-Ailus/Shovel-firmware-specific-code-to-appropriate-locations/20220324-000256
>         git checkout c9025bc8f89f50eaf9b9d628f1ac5d47b77c6bc8
>         # save the config file to linux build tree
>         mkdir build_dir
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=s390 SHELL=/bin/bash
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> All errors (new ones prefixed by >>):

Seems it needs some ifdeffery to be added.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 3/4] device property: Add iomap to fwnode operations
  2022-03-24  9:25     ` Andy Shevchenko
@ 2022-03-30  7:44       ` Sakari Ailus
  0 siblings, 0 replies; 10+ messages in thread
From: Sakari Ailus @ 2022-03-30  7:44 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: kernel test robot, linux-acpi, kbuild-all, devicetree,
	Rafael J.Wysocki, Daniel Scally, Heikki Krogerus, Rob Herring,
	Frank Rowand

On Thu, Mar 24, 2022 at 11:25:36AM +0200, Andy Shevchenko wrote:
> On Thu, Mar 24, 2022 at 06:37:19AM +0800, kernel test robot wrote:
> > Hi Sakari,
> > 
> > I love your patch! Yet something to improve:
> 
> ...
> 
> > compiler: s390-linux-gcc (GCC) 11.2.0
> > reproduce (this is a W=1 build):
> >         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >         chmod +x ~/bin/make.cross
> >         # https://github.com/0day-ci/linux/commit/c9025bc8f89f50eaf9b9d628f1ac5d47b77c6bc8
> >         git remote add linux-review https://github.com/0day-ci/linux
> >         git fetch --no-tags linux-review Sakari-Ailus/Shovel-firmware-specific-code-to-appropriate-locations/20220324-000256
> >         git checkout c9025bc8f89f50eaf9b9d628f1ac5d47b77c6bc8
> >         # save the config file to linux build tree
> >         mkdir build_dir
> >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=s390 SHELL=/bin/bash
> > 
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kernel test robot <lkp@intel.com>
> > 
> > All errors (new ones prefixed by >>):
> 
> Seems it needs some ifdeffery to be added.

Yeah. What surprises me though is there seem to be quite a few other
sources of such warnings, too.

-- 
Sakari Ailus

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/4] Shovel firmware specific code to appropriate locations
  2022-03-23 16:20 ` [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Andy Shevchenko
@ 2022-03-30 11:01   ` Sakari Ailus
  0 siblings, 0 replies; 10+ messages in thread
From: Sakari Ailus @ 2022-03-30 11:01 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: linux-acpi, devicetree, Rafael J.Wysocki, Daniel Scally,
	Heikki Krogerus, Rob Herring, Frank Rowand

On Wed, Mar 23, 2022 at 06:20:43PM +0200, Andy Shevchenko wrote:
> On Wed, Mar 23, 2022 at 05:47:33PM +0200, Sakari Ailus wrote:
> > Hi folks,
> > 
> > This set moves the implementation of recently added device property API
> > functions to OF and ACPI frameworks, where the rest of such functionality
> > resides.
> > 
> > Compile tested.
> 
> Thanks!
> 
> It would be nice to use --base when creating a cover letter.
> Because it has been sent during merge window, I'm not sure
> what base you have chosen for it (v5.17 or latest Linus'
> master or ...).

As noted below, Rafael's devprop branch. But I'll use --base on the next
time. It seems v3 will be needed in any case.


> 
> > The dependencies can be found in Rafael's devprop branch now.
> > 
> > changes since v1:
> > 
> > - Drop wrongly placed Depends-on: tag from the first patch.
> > 
> > - Drop IS_ENABLED(CONFIG_OF_ADDRESS) && is_of_node(fwnode) check (3rd
> >   patch).
> > 
> > Sakari Ailus (4):
> >   device property: Convert device_{dma_supported,get_dma_attr} to fwnode
> >   ACPI: property: Move acpi_fwnode_device_get_match_data() up
> >   device property: Add iomap to fwnode operations
> >   device property: Add irq_get to fwnode operation
> > 
> >  drivers/acpi/property.c | 36 +++++++++++++++++++++++++++++++----
> >  drivers/base/property.c | 42 ++++++-----------------------------------
> >  drivers/of/property.c   | 30 +++++++++++++++++++++++++++++
> >  include/linux/fwnode.h  |  5 +++++
> >  4 files changed, 73 insertions(+), 40 deletions(-)
> 
> -- 
> With Best Regards,
> Andy Shevchenko
> 
> 

-- 
Sakari Ailus

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-03-30 11:01 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-23 15:47 [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Sakari Ailus
2022-03-23 15:47 ` [PATCH v2 1/4] device property: Convert device_{dma_supported,get_dma_attr} to fwnode Sakari Ailus
2022-03-23 15:47 ` [PATCH v2 2/4] ACPI: property: Move acpi_fwnode_device_get_match_data() up Sakari Ailus
2022-03-23 15:47 ` [PATCH v2 3/4] device property: Add iomap to fwnode operations Sakari Ailus
2022-03-23 22:37   ` kernel test robot
2022-03-24  9:25     ` Andy Shevchenko
2022-03-30  7:44       ` Sakari Ailus
2022-03-23 15:47 ` [PATCH v2 4/4] device property: Add irq_get to fwnode operation Sakari Ailus
2022-03-23 16:20 ` [PATCH v2 0/4] Shovel firmware specific code to appropriate locations Andy Shevchenko
2022-03-30 11:01   ` Sakari Ailus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).