2019-04-08 15:05:16

by Yue Haibing

[permalink] [raw]
Subject: [PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

From: YueHaibing <[email protected]>

When building with CONFIG_SPI_MEM is not set
gc warns this:

drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op':
spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op'

Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller")
Signed-off-by: YueHaibing <[email protected]>
---
include/linux/spi/spi-mem.h | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h
index c845cd6..1941b84 100644
--- a/include/linux/spi/spi-mem.h
+++ b/include/linux/spi/spi-mem.h
@@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
const struct spi_mem_op *op,
struct sg_table *sg);
+
+bool spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op);
+
#else
static inline int
spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
@@ -310,6 +314,13 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
struct sg_table *sg)
{
}
+
+bool spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op)
+{
+ return false;
+}
+
#endif /* CONFIG_SPI_MEM */

int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op);
@@ -341,9 +352,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv,

void spi_mem_driver_unregister(struct spi_mem_driver *drv);

-bool spi_mem_default_supports_op(struct spi_mem *mem,
- const struct spi_mem_op *op);
-
#define spi_mem_driver_register(__drv) \
spi_mem_driver_register_with_owner(__drv, THIS_MODULE)

--
2.7.4



2019-04-09 16:31:18

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

On 08/04/19 8:09 PM, Yue Haibing wrote:
> From: YueHaibing <[email protected]>
>
> When building with CONFIG_SPI_MEM is not set
> gc warns this:
>
> drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op':
> spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op'
>
> Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller")
> Signed-off-by: YueHaibing <[email protected]>
> ---
> include/linux/spi/spi-mem.h | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h
> index c845cd6..1941b84 100644
> --- a/include/linux/spi/spi-mem.h
> +++ b/include/linux/spi/spi-mem.h
> @@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
> void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
> const struct spi_mem_op *op,
> struct sg_table *sg);
> +
> +bool spi_mem_default_supports_op(struct spi_mem *mem,
> + const struct spi_mem_op *op);
> +
> #else
> static inline int
> spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
> @@ -310,6 +314,13 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
> struct sg_table *sg)
> {
> }
> +
> +bool spi_mem_default_supports_op(struct spi_mem *mem,
> + const struct spi_mem_op *op)

This needs to be declared static inline to avoid multiple definitions.
Right?

> +{
> + return false;
> +}
> +
> #endif /* CONFIG_SPI_MEM */
>
> int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op);
> @@ -341,9 +352,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv,
>
> void spi_mem_driver_unregister(struct spi_mem_driver *drv);
>
> -bool spi_mem_default_supports_op(struct spi_mem *mem,
> - const struct spi_mem_op *op);
> -
> #define spi_mem_driver_register(__drv) \
> spi_mem_driver_register_with_owner(__drv, THIS_MODULE)
>
>

--
Regards
Vignesh

2019-04-10 03:36:53

by Yue Haibing

[permalink] [raw]
Subject: Re: [PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

On 2019/4/10 0:30, Vignesh Raghavendra wrote:
> On 08/04/19 8:09 PM, Yue Haibing wrote:
>> From: YueHaibing <[email protected]>
>>
>> When building with CONFIG_SPI_MEM is not set
>> gc warns this:
>>
>> drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op':
>> spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op'
>>
>> Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller")
>> Signed-off-by: YueHaibing <[email protected]>
>> ---
>> include/linux/spi/spi-mem.h | 14 +++++++++++---
>> 1 file changed, 11 insertions(+), 3 deletions(-)
>>
>> diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h
>> index c845cd6..1941b84 100644
>> --- a/include/linux/spi/spi-mem.h
>> +++ b/include/linux/spi/spi-mem.h
>> @@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
>> void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
>> const struct spi_mem_op *op,
>> struct sg_table *sg);
>> +
>> +bool spi_mem_default_supports_op(struct spi_mem *mem,
>> + const struct spi_mem_op *op);
>> +
>> #else
>> static inline int
>> spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
>> @@ -310,6 +314,13 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
>> struct sg_table *sg)
>> {
>> }
>> +
>> +bool spi_mem_default_supports_op(struct spi_mem *mem,
>> + const struct spi_mem_op *op)
>
> This needs to be declared static inline to avoid multiple definitions.
> Right?

Indeed, thanks!

>
>> +{
>> + return false;
>> +}
>> +
>> #endif /* CONFIG_SPI_MEM */
>>
>> int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op);
>> @@ -341,9 +352,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv,
>>
>> void spi_mem_driver_unregister(struct spi_mem_driver *drv);
>>
>> -bool spi_mem_default_supports_op(struct spi_mem *mem,
>> - const struct spi_mem_op *op);
>> -
>> #define spi_mem_driver_register(__drv) \
>> spi_mem_driver_register_with_owner(__drv, THIS_MODULE)
>>
>>
>

