int ret;
        void *pdata;
        unsigned int i;
+       acpi_handle handle;
+       struct acpi_device *adev;
+
+       handle = ACPI_HANDLE(&client->dev);
+       if (!handle || acpi_bus_get_device(handle, &adev)) {
+               dev_err(&client->dev, "Error could not get ACPI device\n");
+               return -ENODEV;
+       }
+
+       pr_info("%s: ACPI detected it on bus ID=%s, HID=%s\n",
+               __func__, acpi_device_bid(adev), acpi_device_hid(adev));
 
-       pr_info("%s S\n", __func__);
        dev = kzalloc(sizeof(*dev), GFP_KERNEL);
        if (!dev)
                return -ENOMEM;
 
        void *gcpdev;
        int ret;
        unsigned int i;
+       acpi_handle handle;
+       struct acpi_device *adev;
+
+       handle = ACPI_HANDLE(&client->dev);
+       if (!handle || acpi_bus_get_device(handle, &adev)) {
+               dev_err(&client->dev, "Error could not get ACPI device\n");
+               return -ENODEV;
+       }
+
+       pr_info("%s: ACPI detected it on bus ID=%s, HID=%s\n",
+               __func__, acpi_device_bid(adev), acpi_device_hid(adev));
 
        dev = kzalloc(sizeof(*dev), GFP_KERNEL);
        if (!dev)
 
        struct lm3554 *flash;
        unsigned int i;
        int ret;
+       acpi_handle handle;
+       struct acpi_device *adev;
+
+       handle = ACPI_HANDLE(&client->dev);
+       if (!handle || acpi_bus_get_device(handle, &adev)) {
+               dev_err(&client->dev, "Error could not get ACPI device\n");
+               return -ENODEV;
+       }
+
+       pr_info("%s: ACPI detected it on bus ID=%s, HID=%s\n",
+               __func__, acpi_device_bid(adev), acpi_device_hid(adev));
 
        flash = kzalloc(sizeof(*flash), GFP_KERNEL);
        if (!flash)
 
        int ret = 0;
        unsigned int i;
        void *pdata;
+       acpi_handle handle;
+       struct acpi_device *adev;
+
+       handle = ACPI_HANDLE(&client->dev);
+       if (!handle || acpi_bus_get_device(handle, &adev)) {
+               dev_err(&client->dev, "Error could not get ACPI device\n");
+               return -ENODEV;
+       }
+
+       pr_info("%s: ACPI detected it on bus ID=%s, HID=%s\n",
+               __func__, acpi_device_bid(adev), acpi_device_hid(adev));
 
        /* Setup sensor configuration structure */
        dev = kzalloc(sizeof(*dev), GFP_KERNEL);
 
        int ret;
        void *pdata;
        unsigned int i;
+       acpi_handle handle;
+       struct acpi_device *adev;
+
+       handle = ACPI_HANDLE(&client->dev);
+       if (!handle || acpi_bus_get_device(handle, &adev)) {
+               dev_err(&client->dev, "Error could not get ACPI device\n");
+               return -ENODEV;
+       }
+
+       pr_info("%s: ACPI detected it on bus ID=%s, HID=%s\n",
+               __func__, acpi_device_bid(adev), acpi_device_hid(adev));
 
        dev = kzalloc(sizeof(*dev), GFP_KERNEL);
        if (!dev)
 
        struct ov2722_device *dev;
        void *ovpdev;
        int ret;
+       acpi_handle handle;
+       struct acpi_device *adev;
+
+       handle = ACPI_HANDLE(&client->dev);
+       if (!handle || acpi_bus_get_device(handle, &adev)) {
+               dev_err(&client->dev, "Error could not get ACPI device\n");
+               return -ENODEV;
+       }
+
+       pr_info("%s: ACPI detected it on bus ID=%s, HID=%s\n",
+               __func__, acpi_device_bid(adev), acpi_device_hid(adev));
 
        dev = kzalloc(sizeof(*dev), GFP_KERNEL);
        if (!dev)
 
        int ret = 0;
        void *pdata;
        unsigned int i;
+       acpi_handle handle;
+       struct acpi_device *adev;
+
+       handle = ACPI_HANDLE(&client->dev);
+       if (!handle || acpi_bus_get_device(handle, &adev)) {
+               dev_err(&client->dev, "Error could not get ACPI device\n");
+               return -ENODEV;
+       }
+
+       pr_info("%s: ACPI detected it on bus ID=%s, HID=%s\n",
+               __func__, acpi_device_bid(adev), acpi_device_hid(adev));
 
        /*
         * Firmware workaround: Some modules use a "secondary default"
 
 #include <linux/pm_qos.h>
 #include <linux/timer.h>
 #include <linux/delay.h>
+#include <linux/dmi.h>
 #include <linux/interrupt.h>
 
 #include <asm/iosf_mbi.h>
 {
        unsigned int a0_max_id = 0;
        const char *name;
+       const char *product;
+
+       product = dmi_get_system_info(DMI_PRODUCT_NAME);
 
        switch (id->device & ATOMISP_PCI_DEVICE_SOC_MASK) {
        case ATOMISP_PCI_DEVICE_SOC_MRFLD:
                atomisp_hw_is_isp2401 = true;
                break;
        default:
-               dev_err(&dev->dev, "Unknown device ID %x04:%x04\n",
-                       id->vendor, id->device);
+               dev_err(&dev->dev, "%s: unknown device ID %x04:%x04\n",
+                       product, id->vendor, id->device);
                return false;
        }
 
        }
 #endif
 
-       dev_info(&dev->dev, "Detected %s version %d (ISP240%c)\n",
+       dev_info(&dev->dev, "Detected %s version %d (ISP240%c) on %s\n",
                name, dev->revision,
-               atomisp_hw_is_isp2401 ? '1' : '0');
+               atomisp_hw_is_isp2401 ? '1' : '0',
+               product);
 
        return true;
 }