Lines Matching full:ipc

3  * Driver for the Intel SCU IPC mechanism
9 * core through IPC mechanism which in turn messaging between IA core ad SCU.
10 * SCU has two IPC mechanism IPC-1 and IPC-2. IPC-1 is used between IA32 and
11 * SCU where IPC-2 is used between P-Unit and SCU. This driver delas with
12 * IPC-1 Driver provides an API for power control unit registers (e.g. MSIC)
28 /* IPC defines the following message types */
37 * IPC register summary
39 * IPC register blocks are memory mapped at fixed address of PCI BAR 0.
40 * To read or write information to the SCU, driver writes to IPC-1 memory
41 * mapped registers. The following is the IPC mechanism
47 * the IPC-1 register block, causing an interrupt to the SCU
49 * 3. SCU firmware decodes this interrupt and IPC message and the appropriate
53 #define IPC_WWBUF_SIZE 20 /* IPC Write buffer Size */
54 #define IPC_RWBUF_SIZE 20 /* IPC Read buffer Size */
55 #define IPC_IOC 0x100 /* IPC command register IOC bit */
72 * IPC Write/Read Buffers:
89 * intel_scu_ipc_dev_get() - Get SCU IPC instance
91 * The recommended new API takes SCU IPC instance as parameter and this
93 * sure the driver providing the IPC functionality cannot be unloaded
98 * Returns %NULL if SCU IPC is not currently available.
108 * Prevent the IPC provider from being unloaded while it in intel_scu_ipc_dev_get()
123 * intel_scu_ipc_dev_put() - Put SCU IPC instance
124 * @scu: SCU IPC instance
126 * This function releases the SCU IPC instance retrieved from
127 * intel_scu_ipc_dev_get() and allows the driver providing IPC to be
152 * devm_intel_scu_ipc_dev_get() - Allocate managed SCU IPC device
153 * @dev: Device requesting the SCU IPC device
155 * The recommended new API takes SCU IPC instance as parameter and this
157 * sure the driver providing the IPC functionality cannot be unloaded
160 * Returns %NULL if SCU IPC is not currently available.
185 * Send ipc command
198 * Write ipc data
199 * IPC Write Buffer (Write Only):
200 * 16-byte buffer for sending data associated with IPC command to
210 * Driver will read this register to get the ready/busy status of the IPC
211 * block and error status of the IPC command that was just processed by SCU
220 /* Read ipc byte data */
226 /* Read ipc u32 data */
246 /* Wait till ipc ioc interrupt is received or timeout in 10 HZ */
340 * @scu: Optional SCU IPC instance
357 * @scu: Optional SCU IPC instance
374 * @scu: Optional SCU IPC instance
395 * @scu: Optional SCU IPC instance
416 * @scu: Optional SCU IPC instance
439 * @scu: Optional SCU IPC instance
468 dev_err(&scu->dev, "IPC command %#x failed with %d\n", cmdval, err); in intel_scu_ipc_dev_simple_command()
475 * @scu: Optional SCU IPC instance
480 * @size: Input size written to the IPC command register in whatever
527 dev_err(&scu->dev, "IPC command %#x failed with %d\n", cmdval, err); in intel_scu_ipc_dev_command_with_size()
563 * __intel_scu_ipc_register() - Register SCU IPC device
565 * @scu_data: Data used to configure SCU IPC
566 * @owner: Module registering the SCU IPC device
568 * Call this function to register SCU IPC mechanism under @parent.
569 * Returns pointer to the new SCU IPC device or ERR_PTR() in case of
571 * SCU IPC calls itself.
583 /* We support only one IPC */ in __intel_scu_ipc_register()
625 * releasing the SCU IPC resources once refcount drops to zero. in __intel_scu_ipc_register()
654 * intel_scu_ipc_unregister() - Unregister SCU IPC
655 * @scu: SCU IPC handle
657 * This unregisters the SCU IPC device and releases the acquired
680 * __devm_intel_scu_ipc_register() - Register managed SCU IPC device
682 * @scu_data: Data used to configure SCU IPC
683 * @owner: Module registering the SCU IPC device
685 * Call this function to register managed SCU IPC mechanism under
686 * @parent. Returns pointer to the new SCU IPC device or ERR_PTR() in
688 * to do SCU IPC calls itself.