2019-04-10 05:48:51

by Naga Sureshkumar Relli

[permalink] [raw]
Subject: RE: [PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

Hi Vignesh,

> -----Original Message-----
> From: [email protected] <[email protected]> On Behalf Of
> YueHaibing
> Sent: Wednesday, April 10, 2019 9:03 AM
> To: Vignesh Raghavendra <[email protected]>; [email protected]; Naga Sureshkumar Relli
> <[email protected]>
> Cc: [email protected]; [email protected]
> Subject: Re: [PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM
>
> On 2019/4/10 0:30, Vignesh Raghavendra wrote:
> > On 08/04/19 8:09 PM, Yue Haibing wrote:
> >> From: YueHaibing <[email protected]>
> >>
> >> When building with CONFIG_SPI_MEM is not set gc warns this:
> >>
> >> drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op':
> >> spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op'
> >>
> >> Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI
> >> controller")
> >> Signed-off-by: YueHaibing <[email protected]>
> >> ---
> >> include/linux/spi/spi-mem.h | 14 +++++++++++---
> >> 1 file changed, 11 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/include/linux/spi/spi-mem.h
> >> b/include/linux/spi/spi-mem.h index c845cd6..1941b84 100644
> >> --- a/include/linux/spi/spi-mem.h
> >> +++ b/include/linux/spi/spi-mem.h
> >> @@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct
> >> spi_controller *ctlr, void spi_controller_dma_unmap_mem_op_data(struct spi_controller
> *ctlr,
> >> const struct spi_mem_op *op,
> >> struct sg_table *sg);
> >> +
> >> +bool spi_mem_default_supports_op(struct spi_mem *mem,
> >> + const struct spi_mem_op *op);
> >> +
> >> #else
> >> static inline int
> >> spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr, @@
> >> -310,6 +314,13 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
> >> struct sg_table *sg)
> >> {
> >> }
> >> +
> >> +bool spi_mem_default_supports_op(struct spi_mem *mem,
> >> + const struct spi_mem_op *op)
> >
> > This needs to be declared static inline to avoid multiple definitions.
> > Right?
>
> Indeed, thanks!
If we declare this as static inline, then we can't access that in zynq-qspi driver.
This is the error I am getting.
In file included from drivers/spi/spi-zynq-qspi.c:19:0:
./include/linux/spi/spi-mem.h:298:20: warning: ‘spi_mem_default_supports_op’ used but never defined
static inline bool spi_mem_default_supports_op(struct spi_mem *mem,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-zynq-qspi.c: In function ‘zynq_qspi_supports_op’:
./include/linux/spi/spi-mem.h:298:20: error: inlining failed in call to always_inline ‘spi_mem_default_supports_op’: function body not available
drivers/spi/spi-zynq-qspi.c:223:7: note: called from here
if (!spi_mem_default_supports_op(mem, op))

Thanks,
Naga Sureshkumar Relli
>
> >
> >> +{
> >> + return false;
> >> +}
> >> +
> >> #endif /* CONFIG_SPI_MEM */
> >>
> >> int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op
> >> *op); @@ -341,9 +352,6 @@ int
> >> spi_mem_driver_register_with_owner(struct spi_mem_driver *drv,
> >>
> >> void spi_mem_driver_unregister(struct spi_mem_driver *drv);
> >>
> >> -bool spi_mem_default_supports_op(struct spi_mem *mem,
> >> - const struct spi_mem_op *op);
> >> -
> >> #define spi_mem_driver_register(__drv) \
> >> spi_mem_driver_register_with_owner(__drv, THIS_MODULE)
> >>
> >>
> >

2019-04-10 05:52:02

by Naga Sureshkumar Relli

[permalink] [raw]
Subject: RE: [PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

Hi Vignesh,

> -----Original Message-----
> From: [email protected] <[email protected]> On Behalf Of
> Naga Sureshkumar Relli
> Sent: Wednesday, April 10, 2019 10:53 AM
> To: YueHaibing <[email protected]>; Vignesh Raghavendra <[email protected]>;
> [email protected]
> Cc: [email protected]; [email protected]
> Subject: RE: [PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM
>
> Hi Vignesh,
>
> > -----Original Message-----
> > From: [email protected]
> > <[email protected]> On Behalf Of YueHaibing
> > Sent: Wednesday, April 10, 2019 9:03 AM
> > To: Vignesh Raghavendra <[email protected]>; [email protected]; Naga
> > Sureshkumar Relli <[email protected]>
> > Cc: [email protected]; [email protected]
> > Subject: Re: [PATCH] spi: spi-mem: Fix build error without
> > CONFIG_SPI_MEM
> >
> > On 2019/4/10 0:30, Vignesh Raghavendra wrote:
> > > On 08/04/19 8:09 PM, Yue Haibing wrote:
> > >> From: YueHaibing <[email protected]>
> > >>
> > >> When building with CONFIG_SPI_MEM is not set gc warns this:
> > >>
> > >> drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op':
> > >> spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op'
> > >>
> > >> Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI
> > >> controller")
> > >> Signed-off-by: YueHaibing <[email protected]>
> > >> ---
> > >> include/linux/spi/spi-mem.h | 14 +++++++++++---
> > >> 1 file changed, 11 insertions(+), 3 deletions(-)
> > >>
> > >> diff --git a/include/linux/spi/spi-mem.h
> > >> b/include/linux/spi/spi-mem.h index c845cd6..1941b84 100644
> > >> --- a/include/linux/spi/spi-mem.h
> > >> +++ b/include/linux/spi/spi-mem.h
> > >> @@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct
> > >> spi_controller *ctlr, void
> > >> spi_controller_dma_unmap_mem_op_data(struct spi_controller
> > *ctlr,
> > >> const struct spi_mem_op *op,
> > >> struct sg_table *sg);
> > >> +
> > >> +bool spi_mem_default_supports_op(struct spi_mem *mem,
> > >> + const struct spi_mem_op *op);
> > >> +
> > >> #else
> > >> static inline int
> > >> spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr, @@
> > >> -310,6 +314,13 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller
> *ctlr,
> > >> struct sg_table *sg)
> > >> {
> > >> }
> > >> +
> > >> +bool spi_mem_default_supports_op(struct spi_mem *mem,
> > >> + const struct spi_mem_op *op)
> > >
> > > This needs to be declared static inline to avoid multiple definitions.
> > > Right?
> >
> > Indeed, thanks!
Please ignore this. I did mistake in declaring.
It compiled with out any issues using static inline.

Thanks,
Naga Sureshkumar Relli

> If we declare this as static inline, then we can't access that in zynq-qspi driver.
> This is the error I am getting.
> In file included from drivers/spi/spi-zynq-qspi.c:19:0:
> ./include/linux/spi/spi-mem.h:298:20: warning: ‘spi_mem_default_supports_op’ used but
> never defined static inline bool spi_mem_default_supports_op(struct spi_mem *mem,
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/spi/spi-zynq-qspi.c: In function ‘zynq_qspi_supports_op’:
> ./include/linux/spi/spi-mem.h:298:20: error: inlining failed in call to always_inline
> ‘spi_mem_default_supports_op’: function body not available
> drivers/spi/spi-zynq-qspi.c:223:7: note: called from here
> if (!spi_mem_default_supports_op(mem, op))
>
> Thanks,
> Naga Sureshkumar Relli
> >
> > >
> > >> +{
> > >> + return false;
> > >> +}
> > >> +
> > >> #endif /* CONFIG_SPI_MEM */
> > >>
> > >> int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op
> > >> *op); @@ -341,9 +352,6 @@ int
> > >> spi_mem_driver_register_with_owner(struct spi_mem_driver *drv,
> > >>
> > >> void spi_mem_driver_unregister(struct spi_mem_driver *drv);
> > >>
> > >> -bool spi_mem_default_supports_op(struct spi_mem *mem,
> > >> - const struct spi_mem_op *op);
> > >> -
> > >> #define spi_mem_driver_register(__drv) \
> > >> spi_mem_driver_register_with_owner(__drv, THIS_MODULE)
> > >>
> > >>
> > >

2019-04-10 13:15:16

by Yue Haibing

[permalink] [raw]
Subject: [PATCH v2] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

From: YueHaibing <[email protected]>

When building with CONFIG_SPI_MEM is not set
gc warns this:

drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op':
spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op'

Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller")
Signed-off-by: YueHaibing <[email protected]>
---
v2: make stub helper static inline
---
include/linux/spi/spi-mem.h | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h
index c845cd6..3d57db8 100644
--- a/include/linux/spi/spi-mem.h
+++ b/include/linux/spi/spi-mem.h
@@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
const struct spi_mem_op *op,
struct sg_table *sg);
+
+bool spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op);
+
#else
static inline int
spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
@@ -310,6 +314,14 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
struct sg_table *sg)
{
}
+
+static inline bool
+spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op)
+{
+ return false;
+}
+
#endif /* CONFIG_SPI_MEM */

