All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/16] 2nd set of IIO export namespaces
@ 2022-01-30 20:56 Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 01/16] iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace Jonathan Cameron
                   ` (17 more replies)
  0 siblings, 18 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio
  Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron,
	Himanshu Jha, Song Qiang, Tomasz Duszynski, Song Bao Hua,
	Paul Cercueil, Alexandre Belloni, William Markezana,
	Ludovic Tancerel, Renato Lui Geh, Michael Hennerich

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Whilst I'm still looking for additional review on the first set,
I'll take the quiet as meaning no one objects and send out a second
set.  Note that I don't have anyone cc'd on some of these because
I couldn't immediately figure out who was still active and familiar
with the drivers.  As these should be simple to review, please take
a look at as many as you have time for!

Here's the reasoning as per the first set cover letter.
Note that we have some clashes with patches that I'd like to clean
up the handling of dev_pm_ops and CONFIG_PM* guards so for now
I've dropped those cases from this series.

https://lwn.net/Articles/760045/ provides a good overview of this feature
and why it might be used.  In this particular case we fall under the multi
module case.  For each group of modules, I've moved the exports into
an independent namespace.

Whilst I'm not entirely sure it is worth the noise of moving the main
IIO exports into a namespace, it is definitely worthwhile for these small
clusters of related modules (typically a core + i2c and spi modules).

I've just done those within drivers/accel (including all of st-sensors as
I did not want to do that piecemeal) as an initial set to get feedback on
what people think of the approach and in particular naming of the namespaces.

As you can see it is a straight forward change to makes so I'll do the
rest of the IIO drivers once we are agreed on the generic details.
Note that I'll be expecting this for any new cases of this pattern going
forwards.

Includes a small diversion in st-sensors where we had a bunch of duplicated
MODULE_* macros for some of the core modules which were made up of multiple
c files.

Cc: Himanshu Jha <himanshujha199640@gmail.com>
Cc: Song Qiang <songqiang1304521@gmail.com>
Cc: Tomasz Duszynski <tduszyns@gmail.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Song Bao Hua (Barry Song) <song.bao.hua@hisilicon.com>
Cc: Paul Cercueil <paul@crapouillou.net>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: William Markezana <william.markezana@meas-spec.com>
Cc: Ludovic Tancerel <ludovic.tancerel@maplehightech.com>
Cc: Renato Lui Geh <renatogeh@gmail.com>
Cc: Michael Hennerich <Michael.Hennerich@analog.com>


Jonathan Cameron (16):
  iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace
  iio:adc:ad7091r: Move exports into IIO_AD7091R namespace.
  iio:adc:ad76060: Move exports into IIO_AD7606 namespace.
  iio:common:meas-spec: Move exports into IIO_MEAS_SPEC_SENSORS
  iio:common:ssp_sensors: Move exports into IIO_SSP_SENSORS namespace
  iio:dac:ad5592r: Move exports into IIO_AD5592R namespace
  iio:dac:ad5686: Move exports into IIO_AD5686 namespace
  iio:imu:adis: Move exports into IIO_ADISLIB namespace
  iio:pressure:zpa2326: Move exports into IIO_ZPA2326 namespace
  iio:pressure:ms5611: Move exports into IIO_MS5611 namespace
  iio:pressure:mpl115: Move exports into IIO_MPL115 namespace
  iio:magnetometer:rm3100: Move exports to IIO_RM3100 namespace
  iio:magnetometer:bmc150: Move exports to IIO_BMC150_MAGN namespace
  iio:magnetometer:hmc5843: Move exports to IIO_HMC5843 namespace
  iio:light:st_uvis25: Move exports to IIO_UVIS25 namespace
  iio:chemical:bme680: Move exports to IIO_BME680 namespace

 drivers/iio/accel/adis16201.c                 |  1 +
 drivers/iio/accel/adis16209.c                 |  1 +
 drivers/iio/accel/ssp_accel_sensor.c          |  1 +
 drivers/iio/adc/ad7091r-base.c                |  4 ++--
 drivers/iio/adc/ad7091r5.c                    |  1 +
 drivers/iio/adc/ad7124.c                      |  1 +
 drivers/iio/adc/ad7192.c                      |  1 +
 drivers/iio/adc/ad7606.c                      |  4 ++--
 drivers/iio/adc/ad7606_par.c                  |  1 +
 drivers/iio/adc/ad7606_spi.c                  |  1 +
 drivers/iio/adc/ad7780.c                      |  1 +
 drivers/iio/adc/ad7791.c                      |  1 +
 drivers/iio/adc/ad7793.c                      |  1 +
 drivers/iio/adc/ad_sigma_delta.c              | 20 ++++++++--------
 drivers/iio/chemical/bme680_core.c            |  4 ++--
 drivers/iio/chemical/bme680_i2c.c             |  1 +
 drivers/iio/chemical/bme680_spi.c             |  1 +
 .../iio/common/ms_sensors/ms_sensors_i2c.c    | 24 +++++++++----------
 drivers/iio/common/ssp_sensors/ssp_dev.c      | 10 ++++----
 drivers/iio/common/ssp_sensors/ssp_iio.c      |  7 +++---
 drivers/iio/dac/ad5592r-base.c                |  4 ++--
 drivers/iio/dac/ad5592r.c                     |  1 +
 drivers/iio/dac/ad5593r.c                     |  1 +
 drivers/iio/dac/ad5686-spi.c                  |  1 +
 drivers/iio/dac/ad5686.c                      |  4 ++--
 drivers/iio/dac/ad5696-i2c.c                  |  1 +
 drivers/iio/gyro/adis16136.c                  |  1 +
 drivers/iio/gyro/adis16260.c                  |  1 +
 drivers/iio/gyro/ssp_gyro_sensor.c            |  1 +
 drivers/iio/humidity/htu21.c                  |  1 +
 drivers/iio/imu/adis.c                        | 20 ++++++++--------
 drivers/iio/imu/adis16400.c                   |  1 +
 drivers/iio/imu/adis16460.c                   |  1 +
 drivers/iio/imu/adis16475.c                   |  1 +
 drivers/iio/imu/adis16480.c                   |  1 +
 drivers/iio/imu/adis_buffer.c                 |  4 ++--
 drivers/iio/imu/adis_trigger.c                |  2 +-
 drivers/iio/light/st_uvis25_core.c            |  4 ++--
 drivers/iio/light/st_uvis25_i2c.c             |  1 +
 drivers/iio/light/st_uvis25_spi.c             |  1 +
 drivers/iio/magnetometer/bmc150_magn.c        |  8 +++----
 drivers/iio/magnetometer/bmc150_magn_i2c.c    |  1 +
 drivers/iio/magnetometer/bmc150_magn_spi.c    |  1 +
 drivers/iio/magnetometer/hmc5843_core.c       |  8 +++----
 drivers/iio/magnetometer/hmc5843_i2c.c        |  1 +
 drivers/iio/magnetometer/hmc5843_spi.c        |  1 +
 drivers/iio/magnetometer/rm3100-core.c        |  8 +++----
 drivers/iio/magnetometer/rm3100-i2c.c         |  1 +
 drivers/iio/magnetometer/rm3100-spi.c         |  1 +
 drivers/iio/pressure/mpl115.c                 |  2 +-
 drivers/iio/pressure/mpl115_i2c.c             |  1 +
 drivers/iio/pressure/mpl115_spi.c             |  1 +
 drivers/iio/pressure/ms5611_core.c            |  4 ++--
 drivers/iio/pressure/ms5611_i2c.c             |  1 +
 drivers/iio/pressure/ms5611_spi.c             |  1 +
 drivers/iio/pressure/ms5637.c                 |  1 +
 drivers/iio/pressure/zpa2326.c                | 12 +++++-----
 drivers/iio/pressure/zpa2326_i2c.c            |  1 +
 drivers/iio/pressure/zpa2326_spi.c            |  1 +
 drivers/iio/temperature/tsys01.c              |  1 +
 drivers/iio/temperature/tsys02d.c             |  1 +
 drivers/staging/iio/accel/adis16203.c         |  1 +
 drivers/staging/iio/accel/adis16240.c         |  1 +
 63 files changed, 121 insertions(+), 76 deletions(-)

-- 
2.35.1


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

* [PATCH 01/16] iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 02/16] iio:adc:ad7091r: Move exports into IIO_AD7091R namespace Jonathan Cameron
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio
  Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron,
	Renato Lui Geh, Michael Hennerich

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the core/library functions into a specific namespace and import
that into the various specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Renato Lui Geh <renatogeh@gmail.com>
Cc: Michael Hennerich <Michael.Hennerich@analog.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/iio/adc/ad7124.c         |  1 +
 drivers/iio/adc/ad7192.c         |  1 +
 drivers/iio/adc/ad7780.c         |  1 +
 drivers/iio/adc/ad7791.c         |  1 +
 drivers/iio/adc/ad7793.c         |  1 +
 drivers/iio/adc/ad_sigma_delta.c | 20 ++++++++++----------
 6 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/drivers/iio/adc/ad7124.c b/drivers/iio/adc/ad7124.c
index bc2cfa5f9592..998a342d51a6 100644
--- a/drivers/iio/adc/ad7124.c
+++ b/drivers/iio/adc/ad7124.c
@@ -970,3 +970,4 @@ module_spi_driver(ad71124_driver);
 MODULE_AUTHOR("Stefan Popa <stefan.popa@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD7124 SPI driver");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_AD_SIGMA_DELTA);
diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c
index 47d3f56edcbc..770b4e59238f 100644
--- a/drivers/iio/adc/ad7192.c
+++ b/drivers/iio/adc/ad7192.c
@@ -1048,3 +1048,4 @@ module_spi_driver(ad7192_driver);
 MODULE_AUTHOR("Michael Hennerich <michael.hennerich@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD7190, AD7192, AD7193, AD7195 ADC");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD_SIGMA_DELTA);
diff --git a/drivers/iio/adc/ad7780.c b/drivers/iio/adc/ad7780.c
index b6e8c8abf6f4..a813fe04787c 100644
--- a/drivers/iio/adc/ad7780.c
+++ b/drivers/iio/adc/ad7780.c
@@ -375,3 +375,4 @@ module_spi_driver(ad7780_driver);
 MODULE_AUTHOR("Michael Hennerich <michael.hennerich@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD7780 and similar ADCs");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD_SIGMA_DELTA);
diff --git a/drivers/iio/adc/ad7791.c b/drivers/iio/adc/ad7791.c
index cb579aa89f39..fee8d129a5f0 100644
--- a/drivers/iio/adc/ad7791.c
+++ b/drivers/iio/adc/ad7791.c
@@ -474,3 +474,4 @@ module_spi_driver(ad7791_driver);
 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
 MODULE_DESCRIPTION("Analog Devices AD7787/AD7788/AD7789/AD7790/AD7791 ADC driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD_SIGMA_DELTA);
diff --git a/drivers/iio/adc/ad7793.c b/drivers/iio/adc/ad7793.c
index 0e7ab3fb072a..5f8cb9aaac70 100644
--- a/drivers/iio/adc/ad7793.c
+++ b/drivers/iio/adc/ad7793.c
@@ -867,3 +867,4 @@ module_spi_driver(ad7793_driver);
 MODULE_AUTHOR("Michael Hennerich <michael.hennerich@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD7793 and similar ADCs");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD_SIGMA_DELTA);
diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
index cd418bd8bd87..ebcd52526cac 100644
--- a/drivers/iio/adc/ad_sigma_delta.c
+++ b/drivers/iio/adc/ad_sigma_delta.c
@@ -42,7 +42,7 @@ void ad_sd_set_comm(struct ad_sigma_delta *sigma_delta, uint8_t comm)
 	 * to select the channel */
 	sigma_delta->comm = comm & AD_SD_COMM_CHAN_MASK;
 }
-EXPORT_SYMBOL_GPL(ad_sd_set_comm);
+EXPORT_SYMBOL_NS_GPL(ad_sd_set_comm, IIO_AD_SIGMA_DELTA);
 
 /**
  * ad_sd_write_reg() - Write a register
@@ -94,7 +94,7 @@ int ad_sd_write_reg(struct ad_sigma_delta *sigma_delta, unsigned int reg,
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(ad_sd_write_reg);
+EXPORT_SYMBOL_NS_GPL(ad_sd_write_reg, IIO_AD_SIGMA_DELTA);
 
 static int ad_sd_read_reg_raw(struct ad_sigma_delta *sigma_delta,
 	unsigned int reg, unsigned int size, uint8_t *val)
@@ -171,7 +171,7 @@ int ad_sd_read_reg(struct ad_sigma_delta *sigma_delta,
 out:
 	return ret;
 }
-EXPORT_SYMBOL_GPL(ad_sd_read_reg);
+EXPORT_SYMBOL_NS_GPL(ad_sd_read_reg, IIO_AD_SIGMA_DELTA);
 
 /**
  * ad_sd_reset() - Reset the serial interface
@@ -199,7 +199,7 @@ int ad_sd_reset(struct ad_sigma_delta *sigma_delta,
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(ad_sd_reset);
+EXPORT_SYMBOL_NS_GPL(ad_sd_reset, IIO_AD_SIGMA_DELTA);
 
 int ad_sd_calibrate(struct ad_sigma_delta *sigma_delta,
 	unsigned int mode, unsigned int channel)
@@ -238,7 +238,7 @@ int ad_sd_calibrate(struct ad_sigma_delta *sigma_delta,
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(ad_sd_calibrate);
+EXPORT_SYMBOL_NS_GPL(ad_sd_calibrate, IIO_AD_SIGMA_DELTA);
 
 /**
  * ad_sd_calibrate_all() - Performs channel calibration
@@ -262,7 +262,7 @@ int ad_sd_calibrate_all(struct ad_sigma_delta *sigma_delta,
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(ad_sd_calibrate_all);
+EXPORT_SYMBOL_NS_GPL(ad_sd_calibrate_all, IIO_AD_SIGMA_DELTA);
 
 /**
  * ad_sigma_delta_single_conversion() - Performs a single data conversion
@@ -337,7 +337,7 @@ int ad_sigma_delta_single_conversion(struct iio_dev *indio_dev,
 
 	return IIO_VAL_INT;
 }
-EXPORT_SYMBOL_GPL(ad_sigma_delta_single_conversion);
+EXPORT_SYMBOL_NS_GPL(ad_sigma_delta_single_conversion, IIO_AD_SIGMA_DELTA);
 
 static int ad_sd_buffer_postenable(struct iio_dev *indio_dev)
 {
@@ -465,7 +465,7 @@ int ad_sd_validate_trigger(struct iio_dev *indio_dev, struct iio_trigger *trig)
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(ad_sd_validate_trigger);
+EXPORT_SYMBOL_NS_GPL(ad_sd_validate_trigger, IIO_AD_SIGMA_DELTA);
 
 static int devm_ad_sd_probe_trigger(struct device *dev, struct iio_dev *indio_dev)
 {
@@ -524,7 +524,7 @@ int devm_ad_sd_setup_buffer_and_trigger(struct device *dev, struct iio_dev *indi
 
 	return devm_ad_sd_probe_trigger(dev, indio_dev);
 }
-EXPORT_SYMBOL_GPL(devm_ad_sd_setup_buffer_and_trigger);
+EXPORT_SYMBOL_NS_GPL(devm_ad_sd_setup_buffer_and_trigger, IIO_AD_SIGMA_DELTA);
 
 /**
  * ad_sd_init() - Initializes a ad_sigma_delta struct
@@ -545,7 +545,7 @@ int ad_sd_init(struct ad_sigma_delta *sigma_delta, struct iio_dev *indio_dev,
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(ad_sd_init);
+EXPORT_SYMBOL_NS_GPL(ad_sd_init, IIO_AD_SIGMA_DELTA);
 
 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
 MODULE_DESCRIPTION("Analog Devices Sigma-Delta ADCs");
-- 
2.35.1


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

* [PATCH 02/16] iio:adc:ad7091r: Move exports into IIO_AD7091R namespace.
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 01/16] iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-31 13:53   ` Paul Cercueil
  2022-01-30 20:56 ` [PATCH 03/16] iio:adc:ad76060: Move exports into IIO_AD7606 namespace Jonathan Cameron
                   ` (15 subsequent siblings)
  17 siblings, 1 reply; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio
  Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron, Paul Cercueil

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the core/library functions into a specific namespace and import
that into the various specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

