summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Klug <john.klug@multitech.com>2023-01-18 13:20:21 -0600
committerJohn Klug <john.klug@multitech.com>2023-01-18 16:10:44 -0600
commit69645a71d82453a59b9fbfe4ccbf2ceaa2f0696f (patch)
treec9043b18d76f794ad4220f77fa188afe61c0ea8a
parentb3c804673044d9e92c4f181f73d21fceca115191 (diff)
downloadmts-io-69645a71d82453a59b9fbfe4ccbf2ceaa2f0696f.tar.gz
mts-io-69645a71d82453a59b9fbfe4ccbf2ceaa2f0696f.tar.bz2
mts-io-69645a71d82453a59b9fbfe4ccbf2ceaa2f0696f.zip
Fix log noise comming from MTS-IO module
-rw-r--r--io-module/mts-io.c87
1 files changed, 56 insertions, 31 deletions
diff --git a/io-module/mts-io.c b/io-module/mts-io.c
index df52a12..0072d2e 100644
--- a/io-module/mts-io.c
+++ b/io-module/mts-io.c
@@ -122,18 +122,18 @@ static int mts_io_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, mts_io_dd);
if (!dev->parent) {
- log_warning("Parent device is not found");
+ dev_info(dev, "Parent device is not found");
} else if (dev->parent == &platform_bus) {
- log_info("Parent device is platform_bus. No need to create symlink");
+ dev_info(dev "Parent device is platform_bus. No need to create symlink");
goto exit;
}
- log_info("Creating symlink on platform_bus to %s", symlink_name);
+ dev_info(dev "Creating symlink on platform_bus to %s", symlink_name);
res = sysfs_create_link(&platform_bus.kobj, &dev->kobj, symlink_name);
if (!res) {
mts_io_dd->f_platform_bus_symlink = true;
} else {
- log_warning("Failed to create symlink");
+ dev_warn(dev "Failed to create symlink");
}
exit:
@@ -148,7 +148,7 @@ static int mts_io_remove(struct platform_device *pdev)
struct mts_io_drvdata *mts_io_dd = platform_get_drvdata(pdev);
const char *symlink_name = kobject_name(&pdev->dev.kobj);
if (mts_io_dd && mts_io_dd->f_platform_bus_symlink) {
- log_info("Removing %s symlink from platform_bus", symlink_name);
+ dev_info(&mts_io_platform_device->dev,"Removing %s symlink from platform_bus", symlink_name); //JAK
sysfs_remove_link(&platform_bus.kobj, symlink_name);
}
#endif // PLATFORM_BUS_SYMLINK
@@ -246,14 +246,14 @@ mts_has_radio(const char *product_id, size_t len)
return 1; /* No Product ID? */
p = memchr(product_id,'-',len);
if (p) { /* Found a hyphen */
- log_debug("Found hyphen");
+ dev_dbg(&mts_io_platform_device->dev,"Found hyphen");
p++;
if (p >= product_id+len) {
- log_debug("End of string -- hyphen");
+ dev_dbg(&mts_io_platform_device->dev,"End of string -- hyphen");
return 1; /* Last character was hyphen */
}
if (isdigit(*p)) {
- log_debug("Found digit after hypen");
+ dev_dbg(&mts_io_platform_device->dev,"Found digit after hypen");
return 0; /* Modem name never starts with a digit */
}
@@ -264,30 +264,30 @@ mts_has_radio(const char *product_id, size_t len)
if (*p == 'I')
found_i = 1;
if ((*p != 'B') && (! found_i)) {
- log_debug("Did not find B, I, or digit after hyphen in product-id");
+ dev_dbg(&mts_io_platform_device->dev,"Did not find B, I, or digit after hyphen in product-id");
return 1; /* Modem starting with a letter, but not B or I */
}
/* Found a B or an I */
p++;
if (p >= product_id+len) {
- log_debug("B or I at end of product-id string");
+ dev_dbg(&mts_io_platform_device->dev,"B or I at end of product-id string");
return 1; /* Last character was B or I */
}
/* No modem starts with IN */
if (found_i && (*p == 'N')) {
- log_debug("IN found in 2nd product-id field -- India LoRa Channel plan");
+ dev_dbg(&mts_io_platform_device->dev,"IN found in 2nd product-id field -- India LoRa Channel plan");
return 0;
}
if (isdigit(*p)) {
- log_debug("B followed by digit after hyphen - no modem");
+ dev_dbg(&mts_io_platform_device->dev,"B followed by digit after hyphen - no modem");
return 0; /* B[numeric] is MTR Build number */
}
- log_debug("B followed by non-digit after hyphen - has modem");
+ dev_dbg(&mts_io_platform_device->dev,"B followed by non-digit after hyphen - has modem");
return 1; /* B[non-numeric] so assume a modem that starts with B */
} /* End of found hyphen case */
- log_debug("Undefined product-id - has modem");
+ dev_dbg(&mts_io_platform_device->dev,"Undefined product-id - has modem");
return 1; /* Product id invalid or empty, so instantiate a radio anyway */
}
EXPORT_SYMBOL(mts_has_radio);
@@ -855,7 +855,7 @@ mts_id_eeprom_load(void)
noradio = 0;
}
- log_debug("mts_id_eeprom_load: noradio=%d",noradio);
+ dev_dbg(&mts_io_platform_device->dev,"mts_id_eeprom_load: noradio=%d",noradio);
if (found_board(HW_VERSION_MTCAP_0_0,MTCAP_0_0,&hw_version_str,&mts_hw_version) ||
found_board(HW_VERSION_MTCAP_0_1,MTCAP_0_1,&hw_version_str,&mts_hw_version) ||
@@ -1410,7 +1410,7 @@ mts_id_eeprom_load(void)
static void cleanup(void)
{
- log_info("cleaning up....");
+ printk(KERN_INFO "mts-io: cleaning up....");
if (mts_io_platform_device != NULL && attr_group != NULL) {
sysfs_remove_group(&mts_io_platform_device->dev.kobj, attr_group);
@@ -1507,20 +1507,22 @@ static int __init mts_io_init(void)
dev_dbg(&mts_io_platform_device->dev,"Request name:%s label: %s\n", pin->name, pin->pin.label);
pin->desc = devm_gpiod_get_optional(&mts_io_platform_device->dev, pin->name, pin->pin.flags);
if (IS_ERR(pin->desc)) {
- log_warning(
- "%s: Could not get gpio %s: Error: %ld\n", __func__, pin->name, PTR_ERR(pin->desc));
+ dev_err(&mts_io_platform_device->dev,
+ "%s: Could not get gpio %s: Error: %ld\n", __func__, pin->name, PTR_ERR(pin->desc));
} else {
- if (pin->desc == NULL)
- dev_dbg(&mts_io_platform_device->dev,"gpio_desc is null for name: %s, label: %s\n",
- pin->name, pin->pin.label);
+ if (pin->desc == NULL)
+ dev_dbg(&mts_io_platform_device->dev,"gpio_desc is null for name: %s, label: %s\n",
+ pin->name, pin->pin.label);
else
- dev_dbg(&mts_io_platform_device->dev,"Found gpio %s\n", pin->name);
+ dev_dbg(&mts_io_platform_device->dev,"Found gpio %s\n", pin->name);
}
} else {
dev_dbg(&mts_io_platform_device->dev,"Request name:%s label: %s pin: %d\n", pin->name, pin->pin.label, pin->pin.gpio);
ret = gpio_request_one(pin->pin.gpio, pin->pin.flags, pin->pin.label);
if (ret)
- log_warning("could not request pin %s (%d) but it could have already been requested under a different pin name\n", pin->name, ret);
+ dev_dbg(&mts_io_platform_device->dev,
+ "Could not request pin %s (%d) but it could have already been requested under a different pin name\n",
+ pin->name, ret); // Example: radio-reset, radio-power mapped to the same pin.
}
}
}
@@ -1547,8 +1549,12 @@ static int __init mts_io_init(void)
return 0;
}
+#define GPIO_ATTR_MAX 256
static void __exit mts_io_exit(void)
{
+ int old_pin[GPIO_ATTR_MAX];
+ int old_last = 0;
+ int i,found;
struct gpio_pin *pin;
if (DEVICE_CAPA(id_eeprom.capa, CAPA_DOUT)) {
spi_unregister_driver(&mts_spi_dout_driver);
@@ -1565,13 +1571,32 @@ static void __exit mts_io_exit(void)
for (pin = gpio_pins; *pin->name; pin++) {
if (pin->capability == 0 || DEVICE_CAPA(id_eeprom.capa,pin->capability)) {
- if (pin->do_gpio_desc) {
- gpiod_put(pin->desc);
- } else {
- gpio_free(pin->pin.gpio);
- }
- }
- }
+ if (pin->do_gpio_desc) {
+ dev_dbg(&mts_io_platform_device->dev,"Kernel removes when module is unloaded: GPIO descriptor case: pin->name=%s\n",
+ pin->name);
+ } else {
+ // TODO: Remove this code when the last pin is converted to the new GPIO model
+ dev_dbg(&mts_io_platform_device->dev,"Deprecated GPIO pin # case: pin->name=%s\n",
+ pin->name);
+ found = 0;
+ for(i=0; i<old_last; i++) {
+ if (pin->pin.gpio == old_pin[i]) {
+ dev_dbg(&mts_io_platform_device->dev,"Deprecated GPIO pin #, skipping free of: pin->name=%s\n",
+ pin->name);
+ found = 1;
+ break;
+ }
+ }
+ if (!found) {
+ old_pin[old_last] = pin->pin.gpio;
+ gpio_free(pin->pin.gpio);
+ old_last++;
+ if(old_last > GPIO_ATTR_MAX)
+ panic("MTS-IO list of gpio pin numbers is full\n");
+ }
+ } // else Old GPIO model
+ } // GPIO pin exists
+ } // End for gpio_pins
cleanup_buttons();
@@ -1589,7 +1614,7 @@ static void __exit mts_io_exit(void)
if (DEVICE_CAPA(id_eeprom.capa, CAPA_LORA) && attr_group_lora) {
mts_teardown_lora_port();
}
- log_info("exiting");
+ printk(KERN_INFO "mts-io exiting");
}
module_init(mts_io_init);