int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op);
@@ -341,9 +353,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv,

void spi_mem_driver_unregister(struct spi_mem_driver *drv);

-bool spi_mem_default_supports_op(struct spi_mem *mem,
- const struct spi_mem_op *op);
-
#define spi_mem_driver_register(__drv) \
spi_mem_driver_register_with_owner(__drv, THIS_MODULE)

--
2.7.4


2019-04-10 13:21:28

by Mark Brown

[permalink] [raw]
Subject: Applied "spi: spi-mem: Fix build error without CONFIG_SPI_MEM" to the spi tree

The patch

spi: spi-mem: Fix build error without CONFIG_SPI_MEM

has been applied to the spi tree at

https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

From 0e530e4eba5e9003af83c6afda833c64c7fcae08 Mon Sep 17 00:00:00 2001
From: YueHaibing <[email protected]>
Date: Mon, 8 Apr 2019 22:39:49 +0800
Subject: [PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

When building with CONFIG_SPI_MEM is not set
gc warns this:

drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op':
spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op'

Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller")
Signed-off-by: YueHaibing <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
include/linux/spi/spi-mem.h | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h
index c845cd6e22ba..1941b845aa15 100644
--- a/include/linux/spi/spi-mem.h
+++ b/include/linux/spi/spi-mem.h
@@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
const struct spi_mem_op *op,
struct sg_table *sg);
+
+bool spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op);
+
#else
static inline int
spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
@@ -310,6 +314,13 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
struct sg_table *sg)
{
}
+
+bool spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op)
+{
+ return false;
+}
+
#endif /* CONFIG_SPI_MEM */