An alternative here would be to conclude that we are unlikely to see
support for the other ad7091r parts in the near future and just merge
the two modules into one supporting just the i2c -5 variant.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Paul Cercueil <paul@crapouillou.net>
---
 drivers/iio/adc/ad7091r-base.c | 4 ++--
 drivers/iio/adc/ad7091r5.c     | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/adc/ad7091r-base.c b/drivers/iio/adc/ad7091r-base.c
index 63b4d6ea4566..8e252cde735b 100644
--- a/drivers/iio/adc/ad7091r-base.c
+++ b/drivers/iio/adc/ad7091r-base.c
@@ -260,7 +260,7 @@ int ad7091r_probe(struct device *dev, const char *name,
 
 	return devm_iio_device_register(dev, iio_dev);
 }
-EXPORT_SYMBOL_GPL(ad7091r_probe);
+EXPORT_SYMBOL_NS_GPL(ad7091r_probe, IIO_AD7091R);
 
 static bool ad7091r_writeable_reg(struct device *dev, unsigned int reg)
 {
@@ -290,7 +290,7 @@ const struct regmap_config ad7091r_regmap_config = {
 	.writeable_reg = ad7091r_writeable_reg,
 	.volatile_reg = ad7091r_volatile_reg,
 };
-EXPORT_SYMBOL_GPL(ad7091r_regmap_config);
+EXPORT_SYMBOL_NS_GPL(ad7091r_regmap_config, IIO_AD7091R);
 
 MODULE_AUTHOR("Beniamin Bia <beniamin.bia@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD7091Rx multi-channel converters");
diff --git a/drivers/iio/adc/ad7091r5.c b/drivers/iio/adc/ad7091r5.c
index 9665679c3ea6..47f5763023a4 100644
--- a/drivers/iio/adc/ad7091r5.c
+++ b/drivers/iio/adc/ad7091r5.c
@@ -111,3 +111,4 @@ module_i2c_driver(ad7091r5_driver);
 MODULE_AUTHOR("Beniamin Bia <beniamin.bia@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD7091R5 multi-channel ADC driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD7091R);
-- 
2.35.1


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

* [PATCH 03/16] iio:adc:ad76060: Move exports into IIO_AD7606 namespace.
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 01/16] iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 02/16] iio:adc:ad7091r: Move exports into IIO_AD7091R namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 04/16] iio:common:meas-spec: Move exports into IIO_MEAS_SPEC_SENSORS Jonathan Cameron
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio; +Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the core/library functions into a specific namespace and import
that into the various bus specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/adc/ad7606.c     | 4 ++--
 drivers/iio/adc/ad7606_par.c | 1 +
 drivers/iio/adc/ad7606_spi.c | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c
index 0a60ecc69d38..3b193dc26438 100644
--- a/drivers/iio/adc/ad7606.c
+++ b/drivers/iio/adc/ad7606.c
@@ -693,7 +693,7 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address,
 
 	return devm_iio_device_register(dev, indio_dev);
 }
-EXPORT_SYMBOL_GPL(ad7606_probe);
+EXPORT_SYMBOL_NS_GPL(ad7606_probe, IIO_AD7606);
 
 #ifdef CONFIG_PM_SLEEP
 
@@ -725,7 +725,7 @@ static int ad7606_resume(struct device *dev)
 }
 
 SIMPLE_DEV_PM_OPS(ad7606_pm_ops, ad7606_suspend, ad7606_resume);
-EXPORT_SYMBOL_GPL(ad7606_pm_ops);
+EXPORT_SYMBOL_NS_GPL(ad7606_pm_ops, IIO_AD7606);
 
 #endif
 
diff --git a/drivers/iio/adc/ad7606_par.c b/drivers/iio/adc/ad7606_par.c
index f732b3ac7878..8888e56b5e90 100644
--- a/drivers/iio/adc/ad7606_par.c
+++ b/drivers/iio/adc/ad7606_par.c
@@ -101,3 +101,4 @@ module_platform_driver(ad7606_driver);
 MODULE_AUTHOR("Michael Hennerich <michael.hennerich@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD7606 ADC");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD7606);
diff --git a/drivers/iio/adc/ad7606_spi.c b/drivers/iio/adc/ad7606_spi.c
index 29945ad07dca..263a778bcf25 100644
--- a/drivers/iio/adc/ad7606_spi.c
+++ b/drivers/iio/adc/ad7606_spi.c
@@ -362,3 +362,4 @@ module_spi_driver(ad7606_driver);
 MODULE_AUTHOR("Michael Hennerich <michael.hennerich@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD7606 ADC");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD7606);
-- 
2.35.1


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

* [PATCH 04/16] iio:common:meas-spec: Move exports into IIO_MEAS_SPEC_SENSORS
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (2 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 03/16] iio:adc:ad76060: Move exports into IIO_AD7606 namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 05/16] iio:common:ssp_sensors: Move exports into IIO_SSP_SENSORS namespace Jonathan Cameron
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio
  Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron,
	Alexandre Belloni, William Markezana, Ludovic Tancerel

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

The obvious choice of ms_sensors felt rather too likely to clash with other
namespaces introduced in future, hence the longer abbreviation.

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the various specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: William Markezana <william.markezana@meas-spec.com>
Cc: Ludovic Tancerel <ludovic.tancerel@maplehightech.com>
---
 .../iio/common/ms_sensors/ms_sensors_i2c.c    | 24 +++++++++----------
 drivers/iio/humidity/htu21.c                  |  1 +
 drivers/iio/pressure/ms5637.c                 |  1 +
 drivers/iio/temperature/tsys01.c              |  1 +
 drivers/iio/temperature/tsys02d.c             |  1 +
 5 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c
index 3eb790aec4b2..6633b35a94e6 100644
--- a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c
+++ b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c
@@ -58,7 +58,7 @@ int ms_sensors_reset(void *cli, u8 cmd, unsigned int delay)
 
 	return 0;
 }
-EXPORT_SYMBOL(ms_sensors_reset);
+EXPORT_SYMBOL_NS(ms_sensors_reset, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_read_prom_word() - PROM word read function
@@ -84,7 +84,7 @@ int ms_sensors_read_prom_word(void *cli, int cmd, u16 *word)
 
 	return 0;
 }
-EXPORT_SYMBOL(ms_sensors_read_prom_word);
+EXPORT_SYMBOL_NS(ms_sensors_read_prom_word, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_convert_and_read() - ADC conversion & read function
@@ -130,7 +130,7 @@ int ms_sensors_convert_and_read(void *cli, u8 conv, u8 rd,
 	dev_err(&client->dev, "Unable to make sensor adc conversion\n");
 	return ret;
 }
-EXPORT_SYMBOL(ms_sensors_convert_and_read);
+EXPORT_SYMBOL_NS(ms_sensors_convert_and_read, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_crc_valid() - CRC check function
@@ -248,7 +248,7 @@ int ms_sensors_read_serial(struct i2c_client *client, u64 *sn)
 
 	return 0;
 }
-EXPORT_SYMBOL(ms_sensors_read_serial);
+EXPORT_SYMBOL_NS(ms_sensors_read_serial, IIO_MEAS_SPEC_SENSORS);
 
 static int ms_sensors_read_config_reg(struct i2c_client *client,
 				      u8 *config_reg)
@@ -299,7 +299,7 @@ ssize_t ms_sensors_write_resolution(struct ms_ht_dev *dev_data,
 					 MS_SENSORS_CONFIG_REG_WRITE,
 					 config_reg);
 }
