Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 273410
b: refs/heads/master
c: 42c2544
h: refs/heads/master
v: v3
  • Loading branch information
Alan Cox authored and Samuel Ortiz committed Oct 24, 2011
1 parent b7f3e92 commit 73f8fef
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1f5a371c075a7101fe75a75cde5aad928460a42e
refs/heads/master: 42c2544b2d7d4f287bfa239455af09b6408476e2
22 changes: 22 additions & 0 deletions trunk/arch/x86/include/asm/intel_scu_ipc.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#ifndef _ASM_X86_INTEL_SCU_IPC_H_
#define _ASM_X86_INTEL_SCU_IPC_H_

#include <linux/notifier.h>

#define IPCMSG_VRTC 0xFA /* Set vRTC device */

/* Command id associated with message IPCMSG_VRTC */
Expand Down Expand Up @@ -44,4 +46,24 @@ int intel_scu_ipc_i2c_cntrl(u32 addr, u32 *data);
/* Update FW version */
int intel_scu_ipc_fw_update(u8 *buffer, u32 length);

extern struct blocking_notifier_head intel_scu_notifier;

static inline void intel_scu_notifier_add(struct notifier_block *nb)
{
blocking_notifier_chain_register(&intel_scu_notifier, nb);
}

static inline void intel_scu_notifier_remove(struct notifier_block *nb)
{
blocking_notifier_chain_unregister(&intel_scu_notifier, nb);
}

static inline int intel_scu_notifier_post(unsigned long v, void *p)
{
return blocking_notifier_call_chain(&intel_scu_notifier, v, p);
}

#define SCU_AVAILABLE 1
#define SCU_DOWN 2

#endif
7 changes: 7 additions & 0 deletions trunk/arch/x86/platform/mrst/mrst.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <linux/platform_device.h>
#include <linux/irq.h>
#include <linux/module.h>
#include <linux/notifier.h>

#include <asm/setup.h>
#include <asm/mpspec_def.h>
Expand Down Expand Up @@ -555,6 +556,9 @@ static void __init intel_scu_i2c_device_register(int bus,
i2c_devs[i2c_next_dev++] = new_dev;
}

BLOCKING_NOTIFIER_HEAD(intel_scu_notifier);
EXPORT_SYMBOL_GPL(intel_scu_notifier);

/* Called by IPC driver */
void intel_scu_devices_create(void)
{
Expand All @@ -579,6 +583,7 @@ void intel_scu_devices_create(void)
} else
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);

Expand All @@ -587,6 +592,8 @@ void intel_scu_devices_destroy(void)
{
int i;

intel_scu_notifier_post(SCU_DOWN, 0L);

for (i = 0; i < ipc_next_dev; i++)
platform_device_del(ipc_devs[i]);
}
Expand Down

0 comments on commit 73f8fef

Please sign in to comment.