int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op);
@@ -341,9 +352,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv,

void spi_mem_driver_unregister(struct spi_mem_driver *drv);

-bool spi_mem_default_supports_op(struct spi_mem *mem,
- const struct spi_mem_op *op);
-
#define spi_mem_driver_register(__drv) \
spi_mem_driver_register_with_owner(__drv, THIS_MODULE)

--
2.20.1

2019-04-10 15:54:40

by Yue Haibing

[permalink] [raw]
Subject: Re: [PATCH v2] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

Well, Naga Sureshkumar Relli has post new patch based this, Pls ignore this.

On 2019/4/10 20:13, Yue Haibing wrote:
> From: YueHaibing <[email protected]>
>
> When building with CONFIG_SPI_MEM is not set
> gc warns this:
>
> drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op':
> spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op'
>
> Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller")
> Signed-off-by: YueHaibing <[email protected]>
> ---
> v2: make stub helper static inline
> ---
> include/linux/spi/spi-mem.h | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h
> index c845cd6..3d57db8 100644
> --- a/include/linux/spi/spi-mem.h
> +++ b/include/linux/spi/spi-mem.h
> @@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
> void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
> const struct spi_mem_op *op,
> struct sg_table *sg);
> +
> +bool spi_mem_default_supports_op(struct spi_mem *mem,
> + const struct spi_mem_op *op);
> +
> #else
> static inline int
> spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
> @@ -310,6 +314,14 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
> struct sg_table *sg)
> {
> }
> +
> +static inline bool
> +spi_mem_default_supports_op(struct spi_mem *mem,
> + const struct spi_mem_op *op)
> +{
> + return false;
> +}
> +
> #endif /* CONFIG_SPI_MEM */
>
> int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op);
> @@ -341,9 +353,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv,
>
> void spi_mem_driver_unregister(struct spi_mem_driver *drv);
>
> -bool spi_mem_default_supports_op(struct spi_mem *mem,
> - const struct spi_mem_op *op);
> -
> #define spi_mem_driver_register(__drv) \
> spi_mem_driver_register_with_owner(__drv, THIS_MODULE)
>
>

2019-05-02 02:22:19

by Mark Brown

[permalink] [raw]
Subject: Applied "spi: spi-mem: Fix build error without CONFIG_SPI_MEM" to the spi tree

The patch

spi: spi-mem: Fix build error without CONFIG_SPI_MEM

has been applied to the spi tree at

https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

From 72e6841608b9ce7e04515ed43693b2878936c93a Mon Sep 17 00:00:00 2001
From: YueHaibing <[email protected]>
Date: Mon, 8 Apr 2019 22:39:49 +0800
Subject: [PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

When building with CONFIG_SPI_MEM is not set
gc warns this:

drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op':
spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op'

Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller")
Signed-off-by: YueHaibing <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
include/linux/spi/spi-mem.h | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h
index c845cd6e22ba..1941b845aa15 100644
--- a/include/linux/spi/spi-mem.h
+++ b/include/linux/spi/spi-mem.h
@@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
const struct spi_mem_op *op,
struct sg_table *sg);
+
+bool spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op);
+
#else
static inline int
spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
@@ -310,6 +314,13 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
struct sg_table *sg)
{
}
+
+bool spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op)
+{
+ return false;
+}
+
#endif /* CONFIG_SPI_MEM */

int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op);
@@ -341,9 +352,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv,

void spi_mem_driver_unregister(struct spi_mem_driver *drv);

-bool spi_mem_default_supports_op(struct spi_mem *mem,
- const struct spi_mem_op *op);
-
#define spi_mem_driver_register(__drv) \
spi_mem_driver_register_with_owner(__drv, THIS_MODULE)

--
2.20.1