-EXPORT_SYMBOL(ms_sensors_write_resolution);
+EXPORT_SYMBOL_NS(ms_sensors_write_resolution, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_show_battery_low() - Show device battery low indicator
@@ -326,7 +326,7 @@ ssize_t ms_sensors_show_battery_low(struct ms_ht_dev *dev_data,
 
 	return sysfs_emit(buf, "%d\n", (config_reg & 0x40) >> 6);
 }
-EXPORT_SYMBOL(ms_sensors_show_battery_low);
+EXPORT_SYMBOL_NS(ms_sensors_show_battery_low, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_show_heater() - Show device heater
@@ -353,7 +353,7 @@ ssize_t ms_sensors_show_heater(struct ms_ht_dev *dev_data,
 
 	return sysfs_emit(buf, "%d\n", (config_reg & 0x4) >> 2);
 }
-EXPORT_SYMBOL(ms_sensors_show_heater);
+EXPORT_SYMBOL_NS(ms_sensors_show_heater, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_write_heater() - Write device heater
@@ -401,7 +401,7 @@ ssize_t ms_sensors_write_heater(struct ms_ht_dev *dev_data,
 
 	return len;
 }
-EXPORT_SYMBOL(ms_sensors_write_heater);
+EXPORT_SYMBOL_NS(ms_sensors_write_heater, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_ht_read_temperature() - Read temperature
@@ -442,7 +442,7 @@ int ms_sensors_ht_read_temperature(struct ms_ht_dev *dev_data,
 
 	return 0;
 }
-EXPORT_SYMBOL(ms_sensors_ht_read_temperature);
+EXPORT_SYMBOL_NS(ms_sensors_ht_read_temperature, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_ht_read_humidity() - Read humidity
@@ -485,7 +485,7 @@ int ms_sensors_ht_read_humidity(struct ms_ht_dev *dev_data,
 
 	return 0;
 }
-EXPORT_SYMBOL(ms_sensors_ht_read_humidity);
+EXPORT_SYMBOL_NS(ms_sensors_ht_read_humidity, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_tp_crc4() - Calculate PROM CRC for
@@ -602,7 +602,7 @@ int ms_sensors_tp_read_prom(struct ms_tp_dev *dev_data)
 
 	return 0;
 }
-EXPORT_SYMBOL(ms_sensors_tp_read_prom);
+EXPORT_SYMBOL_NS(ms_sensors_tp_read_prom, IIO_MEAS_SPEC_SENSORS);
 
 /**
  * ms_sensors_read_temp_and_pressure() - read temp and pressure
@@ -688,7 +688,7 @@ int ms_sensors_read_temp_and_pressure(struct ms_tp_dev *dev_data,
 
 	return 0;
 }
-EXPORT_SYMBOL(ms_sensors_read_temp_and_pressure);
+EXPORT_SYMBOL_NS(ms_sensors_read_temp_and_pressure, IIO_MEAS_SPEC_SENSORS);
 
 MODULE_DESCRIPTION("Measurement-Specialties common i2c driver");
 MODULE_AUTHOR("William Markezana <william.markezana@meas-spec.com>");
diff --git a/drivers/iio/humidity/htu21.c b/drivers/iio/humidity/htu21.c
index 36df2a102ca4..fd9e2565f8a2 100644
--- a/drivers/iio/humidity/htu21.c
+++ b/drivers/iio/humidity/htu21.c
@@ -258,3 +258,4 @@ MODULE_DESCRIPTION("Measurement-Specialties htu21 temperature and humidity drive
 MODULE_AUTHOR("William Markezana <william.markezana@meas-spec.com>");
 MODULE_AUTHOR("Ludovic Tancerel <ludovic.tancerel@maplehightech.com>");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_MEAS_SPEC_SENSORS);
diff --git a/drivers/iio/pressure/ms5637.c b/drivers/iio/pressure/ms5637.c
index 81f683321b23..70c70019142a 100644
--- a/drivers/iio/pressure/ms5637.c
+++ b/drivers/iio/pressure/ms5637.c
@@ -252,3 +252,4 @@ MODULE_DESCRIPTION("Measurement-Specialties ms5637 temperature & pressure driver
 MODULE_AUTHOR("William Markezana <william.markezana@meas-spec.com>");
 MODULE_AUTHOR("Ludovic Tancerel <ludovic.tancerel@maplehightech.com>");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_MEAS_SPEC_SENSORS);
diff --git a/drivers/iio/temperature/tsys01.c b/drivers/iio/temperature/tsys01.c
index bbfbad9a8767..60d58ec5b063 100644
--- a/drivers/iio/temperature/tsys01.c
+++ b/drivers/iio/temperature/tsys01.c
@@ -233,3 +233,4 @@ MODULE_DESCRIPTION("Measurement-Specialties tsys01 temperature driver");
 MODULE_AUTHOR("William Markezana <william.markezana@meas-spec.com>");
 MODULE_AUTHOR("Ludovic Tancerel <ludovic.tancerel@maplehightech.com>");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_MEAS_SPEC_SENSORS);
diff --git a/drivers/iio/temperature/tsys02d.c b/drivers/iio/temperature/tsys02d.c
index fc96e5f9d3fc..49c275e4f510 100644
--- a/drivers/iio/temperature/tsys02d.c
+++ b/drivers/iio/temperature/tsys02d.c
@@ -187,3 +187,4 @@ MODULE_DESCRIPTION("Measurement-Specialties tsys02d temperature driver");
 MODULE_AUTHOR("William Markezana <william.markezana@meas-spec.com>");
 MODULE_AUTHOR("Ludovic Tancerel <ludovic.tancerel@maplehightech.com>");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_MEAS_SPEC_SENSORS);
-- 
2.35.1


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

* [PATCH 05/16] iio:common:ssp_sensors: Move exports into IIO_SSP_SENSORS namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (3 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 04/16] iio:common:meas-spec: Move exports into IIO_MEAS_SPEC_SENSORS Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 06/16] iio:dac:ad5592r: Move exports into IIO_AD5592R namespace Jonathan Cameron
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio; +Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the various specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Both the exports used between the two common modules and the individual
drivers are moved to a single namespace as greater granularity does
not feel useful.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/accel/ssp_accel_sensor.c     |  1 +
 drivers/iio/common/ssp_sensors/ssp_dev.c | 10 +++++-----
 drivers/iio/common/ssp_sensors/ssp_iio.c |  7 ++++---
 drivers/iio/gyro/ssp_gyro_sensor.c       |  1 +
 4 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/drivers/iio/accel/ssp_accel_sensor.c b/drivers/iio/accel/ssp_accel_sensor.c
index 04dcb2b657ee..a1164b439f41 100644
--- a/drivers/iio/accel/ssp_accel_sensor.c
+++ b/drivers/iio/accel/ssp_accel_sensor.c
@@ -142,3 +142,4 @@ module_platform_driver(ssp_accel_driver);
 MODULE_AUTHOR("Karol Wrona <k.wrona@samsung.com>");
 MODULE_DESCRIPTION("Samsung sensorhub accelerometers driver");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_SSP_SENSORS);
diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
index 1aee87100038..f95f964a7fd7 100644
--- a/drivers/iio/common/ssp_sensors/ssp_dev.c
+++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
@@ -204,7 +204,7 @@ u32 ssp_get_sensor_delay(struct ssp_data *data, enum ssp_sensor_type type)
 {
 	return data->delay_buf[type];
 }
-EXPORT_SYMBOL(ssp_get_sensor_delay);
+EXPORT_SYMBOL_NS(ssp_get_sensor_delay, IIO_SSP_SENSORS);
 
 /**
  * ssp_enable_sensor() - enables data acquisition for sensor
@@ -266,7 +266,7 @@ int ssp_enable_sensor(struct ssp_data *data, enum ssp_sensor_type type,
 derror:
 	return ret;
 }
-EXPORT_SYMBOL(ssp_enable_sensor);
+EXPORT_SYMBOL_NS(ssp_enable_sensor, IIO_SSP_SENSORS);
 
 /**
  * ssp_change_delay() - changes data acquisition for sensor
@@ -297,7 +297,7 @@ int ssp_change_delay(struct ssp_data *data, enum ssp_sensor_type type,
 
 	return 0;
 }
-EXPORT_SYMBOL(ssp_change_delay);
+EXPORT_SYMBOL_NS(ssp_change_delay, IIO_SSP_SENSORS);
 
 /**
  * ssp_disable_sensor() - disables sensor
@@ -334,7 +334,7 @@ int ssp_disable_sensor(struct ssp_data *data, enum ssp_sensor_type type)
 
 	return 0;
 }
-EXPORT_SYMBOL(ssp_disable_sensor);
+EXPORT_SYMBOL_NS(ssp_disable_sensor, IIO_SSP_SENSORS);
 
 static irqreturn_t ssp_irq_thread_fn(int irq, void *dev_id)
 {
@@ -490,7 +490,7 @@ void ssp_register_consumer(struct iio_dev *indio_dev, enum ssp_sensor_type type)
 
 	data->sensor_devs[type] = indio_dev;
 }
-EXPORT_SYMBOL(ssp_register_consumer);
+EXPORT_SYMBOL_NS(ssp_register_consumer, IIO_SSP_SENSORS);
 
 static int ssp_probe(struct spi_device *spi)
 {
diff --git a/drivers/iio/common/ssp_sensors/ssp_iio.c b/drivers/iio/common/ssp_sensors/ssp_iio.c
index 5336db81ba0a..88b8b56bfa51 100644
--- a/drivers/iio/common/ssp_sensors/ssp_iio.c
+++ b/drivers/iio/common/ssp_sensors/ssp_iio.c
@@ -32,7 +32,7 @@ int ssp_common_buffer_postenable(struct iio_dev *indio_dev)
 	return ssp_enable_sensor(data, spd->type,
 				 ssp_get_sensor_delay(data, spd->type));
 }
-EXPORT_SYMBOL(ssp_common_buffer_postenable);
+EXPORT_SYMBOL_NS(ssp_common_buffer_postenable, IIO_SSP_SENSORS);
 
 /**
  * ssp_common_buffer_postdisable() - generic postdisable callback for ssp buffer
@@ -55,7 +55,7 @@ int ssp_common_buffer_postdisable(struct iio_dev *indio_dev)
 
 	return ret;
 }
-EXPORT_SYMBOL(ssp_common_buffer_postdisable);
+EXPORT_SYMBOL_NS(ssp_common_buffer_postdisable, IIO_SSP_SENSORS);
 
 /**
  * ssp_common_process_data() - Common process data callback for ssp sensors
@@ -91,8 +91,9 @@ int ssp_common_process_data(struct iio_dev *indio_dev, void *buf,
 	return iio_push_to_buffers_with_timestamp(indio_dev, spd->buffer,
 						  calculated_time);
 }
-EXPORT_SYMBOL(ssp_common_process_data);
+EXPORT_SYMBOL_NS(ssp_common_process_data, IIO_SSP_SENSORS);
 
 MODULE_AUTHOR("Karol Wrona <k.wrona@samsung.com>");
 MODULE_DESCRIPTION("Samsung sensorhub commons");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_SSP_SENSORS);
diff --git a/drivers/iio/gyro/ssp_gyro_sensor.c b/drivers/iio/gyro/ssp_gyro_sensor.c
index 46ed12771d2f..5fd1bf9902ea 100644
--- a/drivers/iio/gyro/ssp_gyro_sensor.c
+++ b/drivers/iio/gyro/ssp_gyro_sensor.c
@@ -142,3 +142,4 @@ module_platform_driver(ssp_gyro_driver);
 MODULE_AUTHOR("Karol Wrona <k.wrona@samsung.com>");
 MODULE_DESCRIPTION("Samsung sensorhub gyroscopes driver");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_SSP_SENSORS);
-- 
2.35.1


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

* [PATCH 06/16] iio:dac:ad5592r: Move exports into IIO_AD5592R namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (4 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 05/16] iio:common:ssp_sensors: Move exports into IIO_SSP_SENSORS namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-31 13:55   ` Paul Cercueil
  2022-01-30 20:56 ` [PATCH 07/16] iio:dac:ad5686: Move exports into IIO_AD5686 namespace Jonathan Cameron
                   ` (11 subsequent siblings)
  17 siblings, 1 reply; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio
  Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron, Paul Cercueil

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the various specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Paul Cercueil <paul@crapouillou.net>
---
 drivers/iio/dac/ad5592r-base.c | 4 ++--
 drivers/iio/dac/ad5592r.c      | 1 +
 drivers/iio/dac/ad5593r.c      | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/dac/ad5592r-base.c b/drivers/iio/dac/ad5592r-base.c
index 2fcc59728fd6..ec2937b8d768 100644
--- a/drivers/iio/dac/ad5592r-base.c
+++ b/drivers/iio/dac/ad5592r-base.c
@@ -661,7 +661,7 @@ int ad5592r_probe(struct device *dev, const char *name,
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(ad5592r_probe);
+EXPORT_SYMBOL_NS_GPL(ad5592r_probe, IIO_AD5592R);
 
 void ad5592r_remove(struct device *dev)
 {
@@ -675,7 +675,7 @@ void ad5592r_remove(struct device *dev)
 	if (st->reg)
 		regulator_disable(st->reg);
 }
-EXPORT_SYMBOL_GPL(ad5592r_remove);
+EXPORT_SYMBOL_NS_GPL(ad5592r_remove, IIO_AD5592R);
 
 MODULE_AUTHOR("Paul Cercueil <paul.cercueil@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD5592R multi-channel converters");
diff --git a/drivers/iio/dac/ad5592r.c b/drivers/iio/dac/ad5592r.c
index 6bfd7951e18c..1572279b04bb 100644
--- a/drivers/iio/dac/ad5592r.c
+++ b/drivers/iio/dac/ad5592r.c
@@ -170,3 +170,4 @@ module_spi_driver(ad5592r_spi_driver);
 MODULE_AUTHOR("Paul Cercueil <paul.cercueil@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD5592R multi-channel converters");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD5592R);
diff --git a/drivers/iio/dac/ad5593r.c b/drivers/iio/dac/ad5593r.c
index 64dd7a0bddf7..34e1319a9712 100644
--- a/drivers/iio/dac/ad5593r.c
+++ b/drivers/iio/dac/ad5593r.c
@@ -137,3 +137,4 @@ module_i2c_driver(ad5593r_driver);
 MODULE_AUTHOR("Paul Cercueil <paul.cercueil@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD5593R multi-channel converters");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD5592R);
-- 
2.35.1


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

* [PATCH 07/16] iio:dac:ad5686: Move exports into IIO_AD5686 namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (5 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 06/16] iio:dac:ad5592r: Move exports into IIO_AD5592R namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 08/16] iio:imu:adis: Move exports into IIO_ADISLIB namespace Jonathan Cameron
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio; +Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Note these are used in the related ad5696-i2c drivers as well as the
more obviously connected ad5686-spi driver.

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the various specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/dac/ad5686-spi.c | 1 +
 drivers/iio/dac/ad5686.c     | 4 ++--
 drivers/iio/dac/ad5696-i2c.c | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/dac/ad5686-spi.c b/drivers/iio/dac/ad5686-spi.c
index 2628810fdbb1..75b54c5ba39f 100644
--- a/drivers/iio/dac/ad5686-spi.c
+++ b/drivers/iio/dac/ad5686-spi.c
@@ -137,3 +137,4 @@ module_spi_driver(ad5686_spi_driver);
 MODULE_AUTHOR("Stefan Popa <stefan.popa@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD5686 and similar multi-channel DACs");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD5686);
diff --git a/drivers/iio/dac/ad5686.c b/drivers/iio/dac/ad5686.c
index e592a995f404..f78dd3f33199 100644
--- a/drivers/iio/dac/ad5686.c
+++ b/drivers/iio/dac/ad5686.c
@@ -536,7 +536,7 @@ int ad5686_probe(struct device *dev,
 		regulator_disable(st->reg);
 	return ret;
 }
-EXPORT_SYMBOL_GPL(ad5686_probe);
+EXPORT_SYMBOL_NS_GPL(ad5686_probe, IIO_AD5686);
 
 void ad5686_remove(struct device *dev)
 {
@@ -547,7 +547,7 @@ void ad5686_remove(struct device *dev)
 	if (!IS_ERR(st->reg))
 		regulator_disable(st->reg);
 }
-EXPORT_SYMBOL_GPL(ad5686_remove);
+EXPORT_SYMBOL_NS_GPL(ad5686_remove, IIO_AD5686);
 
 MODULE_AUTHOR("Michael Hennerich <michael.hennerich@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD5686/85/84 DAC");
diff --git a/drivers/iio/dac/ad5696-i2c.c b/drivers/iio/dac/ad5696-i2c.c
index 93f0e0e66c22..762503c1901b 100644
--- a/drivers/iio/dac/ad5696-i2c.c
+++ b/drivers/iio/dac/ad5696-i2c.c
@@ -125,3 +125,4 @@ module_i2c_driver(ad5686_i2c_driver);
 MODULE_AUTHOR("Stefan Popa <stefan.popa@analog.com>");
 MODULE_DESCRIPTION("Analog Devices AD5686 and similar multi-channel DACs");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_AD5686);
-- 
2.35.1


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

* [PATCH 08/16] iio:imu:adis: Move exports into IIO_ADISLIB namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (6 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 07/16] iio:dac:ad5686: Move exports into IIO_AD5686 namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 09/16] iio:pressure:zpa2326: Move exports into IIO_ZPA2326 namespace Jonathan Cameron
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio
  Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron, Song Bao Hua

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unneessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the various specific device drivers that use them.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Song Bao Hua (Barry Song) <song.bao.hua@hisilicon.com>
---
 drivers/iio/accel/adis16201.c         |  1 +
 drivers/iio/accel/adis16209.c         |  1 +
 drivers/iio/gyro/adis16136.c          |  1 +
 drivers/iio/gyro/adis16260.c          |  1 +
 drivers/iio/imu/adis.c                | 20 ++++++++++----------
 drivers/iio/imu/adis16400.c           |  1 +
 drivers/iio/imu/adis16460.c           |  1 +
 drivers/iio/imu/adis16475.c           |  1 +
 drivers/iio/imu/adis16480.c           |  1 +
 drivers/iio/imu/adis_buffer.c         |  4 ++--
 drivers/iio/imu/adis_trigger.c        |  2 +-
 drivers/staging/iio/accel/adis16203.c |  1 +
 drivers/staging/iio/accel/adis16240.c |  1 +
 13 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/drivers/iio/accel/adis16201.c b/drivers/iio/accel/adis16201.c
index 7a434e2884d4..dfb8e2e5bdf5 100644
--- a/drivers/iio/accel/adis16201.c
+++ b/drivers/iio/accel/adis16201.c
@@ -300,3 +300,4 @@ MODULE_AUTHOR("Barry Song <21cnbao@gmail.com>");
 MODULE_DESCRIPTION("Analog Devices ADIS16201 Dual-Axis Digital Inclinometer and Accelerometer");
 MODULE_LICENSE("GPL v2");
 MODULE_ALIAS("spi:adis16201");
+MODULE_IMPORT_NS(IIO_ADISLIB);
diff --git a/drivers/iio/accel/adis16209.c b/drivers/iio/accel/adis16209.c
index ac08e866d612..5a9c6e2296f1 100644
--- a/drivers/iio/accel/adis16209.c
+++ b/drivers/iio/accel/adis16209.c
@@ -310,3 +310,4 @@ MODULE_AUTHOR("Barry Song <21cnbao@gmail.com>");
 MODULE_DESCRIPTION("Analog Devices ADIS16209 Dual-Axis Digital Inclinometer and Accelerometer");
 MODULE_LICENSE("GPL v2");
 MODULE_ALIAS("spi:adis16209");
+MODULE_IMPORT_NS(IIO_ADISLIB);
diff --git a/drivers/iio/gyro/adis16136.c b/drivers/iio/gyro/adis16136.c
index 36879f01e28c..71295709f2b9 100644
--- a/drivers/iio/gyro/adis16136.c
+++ b/drivers/iio/gyro/adis16136.c
@@ -591,3 +591,4 @@ module_spi_driver(adis16136_driver);
 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
 MODULE_DESCRIPTION("Analog Devices ADIS16133/ADIS16135/ADIS16136 gyroscope driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_ADISLIB);
diff --git a/drivers/iio/gyro/adis16260.c b/drivers/iio/gyro/adis16260.c
index 66b6b7bd5e1b..eaf57bd339ed 100644
--- a/drivers/iio/gyro/adis16260.c
+++ b/drivers/iio/gyro/adis16260.c
@@ -433,3 +433,4 @@ module_spi_driver(adis16260_driver);
 MODULE_AUTHOR("Barry Song <21cnbao@gmail.com>");
 MODULE_DESCRIPTION("Analog Devices ADIS16260/5 Digital Gyroscope Sensor");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_ADISLIB);
diff --git a/drivers/iio/imu/adis.c b/drivers/iio/imu/adis.c
index 638957001653..f7fcfd04f659 100644
--- a/drivers/iio/imu/adis.c
+++ b/drivers/iio/imu/adis.c
@@ -121,7 +121,7 @@ int __adis_write_reg(struct adis *adis, unsigned int reg, unsigned int value,
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(__adis_write_reg);
+EXPORT_SYMBOL_NS_GPL(__adis_write_reg, IIO_ADISLIB);
 
 /**
  * __adis_read_reg() - read N bytes from register (unlocked version)
@@ -218,7 +218,7 @@ int __adis_read_reg(struct adis *adis, unsigned int reg, unsigned int *val,
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(__adis_read_reg);
+EXPORT_SYMBOL_NS_GPL(__adis_read_reg, IIO_ADISLIB);
 /**
  * __adis_update_bits_base() - ADIS Update bits function - Unlocked version
  * @adis: The adis device
@@ -243,7 +243,7 @@ int __adis_update_bits_base(struct adis *adis, unsigned int reg, const u32 mask,
 
 	return __adis_write_reg(adis, reg, __val, size);
 }
-EXPORT_SYMBOL_GPL(__adis_update_bits_base);
+EXPORT_SYMBOL_NS_GPL(__adis_update_bits_base, IIO_ADISLIB);
 
 #ifdef CONFIG_DEBUG_FS
 
@@ -265,7 +265,7 @@ int adis_debugfs_reg_access(struct iio_dev *indio_dev, unsigned int reg,
 
 	return adis_write_reg_16(adis, reg, writeval);
 }
-EXPORT_SYMBOL(adis_debugfs_reg_access);
+EXPORT_SYMBOL_NS(adis_debugfs_reg_access, IIO_ADISLIB);
 
 #endif
 
@@ -314,7 +314,7 @@ int adis_enable_irq(struct adis *adis, bool enable)
 	mutex_unlock(&adis->state_lock);
 	return ret;
 }
-EXPORT_SYMBOL(adis_enable_irq);
+EXPORT_SYMBOL_NS(adis_enable_irq, IIO_ADISLIB);
 
 /**
  * __adis_check_status() - Check the device for error conditions (unlocked)
@@ -346,7 +346,7 @@ int __adis_check_status(struct adis *adis)
 
 	return -EIO;
 }
-EXPORT_SYMBOL_GPL(__adis_check_status);
+EXPORT_SYMBOL_NS_GPL(__adis_check_status, IIO_ADISLIB);
 
 /**
  * __adis_reset() - Reset the device (unlocked version)
@@ -370,7 +370,7 @@ int __adis_reset(struct adis *adis)
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(__adis_reset);
+EXPORT_SYMBOL_NS_GPL(__adis_reset, IIO_ADIS_LIB);
 
 static int adis_self_test(struct adis *adis)
 {
@@ -461,7 +461,7 @@ int __adis_initial_startup(struct adis *adis)
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(__adis_initial_startup);
+EXPORT_SYMBOL_NS_GPL(__adis_initial_startup, IIO_ADISLIB);
 
 /**
  * adis_single_conversion() - Performs a single sample conversion
@@ -509,7 +509,7 @@ int adis_single_conversion(struct iio_dev *indio_dev,
 	mutex_unlock(&adis->state_lock);
 	return ret;
 }
-EXPORT_SYMBOL_GPL(adis_single_conversion);
+EXPORT_SYMBOL_NS_GPL(adis_single_conversion, IIO_ADISLIB);
 
 /**
  * adis_init() - Initialize adis device structure
@@ -546,7 +546,7 @@ int adis_init(struct adis *adis, struct iio_dev *indio_dev,
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(adis_init);
+EXPORT_SYMBOL_NS_GPL(adis_init, IIO_ADISLIB);
 
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
diff --git a/drivers/iio/imu/adis16400.c b/drivers/iio/imu/adis16400.c
index 9fd30e62d6e8..17bb0c40a149 100644
--- a/drivers/iio/imu/adis16400.c
+++ b/drivers/iio/imu/adis16400.c
@@ -1240,3 +1240,4 @@ module_spi_driver(adis16400_driver);
 MODULE_AUTHOR("Manuel Stahl <manuel.stahl@iis.fraunhofer.de>");
 MODULE_DESCRIPTION("Analog Devices ADIS16400/5 IMU SPI driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_ADISLIB);
diff --git a/drivers/iio/imu/adis16460.c b/drivers/iio/imu/adis16460.c
index b01988170118..69facd72bd7d 100644
--- a/drivers/iio/imu/adis16460.c
+++ b/drivers/iio/imu/adis16460.c
@@ -428,3 +428,4 @@ module_spi_driver(adis16460_driver);
 MODULE_AUTHOR("Dragos Bogdan <dragos.bogdan@analog.com>");
 MODULE_DESCRIPTION("Analog Devices ADIS16460 IMU driver");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_ADISLIB);
diff --git a/drivers/iio/imu/adis16475.c b/drivers/iio/imu/adis16475.c
index ea91d127077d..ff2b0fab840a 100644
--- a/drivers/iio/imu/adis16475.c
+++ b/drivers/iio/imu/adis16475.c
@@ -1365,3 +1365,4 @@ module_spi_driver(adis16475_driver);
 MODULE_AUTHOR("Nuno Sa <nuno.sa@analog.com>");
 MODULE_DESCRIPTION("Analog Devices ADIS16475 IMU driver");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_ADISLIB);
diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
index ed129321a14d..0419cc3d5fe2 100644
--- a/drivers/iio/imu/adis16480.c
+++ b/drivers/iio/imu/adis16480.c
@@ -1533,3 +1533,4 @@ module_spi_driver(adis16480_driver);
 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
 MODULE_DESCRIPTION("Analog Devices ADIS16480 IMU driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_ADISLIB);
diff --git a/drivers/iio/imu/adis_buffer.c b/drivers/iio/imu/adis_buffer.c
index d3527cf5ed37..928933027ae3 100644
--- a/drivers/iio/imu/adis_buffer.c
+++ b/drivers/iio/imu/adis_buffer.c
@@ -124,7 +124,7 @@ int adis_update_scan_mode(struct iio_dev *indio_dev,
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(adis_update_scan_mode);
+EXPORT_SYMBOL_NS_GPL(adis_update_scan_mode, IIO_ADISLIB);
 
 static irqreturn_t adis_trigger_handler(int irq, void *p)
 {
@@ -212,5 +212,5 @@ devm_adis_setup_buffer_and_trigger(struct adis *adis, struct iio_dev *indio_dev,
 	return devm_add_action_or_reset(&adis->spi->dev, adis_buffer_cleanup,
 					adis);
 }
-EXPORT_SYMBOL_GPL(devm_adis_setup_buffer_and_trigger);
+EXPORT_SYMBOL_NS_GPL(devm_adis_setup_buffer_and_trigger, IIO_ADISLIB);
 
diff --git a/drivers/iio/imu/adis_trigger.c b/drivers/iio/imu/adis_trigger.c
index 0e7fb00ba241..f890bf842db8 100644
--- a/drivers/iio/imu/adis_trigger.c
+++ b/drivers/iio/imu/adis_trigger.c
@@ -87,5 +87,5 @@ int devm_adis_probe_trigger(struct adis *adis, struct iio_dev *indio_dev)
 
 	return devm_iio_trigger_register(&adis->spi->dev, adis->trig);
 }
-EXPORT_SYMBOL_GPL(devm_adis_probe_trigger);
+EXPORT_SYMBOL_NS_GPL(devm_adis_probe_trigger, IIO_ADISLIB);
 
diff --git a/drivers/staging/iio/accel/adis16203.c b/drivers/staging/iio/accel/adis16203.c
index 1d3026dae827..62d5397ff1f9 100644
--- a/drivers/staging/iio/accel/adis16203.c
+++ b/drivers/staging/iio/accel/adis16203.c
@@ -312,3 +312,4 @@ MODULE_AUTHOR("Barry Song <21cnbao@gmail.com>");
 MODULE_DESCRIPTION("Analog Devices ADIS16203 Programmable 360 Degrees Inclinometer");
 MODULE_LICENSE("GPL v2");
 MODULE_ALIAS("spi:adis16203");
+MODULE_IMPORT_NS(IIO_ADISLIB);
diff --git a/drivers/staging/iio/accel/adis16240.c b/drivers/staging/iio/accel/adis16240.c
index 2a8aa83b8d9e..bca857eef92e 100644
--- a/drivers/staging/iio/accel/adis16240.c
+++ b/drivers/staging/iio/accel/adis16240.c
@@ -440,3 +440,4 @@ MODULE_AUTHOR("Barry Song <21cnbao@gmail.com>");
 MODULE_DESCRIPTION("Analog Devices Programmable Impact Sensor and Recorder");
 MODULE_LICENSE("GPL v2");
 MODULE_ALIAS("spi:adis16240");
+MODULE_IMPORT_NS(IIO_ADISLIB);
-- 
2.35.1


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

* [PATCH 09/16] iio:pressure:zpa2326: Move exports into IIO_ZPA2326 namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (7 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 08/16] iio:imu:adis: Move exports into IIO_ADISLIB namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 10/16] iio:pressure:ms5611: Move exports into IIO_MS5611 namespace Jonathan Cameron
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio; +Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the bus specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/pressure/zpa2326.c     | 12 ++++++------
 drivers/iio/pressure/zpa2326_i2c.c |  1 +
 drivers/iio/pressure/zpa2326_spi.c |  1 +
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/iio/pressure/zpa2326.c b/drivers/iio/pressure/zpa2326.c
index 89295c90f801..67119a9b95fc 100644
--- a/drivers/iio/pressure/zpa2326.c
+++ b/drivers/iio/pressure/zpa2326.c
@@ -162,7 +162,7 @@ bool zpa2326_isreg_writeable(struct device *dev, unsigned int reg)
 		return false;
 	}
 }
-EXPORT_SYMBOL_GPL(zpa2326_isreg_writeable);
+EXPORT_SYMBOL_NS_GPL(zpa2326_isreg_writeable, IIO_ZPA2326);
 
 bool zpa2326_isreg_readable(struct device *dev, unsigned int reg)
 {
@@ -191,7 +191,7 @@ bool zpa2326_isreg_readable(struct device *dev, unsigned int reg)
 		return false;
 	}
 }
-EXPORT_SYMBOL_GPL(zpa2326_isreg_readable);
+EXPORT_SYMBOL_NS_GPL(zpa2326_isreg_readable, IIO_ZPA2326);
 
 bool zpa2326_isreg_precious(struct device *dev, unsigned int reg)
 {
@@ -204,7 +204,7 @@ bool zpa2326_isreg_precious(struct device *dev, unsigned int reg)
 		return false;
 	}
 }
-EXPORT_SYMBOL_GPL(zpa2326_isreg_precious);
+EXPORT_SYMBOL_NS_GPL(zpa2326_isreg_precious, IIO_ZPA2326);
 
 /**
  * zpa2326_enable_device() - Enable device, i.e. get out of low power mode.
@@ -649,7 +649,7 @@ const struct dev_pm_ops zpa2326_pm_ops = {
 	SET_RUNTIME_PM_OPS(zpa2326_runtime_suspend, zpa2326_runtime_resume,
 			   NULL)
 };
-EXPORT_SYMBOL_GPL(zpa2326_pm_ops);
+EXPORT_SYMBOL_NS_GPL(zpa2326_pm_ops, IIO_ZPA2326);
 
 /**
  * zpa2326_resume() - Request the PM layer to power supply the device.
@@ -1698,7 +1698,7 @@ int zpa2326_probe(struct device *parent,
 
 	return err;
 }
-EXPORT_SYMBOL_GPL(zpa2326_probe);
+EXPORT_SYMBOL_NS_GPL(zpa2326_probe, IIO_ZPA2326);
 
 void zpa2326_remove(const struct device *parent)
 {
@@ -1709,7 +1709,7 @@ void zpa2326_remove(const struct device *parent)
 	zpa2326_sleep(indio_dev);
 	zpa2326_power_off(indio_dev, iio_priv(indio_dev));
 }
-EXPORT_SYMBOL_GPL(zpa2326_remove);
+EXPORT_SYMBOL_NS_GPL(zpa2326_remove, IIO_ZPA2326);
 
 MODULE_AUTHOR("Gregor Boirie <gregor.boirie@parrot.com>");
 MODULE_DESCRIPTION("Core driver for Murata ZPA2326 pressure sensor");
diff --git a/drivers/iio/pressure/zpa2326_i2c.c b/drivers/iio/pressure/zpa2326_i2c.c
index 95d9739444c4..0db0860d386b 100644
--- a/drivers/iio/pressure/zpa2326_i2c.c
+++ b/drivers/iio/pressure/zpa2326_i2c.c
@@ -87,3 +87,4 @@ module_i2c_driver(zpa2326_i2c_driver);
 MODULE_AUTHOR("Gregor Boirie <gregor.boirie@parrot.com>");
 MODULE_DESCRIPTION("I2C driver for Murata ZPA2326 pressure sensor");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_ZPA2326);
diff --git a/drivers/iio/pressure/zpa2326_spi.c b/drivers/iio/pressure/zpa2326_spi.c
index 85201a4bae44..5fbd2586c4ea 100644
--- a/drivers/iio/pressure/zpa2326_spi.c
+++ b/drivers/iio/pressure/zpa2326_spi.c
@@ -91,3 +91,4 @@ module_spi_driver(zpa2326_spi_driver);
 MODULE_AUTHOR("Gregor Boirie <gregor.boirie@parrot.com>");
 MODULE_DESCRIPTION("SPI driver for Murata ZPA2326 pressure sensor");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_ZPA2326);
-- 
2.35.1


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

* [PATCH 10/16] iio:pressure:ms5611: Move exports into IIO_MS5611 namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (8 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 09/16] iio:pressure:zpa2326: Move exports into IIO_ZPA2326 namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 11/16] iio:pressure:mpl115: Move exports into IIO_MPL115 namespace Jonathan Cameron
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio
  Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron,
	Tomasz Duszynski

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the bus specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Tomasz Duszynski <tduszyns@gmail.com>
---
 drivers/iio/pressure/ms5611_core.c | 4 ++--
 drivers/iio/pressure/ms5611_i2c.c  | 1 +
 drivers/iio/pressure/ms5611_spi.c  | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/pressure/ms5611_core.c b/drivers/iio/pressure/ms5611_core.c
index a4d0b54cde9b..717521de66c4 100644
--- a/drivers/iio/pressure/ms5611_core.c
+++ b/drivers/iio/pressure/ms5611_core.c
@@ -471,7 +471,7 @@ int ms5611_probe(struct iio_dev *indio_dev, struct device *dev,
 	ms5611_fini(indio_dev);
 	return ret;
 }
-EXPORT_SYMBOL(ms5611_probe);
+EXPORT_SYMBOL_NS(ms5611_probe, IIO_MS5611);
 
 void ms5611_remove(struct iio_dev *indio_dev)
 {
@@ -479,7 +479,7 @@ void ms5611_remove(struct iio_dev *indio_dev)
 	iio_triggered_buffer_cleanup(indio_dev);
 	ms5611_fini(indio_dev);
 }
-EXPORT_SYMBOL(ms5611_remove);
+EXPORT_SYMBOL_NS(ms5611_remove, IIO_MS5611);
 
 MODULE_AUTHOR("Tomasz Duszynski <tduszyns@gmail.com>");
 MODULE_DESCRIPTION("MS5611 core driver");
diff --git a/drivers/iio/pressure/ms5611_i2c.c b/drivers/iio/pressure/ms5611_i2c.c
index 1047a85527a9..3b1de71e0d15 100644
--- a/drivers/iio/pressure/ms5611_i2c.c
+++ b/drivers/iio/pressure/ms5611_i2c.c
@@ -140,3 +140,4 @@ module_i2c_driver(ms5611_driver);
 MODULE_AUTHOR("Tomasz Duszynski <tduszyns@gmail.com>");
 MODULE_DESCRIPTION("MS5611 i2c driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_MS5611);
diff --git a/drivers/iio/pressure/ms5611_spi.c b/drivers/iio/pressure/ms5611_spi.c
index 9fa2dcd71760..281b08398720 100644
--- a/drivers/iio/pressure/ms5611_spi.c
+++ b/drivers/iio/pressure/ms5611_spi.c
@@ -142,3 +142,4 @@ module_spi_driver(ms5611_driver);
 MODULE_AUTHOR("Tomasz Duszynski <tduszyns@gmail.com>");
 MODULE_DESCRIPTION("MS5611 spi driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_MS5611);
-- 
2.35.1


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

* [PATCH 11/16] iio:pressure:mpl115: Move exports into IIO_MPL115 namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (9 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 10/16] iio:pressure:ms5611: Move exports into IIO_MS5611 namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 12/16] iio:magnetometer:rm3100: Move exports to IIO_RM3100 namespace Jonathan Cameron
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio; +Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the bus specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/pressure/mpl115.c     | 2 +-
 drivers/iio/pressure/mpl115_i2c.c | 1 +
 drivers/iio/pressure/mpl115_spi.c | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/pressure/mpl115.c b/drivers/iio/pressure/mpl115.c
index 81f288312a28..5bf5b9abe6f1 100644
--- a/drivers/iio/pressure/mpl115.c
+++ b/drivers/iio/pressure/mpl115.c
@@ -187,7 +187,7 @@ int mpl115_probe(struct device *dev, const char *name,
 
 	return devm_iio_device_register(dev, indio_dev);
 }
-EXPORT_SYMBOL_GPL(mpl115_probe);
+EXPORT_SYMBOL_NS_GPL(mpl115_probe, IIO_MPL115);
 
 MODULE_AUTHOR("Peter Meerwald <pmeerw@pmeerw.net>");
 MODULE_DESCRIPTION("Freescale MPL115 pressure/temperature driver");
diff --git a/drivers/iio/pressure/mpl115_i2c.c b/drivers/iio/pressure/mpl115_i2c.c
index ac1f12bcb65e..099ab1c6832c 100644
--- a/drivers/iio/pressure/mpl115_i2c.c
+++ b/drivers/iio/pressure/mpl115_i2c.c
@@ -62,3 +62,4 @@ module_i2c_driver(mpl115_i2c_driver);
 MODULE_AUTHOR("Peter Meerwald <pmeerw@pmeerw.net>");
 MODULE_DESCRIPTION("Freescale MPL115A2 pressure/temperature driver");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_MPL115);
diff --git a/drivers/iio/pressure/mpl115_spi.c b/drivers/iio/pressure/mpl115_spi.c
index 4d064f98f56a..7feec87e2704 100644
--- a/drivers/iio/pressure/mpl115_spi.c
+++ b/drivers/iio/pressure/mpl115_spi.c
@@ -101,3 +101,4 @@ module_spi_driver(mpl115_spi_driver);
 MODULE_AUTHOR("Akinobu Mita <akinobu.mita@gmail.com>");
 MODULE_DESCRIPTION("Freescale MPL115A1 pressure/temperature driver");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_MPL115);
-- 
2.35.1


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

* [PATCH 12/16] iio:magnetometer:rm3100: Move exports to IIO_RM3100 namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (10 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 11/16] iio:pressure:mpl115: Move exports into IIO_MPL115 namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 13/16] iio:magnetometer:bmc150: Move exports to IIO_BMC150_MAGN namespace Jonathan Cameron
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio
  Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron, Song Qiang

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the bus specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Song Qiang <songqiang1304521@gmail.com>
---
 drivers/iio/magnetometer/rm3100-core.c | 8 ++++----
 drivers/iio/magnetometer/rm3100-i2c.c  | 1 +
 drivers/iio/magnetometer/rm3100-spi.c  | 1 +
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/magnetometer/rm3100-core.c b/drivers/iio/magnetometer/rm3100-core.c
index 13914273c999..26195733ea3e 100644
--- a/drivers/iio/magnetometer/rm3100-core.c
+++ b/drivers/iio/magnetometer/rm3100-core.c
@@ -100,7 +100,7 @@ const struct regmap_access_table rm3100_readable_table = {
 	.yes_ranges = rm3100_readable_ranges,
 	.n_yes_ranges = ARRAY_SIZE(rm3100_readable_ranges),
 };
-EXPORT_SYMBOL_GPL(rm3100_readable_table);
+EXPORT_SYMBOL_NS_GPL(rm3100_readable_table, IIO_RM3100);
 
 static const struct regmap_range rm3100_writable_ranges[] = {
 	regmap_reg_range(RM3100_W_REG_START, RM3100_W_REG_END),
@@ -110,7 +110,7 @@ const struct regmap_access_table rm3100_writable_table = {
 	.yes_ranges = rm3100_writable_ranges,
 	.n_yes_ranges = ARRAY_SIZE(rm3100_writable_ranges),
 };
-EXPORT_SYMBOL_GPL(rm3100_writable_table);
+EXPORT_SYMBOL_NS_GPL(rm3100_writable_table, IIO_RM3100);
 
 static const struct regmap_range rm3100_volatile_ranges[] = {
 	regmap_reg_range(RM3100_V_REG_START, RM3100_V_REG_END),
@@ -120,7 +120,7 @@ const struct regmap_access_table rm3100_volatile_table = {
 	.yes_ranges = rm3100_volatile_ranges,
 	.n_yes_ranges = ARRAY_SIZE(rm3100_volatile_ranges),
 };
-EXPORT_SYMBOL_GPL(rm3100_volatile_table);
+EXPORT_SYMBOL_NS_GPL(rm3100_volatile_table, IIO_RM3100);
 
 static irqreturn_t rm3100_thread_fn(int irq, void *d)
 {
@@ -607,7 +607,7 @@ int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq)
 
 	return devm_iio_device_register(dev, indio_dev);
 }
-EXPORT_SYMBOL_GPL(rm3100_common_probe);
+EXPORT_SYMBOL_NS_GPL(rm3100_common_probe, IIO_RM3100);
 
 MODULE_AUTHOR("Song Qiang <songqiang1304521@gmail.com>");
 MODULE_DESCRIPTION("PNI RM3100 3-axis magnetometer i2c driver");
diff --git a/drivers/iio/magnetometer/rm3100-i2c.c b/drivers/iio/magnetometer/rm3100-i2c.c
index 1ac622c6d6c9..ba669ab7113d 100644
--- a/drivers/iio/magnetometer/rm3100-i2c.c
+++ b/drivers/iio/magnetometer/rm3100-i2c.c
@@ -52,3 +52,4 @@ module_i2c_driver(rm3100_driver);
 MODULE_AUTHOR("Song Qiang <songqiang1304521@gmail.com>");
 MODULE_DESCRIPTION("PNI RM3100 3-axis magnetometer i2c driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_RM3100);
diff --git a/drivers/iio/magnetometer/rm3100-spi.c b/drivers/iio/magnetometer/rm3100-spi.c
index 65d5eb9e4f5e..76dc9b66cd3c 100644
--- a/drivers/iio/magnetometer/rm3100-spi.c
+++ b/drivers/iio/magnetometer/rm3100-spi.c
@@ -62,3 +62,4 @@ module_spi_driver(rm3100_driver);
 MODULE_AUTHOR("Song Qiang <songqiang1304521@gmail.com>");
 MODULE_DESCRIPTION("PNI RM3100 3-axis magnetometer spi driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_RM3100);
-- 
2.35.1


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

* [PATCH 13/16] iio:magnetometer:bmc150: Move exports to IIO_BMC150_MAGN namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (11 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 12/16] iio:magnetometer:rm3100: Move exports to IIO_RM3100 namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:56 ` [PATCH 14/16] iio:magnetometer:hmc5843: Move exports to IIO_HMC5843 namespace Jonathan Cameron
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio; +Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the bus specific device drivers that use them.

Note the MAGN postfix here is reflecting that this driver is only
responsible for part of the BMC150 device.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/magnetometer/bmc150_magn.c     | 8 ++++----
 drivers/iio/magnetometer/bmc150_magn_i2c.c | 1 +
 drivers/iio/magnetometer/bmc150_magn_spi.c | 1 +
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/magnetometer/bmc150_magn.c b/drivers/iio/magnetometer/bmc150_magn.c
index f96f53175349..85f8bbf4b793 100644
--- a/drivers/iio/magnetometer/bmc150_magn.c
+++ b/drivers/iio/magnetometer/bmc150_magn.c
@@ -226,7 +226,7 @@ const struct regmap_config bmc150_magn_regmap_config = {
 	.writeable_reg = bmc150_magn_is_writeable_reg,
 	.volatile_reg = bmc150_magn_is_volatile_reg,
 };
-EXPORT_SYMBOL(bmc150_magn_regmap_config);
+EXPORT_SYMBOL_NS(bmc150_magn_regmap_config, IIO_BMC150_MAGN);
 
 static int bmc150_magn_set_power_mode(struct bmc150_magn_data *data,
 				      enum bmc150_magn_power_modes mode,
@@ -982,7 +982,7 @@ int bmc150_magn_probe(struct device *dev, struct regmap *regmap,
 	bmc150_magn_set_power_mode(data, BMC150_MAGN_POWER_MODE_SUSPEND, true);
 	return ret;
 }
-EXPORT_SYMBOL(bmc150_magn_probe);
+EXPORT_SYMBOL_NS(bmc150_magn_probe, IIO_BMC150_MAGN);
 
 int bmc150_magn_remove(struct device *dev)
 {
@@ -1009,7 +1009,7 @@ int bmc150_magn_remove(struct device *dev)
 	regulator_bulk_disable(ARRAY_SIZE(data->regulators), data->regulators);
 	return 0;
 }
-EXPORT_SYMBOL(bmc150_magn_remove);
+EXPORT_SYMBOL_NS(bmc150_magn_remove, IIO_BMC150_MAGN);
 
 #ifdef CONFIG_PM
 static int bmc150_magn_runtime_suspend(struct device *dev)
@@ -1077,7 +1077,7 @@ const struct dev_pm_ops bmc150_magn_pm_ops = {
 	SET_RUNTIME_PM_OPS(bmc150_magn_runtime_suspend,
 			   bmc150_magn_runtime_resume, NULL)
 };
-EXPORT_SYMBOL(bmc150_magn_pm_ops);
+EXPORT_SYMBOL_NS(bmc150_magn_pm_ops, IIO_BMC150_MAGN);
 
 MODULE_AUTHOR("Irina Tirdea <irina.tirdea@intel.com>");
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/iio/magnetometer/bmc150_magn_i2c.c b/drivers/iio/magnetometer/bmc150_magn_i2c.c
index 876e96005e33..e39b89661ad1 100644
--- a/drivers/iio/magnetometer/bmc150_magn_i2c.c
+++ b/drivers/iio/magnetometer/bmc150_magn_i2c.c
@@ -80,3 +80,4 @@ module_i2c_driver(bmc150_magn_driver);
 MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com");
 MODULE_LICENSE("GPL v2");
 MODULE_DESCRIPTION("BMC150 I2C magnetometer driver");
+MODULE_IMPORT_NS(IIO_BMC150_MAGN);
diff --git a/drivers/iio/magnetometer/bmc150_magn_spi.c b/drivers/iio/magnetometer/bmc150_magn_spi.c
index c6ed3ea8460a..0db363ffc462 100644
--- a/drivers/iio/magnetometer/bmc150_magn_spi.c
+++ b/drivers/iio/magnetometer/bmc150_magn_spi.c
@@ -66,3 +66,4 @@ module_spi_driver(bmc150_magn_spi_driver);
 MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com");
 MODULE_DESCRIPTION("BMC150 magnetometer SPI driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_BMC150_MAGN);
-- 
2.35.1


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

* [PATCH 14/16] iio:magnetometer:hmc5843: Move exports to IIO_HMC5843 namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (12 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 13/16] iio:magnetometer:bmc150: Move exports to IIO_BMC150_MAGN namespace Jonathan Cameron
@ 2022-01-30 20:56 ` Jonathan Cameron
  2022-01-30 20:57 ` [PATCH 15/16] iio:light:st_uvis25: Move exports to IIO_UVIS25 namespace Jonathan Cameron
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:56 UTC (permalink / raw)
  To: linux-iio; +Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the bus specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/magnetometer/hmc5843_core.c | 8 ++++----
 drivers/iio/magnetometer/hmc5843_i2c.c  | 1 +
 drivers/iio/magnetometer/hmc5843_spi.c  | 1 +
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/magnetometer/hmc5843_core.c b/drivers/iio/magnetometer/hmc5843_core.c
index 5a730d9bdbb0..92eb2d156ddb 100644
--- a/drivers/iio/magnetometer/hmc5843_core.c
+++ b/drivers/iio/magnetometer/hmc5843_core.c
@@ -608,14 +608,14 @@ int hmc5843_common_suspend(struct device *dev)
 	return hmc5843_set_mode(iio_priv(dev_get_drvdata(dev)),
 				HMC5843_MODE_SLEEP);
 }
-EXPORT_SYMBOL(hmc5843_common_suspend);
+EXPORT_SYMBOL_NS(hmc5843_common_suspend, IIO_HMC5843);
 
 int hmc5843_common_resume(struct device *dev)
 {
 	return hmc5843_set_mode(iio_priv(dev_get_drvdata(dev)),
 		HMC5843_MODE_CONVERSION_CONTINUOUS);
 }
-EXPORT_SYMBOL(hmc5843_common_resume);
+EXPORT_SYMBOL_NS(hmc5843_common_resume, IIO_HMC5843);
 
 int hmc5843_common_probe(struct device *dev, struct regmap *regmap,
 			 enum hmc5843_ids id, const char *name)
@@ -669,7 +669,7 @@ int hmc5843_common_probe(struct device *dev, struct regmap *regmap,
 	hmc5843_set_mode(iio_priv(indio_dev), HMC5843_MODE_SLEEP);
 	return ret;
 }
-EXPORT_SYMBOL(hmc5843_common_probe);
+EXPORT_SYMBOL_NS(hmc5843_common_probe, IIO_HMC5843);
 
 void hmc5843_common_remove(struct device *dev)
 {
@@ -681,7 +681,7 @@ void hmc5843_common_remove(struct device *dev)
 	/*  sleep mode to save power */
 	hmc5843_set_mode(iio_priv(indio_dev), HMC5843_MODE_SLEEP);
 }
-EXPORT_SYMBOL(hmc5843_common_remove);
+EXPORT_SYMBOL_NS(hmc5843_common_remove, IIO_HMC5843);
 
 MODULE_AUTHOR("Shubhrajyoti Datta <shubhrajyoti@ti.com>");
 MODULE_DESCRIPTION("HMC5843/5883/5883L/5983 core driver");
diff --git a/drivers/iio/magnetometer/hmc5843_i2c.c b/drivers/iio/magnetometer/hmc5843_i2c.c
index bc6e12f1d521..8d2ff8fc204d 100644
--- a/drivers/iio/magnetometer/hmc5843_i2c.c
+++ b/drivers/iio/magnetometer/hmc5843_i2c.c
@@ -105,3 +105,4 @@ module_i2c_driver(hmc5843_driver);
 MODULE_AUTHOR("Josef Gajdusek <atx@atx.name>");
 MODULE_DESCRIPTION("HMC5843/5883/5883L/5983 i2c driver");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_HMC5843);
diff --git a/drivers/iio/magnetometer/hmc5843_spi.c b/drivers/iio/magnetometer/hmc5843_spi.c
index 89cf59a62c28..f2a8e98d8eb5 100644
--- a/drivers/iio/magnetometer/hmc5843_spi.c
+++ b/drivers/iio/magnetometer/hmc5843_spi.c
@@ -102,3 +102,4 @@ module_spi_driver(hmc5843_driver);
 MODULE_AUTHOR("Josef Gajdusek <atx@atx.name>");
 MODULE_DESCRIPTION("HMC5983 SPI driver");
 MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(IIO_HMC5843);
-- 
2.35.1


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

* [PATCH 15/16] iio:light:st_uvis25: Move exports to IIO_UVIS25 namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (13 preceding siblings ...)
  2022-01-30 20:56 ` [PATCH 14/16] iio:magnetometer:hmc5843: Move exports to IIO_HMC5843 namespace Jonathan Cameron
@ 2022-01-30 20:57 ` Jonathan Cameron
  2022-01-30 20:57 ` [PATCH 16/16] iio:chemical:bme680: Move exports to IIO_BME680 namespace Jonathan Cameron
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:57 UTC (permalink / raw)
  To: linux-iio; +Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the bus specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/light/st_uvis25_core.c | 4 ++--
 drivers/iio/light/st_uvis25_i2c.c  | 1 +
 drivers/iio/light/st_uvis25_spi.c  | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/light/st_uvis25_core.c b/drivers/iio/light/st_uvis25_core.c
index 41a2ce5a2d53..3d4cc1180b6a 100644
--- a/drivers/iio/light/st_uvis25_core.c
+++ b/drivers/iio/light/st_uvis25_core.c
@@ -323,7 +323,7 @@ int st_uvis25_probe(struct device *dev, int irq, struct regmap *regmap)
 
 	return devm_iio_device_register(dev, iio_dev);
 }
-EXPORT_SYMBOL(st_uvis25_probe);
+EXPORT_SYMBOL_NS(st_uvis25_probe, IIO_UVIS25);
 
 static int __maybe_unused st_uvis25_suspend(struct device *dev)
 {
@@ -349,7 +349,7 @@ static int __maybe_unused st_uvis25_resume(struct device *dev)
 const struct dev_pm_ops st_uvis25_pm_ops = {
 	SET_SYSTEM_SLEEP_PM_OPS(st_uvis25_suspend, st_uvis25_resume)
 };
-EXPORT_SYMBOL(st_uvis25_pm_ops);
+EXPORT_SYMBOL_NS(st_uvis25_pm_ops, IIO_UVIS25);
 
 MODULE_AUTHOR("Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>");
 MODULE_DESCRIPTION("STMicroelectronics uvis25 sensor driver");
diff --git a/drivers/iio/light/st_uvis25_i2c.c b/drivers/iio/light/st_uvis25_i2c.c
index 98cd49eefe45..b06d09af28a3 100644
--- a/drivers/iio/light/st_uvis25_i2c.c
+++ b/drivers/iio/light/st_uvis25_i2c.c
@@ -66,3 +66,4 @@ module_i2c_driver(st_uvis25_driver);
 MODULE_AUTHOR("Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>");
 MODULE_DESCRIPTION("STMicroelectronics uvis25 i2c driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_UVIS25);
diff --git a/drivers/iio/light/st_uvis25_spi.c b/drivers/iio/light/st_uvis25_spi.c
index af9d94d12787..3a4dc6d7180c 100644
--- a/drivers/iio/light/st_uvis25_spi.c
+++ b/drivers/iio/light/st_uvis25_spi.c
@@ -66,3 +66,4 @@ module_spi_driver(st_uvis25_driver);
 MODULE_AUTHOR("Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>");
 MODULE_DESCRIPTION("STMicroelectronics uvis25 spi driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_UVIS25);
-- 
2.35.1


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

* [PATCH 16/16] iio:chemical:bme680: Move exports to IIO_BME680 namespace
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (14 preceding siblings ...)
  2022-01-30 20:57 ` [PATCH 15/16] iio:light:st_uvis25: Move exports to IIO_UVIS25 namespace Jonathan Cameron
@ 2022-01-30 20:57 ` Jonathan Cameron
  2022-01-31 10:50 ` [PATCH 00/16] 2nd set of IIO export namespaces Andy Shevchenko
  2022-01-31 10:56 ` Andy Shevchenko
  17 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-01-30 20:57 UTC (permalink / raw)
  To: linux-iio
  Cc: Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron, Himanshu Jha

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

In order to avoid unnecessary pollution of the global symbol namespace
move the common/library functions into a specific namespace and import
that into the bus specific device drivers that use them.

For more information see https://lwn.net/Articles/760045/

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Himanshu Jha <himanshujha199640@gmail.com>
---
 drivers/iio/chemical/bme680_core.c | 4 ++--
 drivers/iio/chemical/bme680_i2c.c  | 1 +
 drivers/iio/chemical/bme680_spi.c  | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c
index bf23cc7eb99e..16ff7a98c9f0 100644
--- a/drivers/iio/chemical/bme680_core.c
+++ b/drivers/iio/chemical/bme680_core.c
@@ -81,7 +81,7 @@ const struct regmap_config bme680_regmap_config = {
 	.volatile_table = &bme680_volatile_table,
 	.cache_type = REGCACHE_RBTREE,
 };
-EXPORT_SYMBOL(bme680_regmap_config);
+EXPORT_SYMBOL_NS(bme680_regmap_config, IIO_BME680);
 
 static const struct iio_chan_spec bme680_channels[] = {
 	{
@@ -957,7 +957,7 @@ int bme680_core_probe(struct device *dev, struct regmap *regmap,
 
 	return devm_iio_device_register(dev, indio_dev);
 }
-EXPORT_SYMBOL_GPL(bme680_core_probe);
+EXPORT_SYMBOL_NS_GPL(bme680_core_probe, IIO_BME680);
 
 MODULE_AUTHOR("Himanshu Jha <himanshujha199640@gmail.com>");
 MODULE_DESCRIPTION("Bosch BME680 Driver");
diff --git a/drivers/iio/chemical/bme680_i2c.c b/drivers/iio/chemical/bme680_i2c.c
index 74cf89c82c0a..20f2c20b6b02 100644
--- a/drivers/iio/chemical/bme680_i2c.c
+++ b/drivers/iio/chemical/bme680_i2c.c
@@ -60,3 +60,4 @@ module_i2c_driver(bme680_i2c_driver);
 MODULE_AUTHOR("Himanshu Jha <himanshujha199640@gmail.com>");
 MODULE_DESCRIPTION("BME680 I2C driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_BME680);
diff --git a/drivers/iio/chemical/bme680_spi.c b/drivers/iio/chemical/bme680_spi.c
index cc579a7ac5ce..36b13dd6ee63 100644
--- a/drivers/iio/chemical/bme680_spi.c
+++ b/drivers/iio/chemical/bme680_spi.c
@@ -163,3 +163,4 @@ module_spi_driver(bme680_spi_driver);
 MODULE_AUTHOR("Himanshu Jha <himanshujha199640@gmail.com>");
 MODULE_DESCRIPTION("Bosch BME680 SPI driver");
 MODULE_LICENSE("GPL v2");
+MODULE_IMPORT_NS(IIO_BME680);
-- 
2.35.1


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

* Re: [PATCH 00/16] 2nd set of IIO export namespaces
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (15 preceding siblings ...)
  2022-01-30 20:57 ` [PATCH 16/16] iio:chemical:bme680: Move exports to IIO_BME680 namespace Jonathan Cameron
@ 2022-01-31 10:50 ` Andy Shevchenko
  2022-02-18 11:39   ` Jonathan Cameron
  2022-01-31 10:56 ` Andy Shevchenko
  17 siblings, 1 reply; 22+ messages in thread
From: Andy Shevchenko @ 2022-01-31 10:50 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: linux-iio, Gwendal Grignou, Lars-Peter Clausen, Jonathan Cameron,
	Himanshu Jha, Song Qiang, Tomasz Duszynski, Song Bao Hua,
	Paul Cercueil, Alexandre Belloni, William Markezana,
	Ludovic Tancerel, Renato Lui Geh, Michael Hennerich

On Sun, Jan 30, 2022 at 10:50 PM Jonathan Cameron <jic23@kernel.org> wrote:
>
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> Whilst I'm still looking for additional review on the first set,
> I'll take the quiet as meaning no one objects and send out a second
> set.  Note that I don't have anyone cc'd on some of these because
> I couldn't immediately figure out who was still active and familiar
> with the drivers.  As these should be simple to review, please take
> a look at as many as you have time for!
>
> Here's the reasoning as per the first set cover letter.
> Note that we have some clashes with patches that I'd like to clean
> up the handling of dev_pm_ops and CONFIG_PM* guards so for now
> I've dropped those cases from this series.
>
> https://lwn.net/Articles/760045/ provides a good overview of this feature
> and why it might be used.  In this particular case we fall under the multi
> module case.  For each group of modules, I've moved the exports into
> an independent namespace.
>
> Whilst I'm not entirely sure it is worth the noise of moving the main
> IIO exports into a namespace, it is definitely worthwhile for these small
> clusters of related modules (typically a core + i2c and spi modules).
>
> I've just done those within drivers/accel (including all of st-sensors as
> I did not want to do that piecemeal) as an initial set to get feedback on
> what people think of the approach and in particular naming of the namespaces.
>
> As you can see it is a straight forward change to makes so I'll do the
> rest of the IIO drivers once we are agreed on the generic details.
> Note that I'll be expecting this for any new cases of this pattern going
> forwards.
>
> Includes a small diversion in st-sensors where we had a bunch of duplicated
> MODULE_* macros for some of the core modules which were made up of multiple
> c files.

I briefly looked at the series and found no drastical issues (hope CI
will find, if any), so
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> Cc: Himanshu Jha <himanshujha199640@gmail.com>
> Cc: Song Qiang <songqiang1304521@gmail.com>
> Cc: Tomasz Duszynski <tduszyns@gmail.com>
> Cc: Lars-Peter Clausen <lars@metafoo.de>
> Cc: Song Bao Hua (Barry Song) <song.bao.hua@hisilicon.com>
> Cc: Paul Cercueil <paul@crapouillou.net>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: William Markezana <william.markezana@meas-spec.com>
> Cc: Ludovic Tancerel <ludovic.tancerel@maplehightech.com>
> Cc: Renato Lui Geh <renatogeh@gmail.com>
> Cc: Michael Hennerich <Michael.Hennerich@analog.com>
>
>
> Jonathan Cameron (16):
>   iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace
>   iio:adc:ad7091r: Move exports into IIO_AD7091R namespace.
>   iio:adc:ad76060: Move exports into IIO_AD7606 namespace.
>   iio:common:meas-spec: Move exports into IIO_MEAS_SPEC_SENSORS
>   iio:common:ssp_sensors: Move exports into IIO_SSP_SENSORS namespace
>   iio:dac:ad5592r: Move exports into IIO_AD5592R namespace
>   iio:dac:ad5686: Move exports into IIO_AD5686 namespace
>   iio:imu:adis: Move exports into IIO_ADISLIB namespace
>   iio:pressure:zpa2326: Move exports into IIO_ZPA2326 namespace
>   iio:pressure:ms5611: Move exports into IIO_MS5611 namespace
>   iio:pressure:mpl115: Move exports into IIO_MPL115 namespace
>   iio:magnetometer:rm3100: Move exports to IIO_RM3100 namespace
>   iio:magnetometer:bmc150: Move exports to IIO_BMC150_MAGN namespace
>   iio:magnetometer:hmc5843: Move exports to IIO_HMC5843 namespace
>   iio:light:st_uvis25: Move exports to IIO_UVIS25 namespace
>   iio:chemical:bme680: Move exports to IIO_BME680 namespace
>
>  drivers/iio/accel/adis16201.c                 |  1 +
>  drivers/iio/accel/adis16209.c                 |  1 +
>  drivers/iio/accel/ssp_accel_sensor.c          |  1 +
>  drivers/iio/adc/ad7091r-base.c                |  4 ++--
>  drivers/iio/adc/ad7091r5.c                    |  1 +
>  drivers/iio/adc/ad7124.c                      |  1 +
>  drivers/iio/adc/ad7192.c                      |  1 +
>  drivers/iio/adc/ad7606.c                      |  4 ++--
>  drivers/iio/adc/ad7606_par.c                  |  1 +
>  drivers/iio/adc/ad7606_spi.c                  |  1 +
>  drivers/iio/adc/ad7780.c                      |  1 +
>  drivers/iio/adc/ad7791.c                      |  1 +
>  drivers/iio/adc/ad7793.c                      |  1 +
>  drivers/iio/adc/ad_sigma_delta.c              | 20 ++++++++--------
>  drivers/iio/chemical/bme680_core.c            |  4 ++--
>  drivers/iio/chemical/bme680_i2c.c             |  1 +
>  drivers/iio/chemical/bme680_spi.c             |  1 +
>  .../iio/common/ms_sensors/ms_sensors_i2c.c    | 24 +++++++++----------
>  drivers/iio/common/ssp_sensors/ssp_dev.c      | 10 ++++----
>  drivers/iio/common/ssp_sensors/ssp_iio.c      |  7 +++---
>  drivers/iio/dac/ad5592r-base.c                |  4 ++--
>  drivers/iio/dac/ad5592r.c                     |  1 +
>  drivers/iio/dac/ad5593r.c                     |  1 +
>  drivers/iio/dac/ad5686-spi.c                  |  1 +
>  drivers/iio/dac/ad5686.c                      |  4 ++--
>  drivers/iio/dac/ad5696-i2c.c                  |  1 +
>  drivers/iio/gyro/adis16136.c                  |  1 +
>  drivers/iio/gyro/adis16260.c                  |  1 +
>  drivers/iio/gyro/ssp_gyro_sensor.c            |  1 +
>  drivers/iio/humidity/htu21.c                  |  1 +
>  drivers/iio/imu/adis.c                        | 20 ++++++++--------
>  drivers/iio/imu/adis16400.c                   |  1 +
>  drivers/iio/imu/adis16460.c                   |  1 +
>  drivers/iio/imu/adis16475.c                   |  1 +
>  drivers/iio/imu/adis16480.c                   |  1 +
>  drivers/iio/imu/adis_buffer.c                 |  4 ++--
>  drivers/iio/imu/adis_trigger.c                |  2 +-
>  drivers/iio/light/st_uvis25_core.c            |  4 ++--
>  drivers/iio/light/st_uvis25_i2c.c             |  1 +
>  drivers/iio/light/st_uvis25_spi.c             |  1 +
>  drivers/iio/magnetometer/bmc150_magn.c        |  8 +++----
>  drivers/iio/magnetometer/bmc150_magn_i2c.c    |  1 +
>  drivers/iio/magnetometer/bmc150_magn_spi.c    |  1 +
>  drivers/iio/magnetometer/hmc5843_core.c       |  8 +++----
>  drivers/iio/magnetometer/hmc5843_i2c.c        |  1 +
>  drivers/iio/magnetometer/hmc5843_spi.c        |  1 +
>  drivers/iio/magnetometer/rm3100-core.c        |  8 +++----
>  drivers/iio/magnetometer/rm3100-i2c.c         |  1 +
>  drivers/iio/magnetometer/rm3100-spi.c         |  1 +
>  drivers/iio/pressure/mpl115.c                 |  2 +-
>  drivers/iio/pressure/mpl115_i2c.c             |  1 +
>  drivers/iio/pressure/mpl115_spi.c             |  1 +
>  drivers/iio/pressure/ms5611_core.c            |  4 ++--
>  drivers/iio/pressure/ms5611_i2c.c             |  1 +
>  drivers/iio/pressure/ms5611_spi.c             |  1 +
>  drivers/iio/pressure/ms5637.c                 |  1 +
>  drivers/iio/pressure/zpa2326.c                | 12 +++++-----
>  drivers/iio/pressure/zpa2326_i2c.c            |  1 +
>  drivers/iio/pressure/zpa2326_spi.c            |  1 +
>  drivers/iio/temperature/tsys01.c              |  1 +
>  drivers/iio/temperature/tsys02d.c             |  1 +
>  drivers/staging/iio/accel/adis16203.c         |  1 +
>  drivers/staging/iio/accel/adis16240.c         |  1 +
>  63 files changed, 121 insertions(+), 76 deletions(-)
>
> --
> 2.35.1
>


-- 
With Best Regards,
Andy Shevchenko

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

* Re: [PATCH 00/16] 2nd set of IIO export namespaces
  2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
                   ` (16 preceding siblings ...)
  2022-01-31 10:50 ` [PATCH 00/16] 2nd set of IIO export namespaces Andy Shevchenko
@ 2022-01-31 10:56 ` Andy Shevchenko
  17 siblings, 0 replies; 22+ messages in thread
From: Andy Shevchenko @ 2022-01-31 10:56 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: linux-iio, Gwendal Grignou, Lars-Peter Clausen, Jonathan Cameron,
	Himanshu Jha, Song Qiang, Tomasz Duszynski, Song Bao Hua,
	Paul Cercueil, Alexandre Belloni, Renato Lui Geh,
	Michael Hennerich

On Sun, Jan 30, 2022 at 10:50 PM Jonathan Cameron <jic23@kernel.org> wrote:
>
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> Whilst I'm still looking for additional review on the first set,
> I'll take the quiet as meaning no one objects and send out a second
> set.  Note that I don't have anyone cc'd on some of these because
> I couldn't immediately figure out who was still active and familiar
> with the drivers.  As these should be simple to review, please take
> a look at as many as you have time for!

I created a script [1] for myself with some heuristics which showed to
work quite well for me.

[1]: https://github.com/andy-shev/home-bin-tools/blob/master/ge2maintainer.sh

-- 
With Best Regards,
Andy Shevchenko

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

* Re: [PATCH 02/16] iio:adc:ad7091r: Move exports into IIO_AD7091R namespace.
  2022-01-30 20:56 ` [PATCH 02/16] iio:adc:ad7091r: Move exports into IIO_AD7091R namespace Jonathan Cameron
@ 2022-01-31 13:53   ` Paul Cercueil
  0 siblings, 0 replies; 22+ messages in thread
From: Paul Cercueil @ 2022-01-31 13:53 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: linux-iio, Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron

Hi Jonathan,

Le dim., janv. 30 2022 at 20:56:47 +0000, Jonathan Cameron 
<jic23@kernel.org> a écrit :
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> In order to avoid unnecessary pollution of the global symbol namespace
> move the core/library functions into a specific namespace and import
> that into the various specific device drivers that use them.
> 
> For more information see https://lwn.net/Articles/760045/
> 
> An alternative here would be to conclude that we are unlikely to see
> support for the other ad7091r parts in the near future and just merge
> the two modules into one supporting just the i2c -5 variant.

Unlikely in the near future, yes. I wouldn't totally close the door but 
it's not in our short-term plans.

If you think it's better to merge the two modules into one in the 
meantime - fine with me.

> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Paul Cercueil <paul@crapouillou.net>

Otherwise:

Reviewed-by: Paul Cercueil <paul@crapouillou.net>

Cheers,
-Paul

> ---
>  drivers/iio/adc/ad7091r-base.c | 4 ++--
>  drivers/iio/adc/ad7091r5.c     | 1 +
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/adc/ad7091r-base.c 
> b/drivers/iio/adc/ad7091r-base.c
> index 63b4d6ea4566..8e252cde735b 100644
> --- a/drivers/iio/adc/ad7091r-base.c
> +++ b/drivers/iio/adc/ad7091r-base.c
> @@ -260,7 +260,7 @@ int ad7091r_probe(struct device *dev, const char 
> *name,
> 
>  	return devm_iio_device_register(dev, iio_dev);
>  }
> -EXPORT_SYMBOL_GPL(ad7091r_probe);
> +EXPORT_SYMBOL_NS_GPL(ad7091r_probe, IIO_AD7091R);
> 
>  static bool ad7091r_writeable_reg(struct device *dev, unsigned int 
> reg)
>  {
> @@ -290,7 +290,7 @@ const struct regmap_config ad7091r_regmap_config 
> = {
>  	.writeable_reg = ad7091r_writeable_reg,
>  	.volatile_reg = ad7091r_volatile_reg,
>  };
> -EXPORT_SYMBOL_GPL(ad7091r_regmap_config);
> +EXPORT_SYMBOL_NS_GPL(ad7091r_regmap_config, IIO_AD7091R);
> 
>  MODULE_AUTHOR("Beniamin Bia <beniamin.bia@analog.com>");
>  MODULE_DESCRIPTION("Analog Devices AD7091Rx multi-channel 
> converters");
> diff --git a/drivers/iio/adc/ad7091r5.c b/drivers/iio/adc/ad7091r5.c
> index 9665679c3ea6..47f5763023a4 100644
> --- a/drivers/iio/adc/ad7091r5.c
> +++ b/drivers/iio/adc/ad7091r5.c
> @@ -111,3 +111,4 @@ module_i2c_driver(ad7091r5_driver);
>  MODULE_AUTHOR("Beniamin Bia <beniamin.bia@analog.com>");
>  MODULE_DESCRIPTION("Analog Devices AD7091R5 multi-channel ADC 
> driver");
>  MODULE_LICENSE("GPL v2");
> +MODULE_IMPORT_NS(IIO_AD7091R);
> --
> 2.35.1
> 



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

* Re: [PATCH 06/16] iio:dac:ad5592r: Move exports into IIO_AD5592R namespace
  2022-01-30 20:56 ` [PATCH 06/16] iio:dac:ad5592r: Move exports into IIO_AD5592R namespace Jonathan Cameron
@ 2022-01-31 13:55   ` Paul Cercueil
  0 siblings, 0 replies; 22+ messages in thread
From: Paul Cercueil @ 2022-01-31 13:55 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: linux-iio, Andy Shevchenko, Gwendal Grignou, lars, Jonathan Cameron



Le dim., janv. 30 2022 at 20:56:51 +0000, Jonathan Cameron 
<jic23@kernel.org> a écrit :
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> In order to avoid unnecessary pollution of the global symbol namespace
> move the common/library functions into a specific namespace and import
> that into the various specific device drivers that use them.
> 
> For more information see https://lwn.net/Articles/760045/
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Paul Cercueil <paul@crapouillou.net>

Reviewed-by: Paul Cercueil <paul@crapouillou.net>

Cheers,
-Paul

> ---
>  drivers/iio/dac/ad5592r-base.c | 4 ++--
>  drivers/iio/dac/ad5592r.c      | 1 +
>  drivers/iio/dac/ad5593r.c      | 1 +
>  3 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/dac/ad5592r-base.c 
> b/drivers/iio/dac/ad5592r-base.c
> index 2fcc59728fd6..ec2937b8d768 100644
> --- a/drivers/iio/dac/ad5592r-base.c
> +++ b/drivers/iio/dac/ad5592r-base.c
> @@ -661,7 +661,7 @@ int ad5592r_probe(struct device *dev, const char 
> *name,
> 
>  	return ret;
>  }
> -EXPORT_SYMBOL_GPL(ad5592r_probe);
> +EXPORT_SYMBOL_NS_GPL(ad5592r_probe, IIO_AD5592R);
> 
>  void ad5592r_remove(struct device *dev)
>  {
> @@ -675,7 +675,7 @@ void ad5592r_remove(struct device *dev)
>  	if (st->reg)
>  		regulator_disable(st->reg);
>  }
> -EXPORT_SYMBOL_GPL(ad5592r_remove);
> +EXPORT_SYMBOL_NS_GPL(ad5592r_remove, IIO_AD5592R);
> 
>  MODULE_AUTHOR("Paul Cercueil <paul.cercueil@analog.com>");
>  MODULE_DESCRIPTION("Analog Devices AD5592R multi-channel 
> converters");
> diff --git a/drivers/iio/dac/ad5592r.c b/drivers/iio/dac/ad5592r.c
> index 6bfd7951e18c..1572279b04bb 100644
> --- a/drivers/iio/dac/ad5592r.c
> +++ b/drivers/iio/dac/ad5592r.c
> @@ -170,3 +170,4 @@ module_spi_driver(ad5592r_spi_driver);
>  MODULE_AUTHOR("Paul Cercueil <paul.cercueil@analog.com>");
>  MODULE_DESCRIPTION("Analog Devices AD5592R multi-channel 
> converters");
>  MODULE_LICENSE("GPL v2");
> +MODULE_IMPORT_NS(IIO_AD5592R);
> diff --git a/drivers/iio/dac/ad5593r.c b/drivers/iio/dac/ad5593r.c
> index 64dd7a0bddf7..34e1319a9712 100644
> --- a/drivers/iio/dac/ad5593r.c
> +++ b/drivers/iio/dac/ad5593r.c
> @@ -137,3 +137,4 @@ module_i2c_driver(ad5593r_driver);
>  MODULE_AUTHOR("Paul Cercueil <paul.cercueil@analog.com>");
>  MODULE_DESCRIPTION("Analog Devices AD5593R multi-channel 
> converters");
>  MODULE_LICENSE("GPL v2");
> +MODULE_IMPORT_NS(IIO_AD5592R);
> --
> 2.35.1
> 



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

* Re: [PATCH 00/16] 2nd set of IIO export namespaces
  2022-01-31 10:50 ` [PATCH 00/16] 2nd set of IIO export namespaces Andy Shevchenko
@ 2022-02-18 11:39   ` Jonathan Cameron
  0 siblings, 0 replies; 22+ messages in thread
From: Jonathan Cameron @ 2022-02-18 11:39 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: linux-iio, Gwendal Grignou, Lars-Peter Clausen, Jonathan Cameron,
	Himanshu Jha, Song Qiang, Tomasz Duszynski, Song Bao Hua,
	Paul Cercueil, Alexandre Belloni, William Markezana,
	Ludovic Tancerel, Renato Lui Geh, Michael Hennerich

On Mon, 31 Jan 2022 12:50:32 +0200
Andy Shevchenko <andy.shevchenko@gmail.com> wrote:

> On Sun, Jan 30, 2022 at 10:50 PM Jonathan Cameron <jic23@kernel.org> wrote:
> >
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> >
> > Whilst I'm still looking for additional review on the first set,
> > I'll take the quiet as meaning no one objects and send out a second
> > set.  Note that I don't have anyone cc'd on some of these because
> > I couldn't immediately figure out who was still active and familiar
> > with the drivers.  As these should be simple to review, please take
> > a look at as many as you have time for!
> >
> > Here's the reasoning as per the first set cover letter.
> > Note that we have some clashes with patches that I'd like to clean
> > up the handling of dev_pm_ops and CONFIG_PM* guards so for now
> > I've dropped those cases from this series.
> >
> > https://lwn.net/Articles/760045/ provides a good overview of this feature
> > and why it might be used.  In this particular case we fall under the multi
> > module case.  For each group of modules, I've moved the exports into
> > an independent namespace.
> >
> > Whilst I'm not entirely sure it is worth the noise of moving the main
> > IIO exports into a namespace, it is definitely worthwhile for these small
> > clusters of related modules (typically a core + i2c and spi modules).
> >
> > I've just done those within drivers/accel (including all of st-sensors as
> > I did not want to do that piecemeal) as an initial set to get feedback on
> > what people think of the approach and in particular naming of the namespaces.
> >
> > As you can see it is a straight forward change to makes so I'll do the
> > rest of the IIO drivers once we are agreed on the generic details.
> > Note that I'll be expecting this for any new cases of this pattern going
> > forwards.
> >
> > Includes a small diversion in st-sensors where we had a bunch of duplicated
> > MODULE_* macros for some of the core modules which were made up of multiple
> > c files.  
> 
> I briefly looked at the series and found no drastical issues (hope CI
> will find, if any), so
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Thanks

Series applied to the togreg branch of iio.git and pushed out as testing
to see if CI can find anything.

Thanks,

Jonathan
> 
> > Cc: Himanshu Jha <himanshujha199640@gmail.com>
> > Cc: Song Qiang <songqiang1304521@gmail.com>
> > Cc: Tomasz Duszynski <tduszyns@gmail.com>
> > Cc: Lars-Peter Clausen <lars@metafoo.de>
> > Cc: Song Bao Hua (Barry Song) <song.bao.hua@hisilicon.com>
> > Cc: Paul Cercueil <paul@crapouillou.net>
> > Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> > Cc: William Markezana <william.markezana@meas-spec.com>
> > Cc: Ludovic Tancerel <ludovic.tancerel@maplehightech.com>
> > Cc: Renato Lui Geh <renatogeh@gmail.com>
> > Cc: Michael Hennerich <Michael.Hennerich@analog.com>
> >
> >
> > Jonathan Cameron (16):
> >   iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace
> >   iio:adc:ad7091r: Move exports into IIO_AD7091R namespace.
> >   iio:adc:ad76060: Move exports into IIO_AD7606 namespace.
> >   iio:common:meas-spec: Move exports into IIO_MEAS_SPEC_SENSORS
> >   iio:common:ssp_sensors: Move exports into IIO_SSP_SENSORS namespace
> >   iio:dac:ad5592r: Move exports into IIO_AD5592R namespace
> >   iio:dac:ad5686: Move exports into IIO_AD5686 namespace
> >   iio:imu:adis: Move exports into IIO_ADISLIB namespace
> >   iio:pressure:zpa2326: Move exports into IIO_ZPA2326 namespace
> >   iio:pressure:ms5611: Move exports into IIO_MS5611 namespace
> >   iio:pressure:mpl115: Move exports into IIO_MPL115 namespace
> >   iio:magnetometer:rm3100: Move exports to IIO_RM3100 namespace
> >   iio:magnetometer:bmc150: Move exports to IIO_BMC150_MAGN namespace
> >   iio:magnetometer:hmc5843: Move exports to IIO_HMC5843 namespace
> >   iio:light:st_uvis25: Move exports to IIO_UVIS25 namespace
> >   iio:chemical:bme680: Move exports to IIO_BME680 namespace
> >
> >  drivers/iio/accel/adis16201.c                 |  1 +
> >  drivers/iio/accel/adis16209.c                 |  1 +
> >  drivers/iio/accel/ssp_accel_sensor.c          |  1 +
> >  drivers/iio/adc/ad7091r-base.c                |  4 ++--
> >  drivers/iio/adc/ad7091r5.c                    |  1 +
> >  drivers/iio/adc/ad7124.c                      |  1 +
> >  drivers/iio/adc/ad7192.c                      |  1 +
> >  drivers/iio/adc/ad7606.c                      |  4 ++--
> >  drivers/iio/adc/ad7606_par.c                  |  1 +
> >  drivers/iio/adc/ad7606_spi.c                  |  1 +
> >  drivers/iio/adc/ad7780.c                      |  1 +
> >  drivers/iio/adc/ad7791.c                      |  1 +
> >  drivers/iio/adc/ad7793.c                      |  1 +
> >  drivers/iio/adc/ad_sigma_delta.c              | 20 ++++++++--------
> >  drivers/iio/chemical/bme680_core.c            |  4 ++--
> >  drivers/iio/chemical/bme680_i2c.c             |  1 +
> >  drivers/iio/chemical/bme680_spi.c             |  1 +
> >  .../iio/common/ms_sensors/ms_sensors_i2c.c    | 24 +++++++++----------
> >  drivers/iio/common/ssp_sensors/ssp_dev.c      | 10 ++++----
> >  drivers/iio/common/ssp_sensors/ssp_iio.c      |  7 +++---
> >  drivers/iio/dac/ad5592r-base.c                |  4 ++--
> >  drivers/iio/dac/ad5592r.c                     |  1 +
> >  drivers/iio/dac/ad5593r.c                     |  1 +
> >  drivers/iio/dac/ad5686-spi.c                  |  1 +
> >  drivers/iio/dac/ad5686.c                      |  4 ++--
> >  drivers/iio/dac/ad5696-i2c.c                  |  1 +
> >  drivers/iio/gyro/adis16136.c                  |  1 +
> >  drivers/iio/gyro/adis16260.c                  |  1 +
> >  drivers/iio/gyro/ssp_gyro_sensor.c            |  1 +
> >  drivers/iio/humidity/htu21.c                  |  1 +
> >  drivers/iio/imu/adis.c                        | 20 ++++++++--------
> >  drivers/iio/imu/adis16400.c                   |  1 +
> >  drivers/iio/imu/adis16460.c                   |  1 +
> >  drivers/iio/imu/adis16475.c                   |  1 +
> >  drivers/iio/imu/adis16480.c                   |  1 +
> >  drivers/iio/imu/adis_buffer.c                 |  4 ++--
> >  drivers/iio/imu/adis_trigger.c                |  2 +-
> >  drivers/iio/light/st_uvis25_core.c            |  4 ++--
> >  drivers/iio/light/st_uvis25_i2c.c             |  1 +
> >  drivers/iio/light/st_uvis25_spi.c             |  1 +
> >  drivers/iio/magnetometer/bmc150_magn.c        |  8 +++----
> >  drivers/iio/magnetometer/bmc150_magn_i2c.c    |  1 +
> >  drivers/iio/magnetometer/bmc150_magn_spi.c    |  1 +
> >  drivers/iio/magnetometer/hmc5843_core.c       |  8 +++----
> >  drivers/iio/magnetometer/hmc5843_i2c.c        |  1 +
> >  drivers/iio/magnetometer/hmc5843_spi.c        |  1 +
> >  drivers/iio/magnetometer/rm3100-core.c        |  8 +++----
> >  drivers/iio/magnetometer/rm3100-i2c.c         |  1 +
> >  drivers/iio/magnetometer/rm3100-spi.c         |  1 +
> >  drivers/iio/pressure/mpl115.c                 |  2 +-
> >  drivers/iio/pressure/mpl115_i2c.c             |  1 +
> >  drivers/iio/pressure/mpl115_spi.c             |  1 +
> >  drivers/iio/pressure/ms5611_core.c            |  4 ++--
> >  drivers/iio/pressure/ms5611_i2c.c             |  1 +
> >  drivers/iio/pressure/ms5611_spi.c             |  1 +
> >  drivers/iio/pressure/ms5637.c                 |  1 +
> >  drivers/iio/pressure/zpa2326.c                | 12 +++++-----
> >  drivers/iio/pressure/zpa2326_i2c.c            |  1 +
> >  drivers/iio/pressure/zpa2326_spi.c            |  1 +
> >  drivers/iio/temperature/tsys01.c              |  1 +
> >  drivers/iio/temperature/tsys02d.c             |  1 +
> >  drivers/staging/iio/accel/adis16203.c         |  1 +
> >  drivers/staging/iio/accel/adis16240.c         |  1 +
> >  63 files changed, 121 insertions(+), 76 deletions(-)
> >
> > --
> > 2.35.1
> >  
> 
> 


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

end of thread, other threads:[~2022-02-18 11:33 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-30 20:56 [PATCH 00/16] 2nd set of IIO export namespaces Jonathan Cameron
2022-01-30 20:56 ` [PATCH 01/16] iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 02/16] iio:adc:ad7091r: Move exports into IIO_AD7091R namespace Jonathan Cameron
2022-01-31 13:53   ` Paul Cercueil
2022-01-30 20:56 ` [PATCH 03/16] iio:adc:ad76060: Move exports into IIO_AD7606 namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 04/16] iio:common:meas-spec: Move exports into IIO_MEAS_SPEC_SENSORS Jonathan Cameron
2022-01-30 20:56 ` [PATCH 05/16] iio:common:ssp_sensors: Move exports into IIO_SSP_SENSORS namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 06/16] iio:dac:ad5592r: Move exports into IIO_AD5592R namespace Jonathan Cameron
2022-01-31 13:55   ` Paul Cercueil
2022-01-30 20:56 ` [PATCH 07/16] iio:dac:ad5686: Move exports into IIO_AD5686 namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 08/16] iio:imu:adis: Move exports into IIO_ADISLIB namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 09/16] iio:pressure:zpa2326: Move exports into IIO_ZPA2326 namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 10/16] iio:pressure:ms5611: Move exports into IIO_MS5611 namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 11/16] iio:pressure:mpl115: Move exports into IIO_MPL115 namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 12/16] iio:magnetometer:rm3100: Move exports to IIO_RM3100 namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 13/16] iio:magnetometer:bmc150: Move exports to IIO_BMC150_MAGN namespace Jonathan Cameron
2022-01-30 20:56 ` [PATCH 14/16] iio:magnetometer:hmc5843: Move exports to IIO_HMC5843 namespace Jonathan Cameron
2022-01-30 20:57 ` [PATCH 15/16] iio:light:st_uvis25: Move exports to IIO_UVIS25 namespace Jonathan Cameron
2022-01-30 20:57 ` [PATCH 16/16] iio:chemical:bme680: Move exports to IIO_BME680 namespace Jonathan Cameron
2022-01-31 10:50 ` [PATCH 00/16] 2nd set of IIO export namespaces Andy Shevchenko
2022-02-18 11:39   ` Jonathan Cameron
2022-01-31 10:56 ` Andy Shevchenko

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.