Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.16-rc3 49 lines 1.3 kB view raw
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * PCC (Platform Communications Channel) methods 4 */ 5 6#ifndef _PCC_H 7#define _PCC_H 8 9#include <linux/mailbox_controller.h> 10#include <linux/mailbox_client.h> 11 12struct pcc_mbox_chan { 13 struct mbox_chan *mchan; 14 u64 shmem_base_addr; 15 void __iomem *shmem; 16 u64 shmem_size; 17 u32 latency; 18 u32 max_access_rate; 19 u16 min_turnaround_time; 20}; 21 22/* Generic Communications Channel Shared Memory Region */ 23#define PCC_SIGNATURE 0x50434300 24/* Generic Communications Channel Command Field */ 25#define PCC_CMD_GENERATE_DB_INTR BIT(15) 26/* Generic Communications Channel Status Field */ 27#define PCC_STATUS_CMD_COMPLETE BIT(0) 28#define PCC_STATUS_SCI_DOORBELL BIT(1) 29#define PCC_STATUS_ERROR BIT(2) 30#define PCC_STATUS_PLATFORM_NOTIFY BIT(3) 31/* Initiator Responder Communications Channel Flags */ 32#define PCC_CMD_COMPLETION_NOTIFY BIT(0) 33 34#define MAX_PCC_SUBSPACES 256 35 36#ifdef CONFIG_PCC 37extern struct pcc_mbox_chan * 38pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id); 39extern void pcc_mbox_free_channel(struct pcc_mbox_chan *chan); 40#else 41static inline struct pcc_mbox_chan * 42pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id) 43{ 44 return ERR_PTR(-ENODEV); 45} 46static inline void pcc_mbox_free_channel(struct pcc_mbox_chan *chan) { } 47#endif 48 49#endif /* _PCC_H */