Added valid error/warning messages to platform data
initalization failures in SFI device libs code.

Signed-off-by: Kuppuswamy Sathyanarayanan 
<sathyanarayanan.kuppusw...@linux.intel.com>
---
 .../intel-mid/device_libs/platform_emc1403.c        | 18 ++++++++++++++----
 .../platform/intel-mid/device_libs/platform_ipc.c   |  5 ++++-
 .../intel-mid/device_libs/platform_lis331.c         | 20 +++++++++++++++-----
 .../intel-mid/device_libs/platform_max7315.c        | 10 +++++++---
 .../intel-mid/device_libs/platform_mpu3050.c        |  9 +++++++--
 .../intel-mid/device_libs/platform_pcal9555a.c      |  5 ++++-
 .../intel-mid/device_libs/platform_tca6416.c        |  6 +++++-
 arch/x86/platform/intel-mid/sfi.c                   | 21 +++++++++++++++++----
 8 files changed, 73 insertions(+), 21 deletions(-)

diff --git a/arch/x86/platform/intel-mid/device_libs/platform_emc1403.c 
b/arch/x86/platform/intel-mid/device_libs/platform_emc1403.c
index c259fb6..bd776b04 100644
--- a/arch/x86/platform/intel-mid/device_libs/platform_emc1403.c
+++ b/arch/x86/platform/intel-mid/device_libs/platform_emc1403.c
@@ -15,17 +15,27 @@
 #include <linux/i2c.h>
 #include <asm/intel-mid.h>
 
