7b6da7fe7b
Now that we have all the shared memory region information populated in the pcc_mbox_chan, let us propagate the pointer to the same as the return value to pcc_mbox_request channel. This eliminates the need for the individual users of PCC mailbox to parse the PCCT subspace entries and fetch the shmem information. This also eliminates the need for PCC mailbox controller to set con_priv to PCCT subspace entries. This is required as con_priv is private to the controller driver to attach private data associated with the channel and not meant to be used by the mailbox client/users. Let us convert all the users of pcc_mbox_{request,free}_channel to use new interface. Cc: Jean Delvare <jdelvare@suse.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Acked-by: Wolfram Sang <wsa@kernel.org> Acked-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
36 lines
807 B
C
36 lines
807 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* PCC (Platform Communications Channel) methods
|
|
*/
|
|
|
|
#ifndef _PCC_H
|
|
#define _PCC_H
|
|
|
|
#include <linux/mailbox_controller.h>
|
|
#include <linux/mailbox_client.h>
|
|
|
|
struct pcc_mbox_chan {
|
|
struct mbox_chan *mchan;
|
|
u64 shmem_base_addr;
|
|
u64 shmem_size;
|
|
u32 latency;
|
|
u32 max_access_rate;
|
|
u16 min_turnaround_time;
|
|
};
|
|
|
|
#define MAX_PCC_SUBSPACES 256
|
|
#ifdef CONFIG_PCC
|
|
extern struct pcc_mbox_chan *
|
|
pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id);
|
|
extern void pcc_mbox_free_channel(struct pcc_mbox_chan *chan);
|
|
#else
|
|
static inline struct pcc_mbox_chan *
|
|
pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id)
|
|
{
|
|
return ERR_PTR(-ENODEV);
|
|
}
|
|
static inline void pcc_mbox_free_channel(struct pcc_mbox_chan *chan) { }
|
|
#endif
|
|
|
|
#endif /* _PCC_H */
|