|
@@ -24,6 +24,7 @@
|
|
#include <linux/platform_device.h>
|
|
#include <linux/platform_device.h>
|
|
#include <linux/irq.h>
|
|
#include <linux/irq.h>
|
|
#include <linux/module.h>
|
|
#include <linux/module.h>
|
|
|
|
+#include <linux/notifier.h>
|
|
|
|
|
|
#include <asm/setup.h>
|
|
#include <asm/setup.h>
|
|
#include <asm/mpspec_def.h>
|
|
#include <asm/mpspec_def.h>
|
|
@@ -555,6 +556,9 @@ static void __init intel_scu_i2c_device_register(int bus,
|
|
i2c_devs[i2c_next_dev++] = new_dev;
|
|
i2c_devs[i2c_next_dev++] = new_dev;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+BLOCKING_NOTIFIER_HEAD(intel_scu_notifier);
|
|
|
|
+EXPORT_SYMBOL_GPL(intel_scu_notifier);
|
|
|
|
+
|
|
/* Called by IPC driver */
|
|
/* Called by IPC driver */
|
|
void intel_scu_devices_create(void)
|
|
void intel_scu_devices_create(void)
|
|
{
|
|
{
|
|
@@ -579,6 +583,7 @@ void intel_scu_devices_create(void)
|
|
} else
|
|
} else
|
|
i2c_register_board_info(i2c_bus[i], i2c_devs[i], 1);
|
|
i2c_register_board_info(i2c_bus[i], i2c_devs[i], 1);
|
|
}
|
|
}
|
|
|
|
+ intel_scu_notifier_post(SCU_AVAILABLE, 0L);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(intel_scu_devices_create);
|
|
EXPORT_SYMBOL_GPL(intel_scu_devices_create);
|
|
|
|
|
|
@@ -587,6 +592,8 @@ void intel_scu_devices_destroy(void)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
|
|
|
|
|
|
+ intel_scu_notifier_post(SCU_DOWN, 0L);
|
|
|
|
+
|
|
for (i = 0; i < ipc_next_dev; i++)
|
|
for (i = 0; i < ipc_next_dev; i++)
|
|
platform_device_del(ipc_devs[i]);
|
|
platform_device_del(ipc_devs[i]);
|
|
}
|
|
}
|