mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
Merge tag 'asahi-soc-rtkit-pmgr-6.3' of https://github.com/AsahiLinux/linux into soc/drivers
Apple SoC RTKit/PMGR updates for 6.3. This time around we have a PMGR change to allow IRQ-safe usage, RTKit crash register dump decoding, and a bunch of RTKit API changes used by upcoming drivers. * tag 'asahi-soc-rtkit-pmgr-6.3' of https://github.com/AsahiLinux/linux: soc: apple: rtkit: Add register dump decoding to crashlog soc: apple: rtkit: Export non-devm init/free functions soc: apple: rtkit: Add a private pointer to apple_rtkit_shmem soc: apple: apple-pmgr-pwrstate: Switch to IRQ-safe mode soc: apple: rtkit: Add apple_rtkit_idle() function Link: https://lore.kernel.org/r/4790bdc4-b6e2-228b-771f-023363f65fb3@marcan.st Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
* @size: Size of the shared memory buffer.
|
||||
* @iova: Device VA of shared memory buffer.
|
||||
* @is_mapped: Shared memory buffer is managed by the co-processor.
|
||||
* @private: Private data pointer for the parent driver.
|
||||
*/
|
||||
|
||||
struct apple_rtkit_shmem {
|
||||
@@ -30,6 +31,7 @@ struct apple_rtkit_shmem {
|
||||
size_t size;
|
||||
dma_addr_t iova;
|
||||
bool is_mapped;
|
||||
void *private;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -77,6 +79,25 @@ struct apple_rtkit *devm_apple_rtkit_init(struct device *dev, void *cookie,
|
||||
const char *mbox_name, int mbox_idx,
|
||||
const struct apple_rtkit_ops *ops);
|
||||
|
||||
/*
|
||||
* Non-devm version of devm_apple_rtkit_init. Must be freed with
|
||||
* apple_rtkit_free.
|
||||
*
|
||||
* @dev: Pointer to the device node this coprocessor is assocated with
|
||||
* @cookie: opaque cookie passed to all functions defined in rtkit_ops
|
||||
* @mbox_name: mailbox name used to communicate with the co-processor
|
||||
* @mbox_idx: mailbox index to be used if mbox_name is NULL
|
||||
* @ops: pointer to rtkit_ops to be used for this co-processor
|
||||
*/
|
||||
struct apple_rtkit *apple_rtkit_init(struct device *dev, void *cookie,
|
||||
const char *mbox_name, int mbox_idx,
|
||||
const struct apple_rtkit_ops *ops);
|
||||
|
||||
/*
|
||||
* Free an instance of apple_rtkit.
|
||||
*/
|
||||
void apple_rtkit_free(struct apple_rtkit *rtk);
|
||||
|
||||
/*
|
||||
* Reinitialize internal structures. Must only be called with the co-processor
|
||||
* is held in reset.
|
||||
@@ -104,6 +125,11 @@ int apple_rtkit_wake(struct apple_rtkit *rtk);
|
||||
*/
|
||||
int apple_rtkit_shutdown(struct apple_rtkit *rtk);
|
||||
|
||||
/*
|
||||
* Put the co-processor into idle mode
|
||||
*/
|
||||
int apple_rtkit_idle(struct apple_rtkit *rtk);
|
||||
|
||||
/*
|
||||
* Checks if RTKit is running and ready to handle messages.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user