+#define EMC1403_THERMAL_INT            "thermal_int"
+#define EMC1403_THERMAL_ALERT_INT      "thermal_alert"
+
 static void __init *emc1403_platform_data(void *info)
 {
        static short intr2nd_pdata;
        struct i2c_board_info *i2c_info = info;
-       int intr = get_gpio_by_name("thermal_int");
-       int intr2nd = get_gpio_by_name("thermal_alert");
+       int intr = get_gpio_by_name(EMC1403_THERMAL_INT);
+       int intr2nd = get_gpio_by_name(EMC1403_THERMAL_ALERT_INT);
 
-       if (intr < 0)
+       if (intr < 0) {
+               pr_err("%s: Can't find %s GPIO interrupt\n", __func__,
+                      EMC1403_THERMAL_INT);
                return NULL;
-       if (intr2nd < 0)
+       }
+
+       if (intr2nd < 0) {
+               pr_err("%s: Can't find %s GPIO interrupt\n", __func__,
+                      EMC1403_THERMAL_ALERT_INT);
                return NULL;
+       }
 
        i2c_info->irq = intr + INTEL_MID_IRQ_OFFSET;
        intr2nd_pdata = intr2nd + INTEL_MID_IRQ_OFFSET;
diff --git a/arch/x86/platform/intel-mid/device_libs/platform_ipc.c 
b/arch/x86/platform/intel-mid/device_libs/platform_ipc.c
index a84b73d..6704694 100644
--- a/arch/x86/platform/intel-mid/device_libs/platform_ipc.c
+++ b/arch/x86/platform/intel-mid/device_libs/platform_ipc.c
@@ -42,8 +42,11 @@ void __init ipc_device_handler(struct sfi_device_table_entry 
*pentry,
         * On Medfield the platform device creation is handled by the MSIC
         * MFD driver so we don't need to do it here.
         */
-       if (intel_mid_has_msic())
+       if (intel_mid_has_msic()) {
+               pr_err("%s: device %s will be handled by MSIC mfd driver\n",
+                      __func__, pentry->name);
                return;
+       }
 
        pdev = platform_device_alloc(pentry->name, 0);
        if (pdev == NULL) {
diff --git a/arch/x86/platform/intel-mid/device_libs/platform_lis331.c 
b/arch/x86/platform/intel-mid/device_libs/platform_lis331.c
index 8be5d40..393c23e 100644
--- a/arch/x86/platform/intel-mid/device_libs/platform_lis331.c
+++ b/arch/x86/platform/intel-mid/device_libs/platform_lis331.c
@@ -14,17 +14,27 @@
 #include <linux/gpio.h>
 #include <asm/intel-mid.h>
 
+#define LIS331DL_ACCEL_INT1    "accel_int"
+#define LIS331DL_ACCEL_INT2    "accel_2"
+
 static void __init *lis331dl_platform_data(void *info)
 {
        static short intr2nd_pdata;
        struct i2c_board_info *i2c_info = info;
-       int intr = get_gpio_by_name("accel_int");
-       int intr2nd = get_gpio_by_name("accel_2");
+       int intr = get_gpio_by_name(LIS331DL_ACCEL_INT1);
+       int intr2nd = get_gpio_by_name(LIS331DL_ACCEL_INT2);
 
-       if (intr < 0)
+       if (intr < 0) {
+               pr_err("%s: Can't find %s GPIO interrupt\n", __func__,
+                      LIS331DL_ACCEL_INT1);
                return ERR_PTR(intr);
-       if (intr2nd < 0)
-               ERR_PTR(intr2nd);
+       }
+
+       if (intr2nd < 0) {
+               pr_err("%s: Can't find %s GPIO interrupt\n", __func__,
+                      LIS331DL_ACCEL_INT2);
+               return ERR_PTR(intr2nd);
+       }
 
        i2c_info->irq = intr + INTEL_MID_IRQ_OFFSET;
        intr2nd_pdata = intr2nd + INTEL_MID_IRQ_OFFSET;
diff --git a/arch/x86/platform/intel-mid/device_libs/platform_max7315.c 
b/arch/x86/platform/intel-mid/device_libs/platform_max7315.c
index 34dc59d..8989f81 100644
--- a/arch/x86/platform/intel-mid/device_libs/platform_max7315.c
+++ b/arch/x86/platform/intel-mid/device_libs/platform_max7315.c
@@ -29,8 +29,8 @@ static void __init *max7315_platform_data(void *info)
        char intr_pin_name[SFI_NAME_LEN + 1];
 
        if (nr == MAX7315_NUM) {
-               pr_err("too many max7315s, we only support %d\n",
-                               MAX7315_NUM);
+               pr_err("%s: Too many instances, only %d supported\n", __func__,
+                      MAX7315_NUM);
                return ERR_PTR(-ENOMEM);
        }
        /* we have several max7315 on the board, we only need load several
@@ -48,8 +48,12 @@ static void __init *max7315_platform_data(void *info)
        gpio_base = get_gpio_by_name(base_pin_name);
        intr = get_gpio_by_name(intr_pin_name);
 
-       if (gpio_base < 0)
+       if (gpio_base < 0) {
+               pr_warn("%s: falling back to dynamic gpio allocation\n",
+                       __func__);
                return NULL;
+       }
+
        max7315->gpio_base = gpio_base;
        if (intr != -1) {
                i2c_info->irq = intr + INTEL_MID_IRQ_OFFSET;
diff --git a/arch/x86/platform/intel-mid/device_libs/platform_mpu3050.c 
b/arch/x86/platform/intel-mid/device_libs/platform_mpu3050.c
index f434f88..c79c87f 100644
--- a/arch/x86/platform/intel-mid/device_libs/platform_mpu3050.c
+++ b/arch/x86/platform/intel-mid/device_libs/platform_mpu3050.c
@@ -14,13 +14,18 @@
 #include <linux/i2c.h>
 #include <asm/intel-mid.h>
 
+#define MPU3050_INT            "mpu3050_int"
+
 static void *mpu3050_platform_data(void *info)
 {
        struct i2c_board_info *i2c_info = info;
-       int intr = get_gpio_by_name("mpu3050_int");
+       int intr = get_gpio_by_name(MPU3050_INT);
 
-       if (intr < 0)
+       if (intr < 0) {
+               pr_err("%s: Can't find %s GPIO interrupt\n", __func__,
+                      MPU3050_INT);
                return ERR_PTR(intr);
+       }
 
        i2c_info->irq = intr + INTEL_MID_IRQ_OFFSET;
        return NULL;
diff --git a/arch/x86/platform/intel-mid/device_libs/platform_pcal9555a.c 
b/arch/x86/platform/intel-mid/device_libs/platform_pcal9555a.c
index 563f77f..cde764e 100644
--- a/arch/x86/platform/intel-mid/device_libs/platform_pcal9555a.c
+++ b/arch/x86/platform/intel-mid/device_libs/platform_pcal9555a.c
@@ -41,8 +41,11 @@ static void __init *pcal9555a_platform_data(void *info)
        intr = get_gpio_by_name(intr_pin_name);
 
        /* Check if the SFI record valid */
-       if (gpio_base == -1)
+       if (gpio_base == -1) {
+               pr_warn("%s: falling back to dynamic gpio allocation\n",
+                       __func__);
                return NULL;
+       }
 
        if (nr >= PCAL9555A_NUM) {
                pr_err("%s: Too many instances, only %d supported\n", __func__,
diff --git a/arch/x86/platform/intel-mid/device_libs/platform_tca6416.c 
b/arch/x86/platform/intel-mid/device_libs/platform_tca6416.c
index 4f41372..4d4393e 100644
--- a/arch/x86/platform/intel-mid/device_libs/platform_tca6416.c
+++ b/arch/x86/platform/intel-mid/device_libs/platform_tca6416.c
@@ -34,8 +34,12 @@ static void *tca6416_platform_data(void *info)
        gpio_base = get_gpio_by_name(base_pin_name);
        intr = get_gpio_by_name(intr_pin_name);
 
-       if (gpio_base < 0)
+       if (gpio_base < 0) {
+               pr_warn("%s: falling back to dynamic gpio allocation\n",
+                       __func__);
                return NULL;
+       }
+
        tca6416.gpio_base = gpio_base;
        if (intr >= 0) {
                i2c_info->irq = intr + INTEL_MID_IRQ_OFFSET;
diff --git a/arch/x86/platform/intel-mid/sfi.c 
b/arch/x86/platform/intel-mid/sfi.c
index 051d264..78ee7eb 100644
--- a/arch/x86/platform/intel-mid/sfi.c
+++ b/arch/x86/platform/intel-mid/sfi.c
@@ -335,9 +335,13 @@ static void __init sfi_handle_ipc_dev(struct 
sfi_device_table_entry *pentry,
 
        pr_debug("IPC bus, name = %16.16s, irq = 0x%2x\n",
                pentry->name, pentry->irq);
+
        pdata = intel_mid_sfi_get_pdata(dev, pentry);
-       if (IS_ERR(pdata))
+       if (IS_ERR(pdata)) {
+               pr_debug("%s:  Can't get platform data for %s\n", __func__,
+                        pentry->name);
                return;
+       }
 
        pdev = platform_device_alloc(pentry->name, 0);
        if (pdev == NULL) {
@@ -371,8 +375,11 @@ static void __init sfi_handle_spi_dev(struct 
sfi_device_table_entry *pentry,
                spi_info.chip_select);
 
        pdata = intel_mid_sfi_get_pdata(dev, &spi_info);
-       if (IS_ERR(pdata))
+       if (IS_ERR(pdata)) {
+               pr_debug("%s:  Can't get platform data for %s\n", __func__,
+                        pentry->name);
                return;
+       }
 
        spi_info.platform_data = pdata;
        if (dev->delay)
@@ -398,8 +405,11 @@ static void __init sfi_handle_i2c_dev(struct 
sfi_device_table_entry *pentry,
                i2c_info.addr);
        pdata = intel_mid_sfi_get_pdata(dev, &i2c_info);
        i2c_info.platform_data = pdata;
-       if (IS_ERR(pdata))
+       if (IS_ERR(pdata)) {
+               pr_debug("%s:  Can't get platform data for %s\n", __func__,
+                        pentry->name);
                return;
+       }
 
        if (dev->delay)
                intel_scu_i2c_device_register(pentry->host_num, &i2c_info);
@@ -424,8 +434,11 @@ static void __init sfi_handle_sd_dev(struct 
sfi_device_table_entry *pentry,
                 sd_info.max_clk,
                 sd_info.addr);
        pdata = intel_mid_sfi_get_pdata(dev, &sd_info);
-       if (IS_ERR(pdata))
+       if (IS_ERR(pdata)) {
+               pr_debug("%s:  Can't get platform data for %s\n", __func__,
+                        pentry->name);
                return;
+       }
 
        /* Nothing we can do with this for now */
        sd_info.platform_data = pdata;
-- 
2.7.4

Reply via email to