On 11 November 2014 20:49, Ashwin Chaugule ashwin.chaugule@linaro.org wrote:
On 11 November 2014 10:12, Jassi Brar jaswinder.singh@linaro.org wrote:
On 7 November 2014 20:22, Ashwin Chaugule ashwin.chaugule@linaro.org wrote:
+struct mbox_chan *pcc_mbox_request_channel(struct mbox_client *cl,
int index)
+{
struct device *dev = pcc_mbox_ctrl.dev;
struct mbox_chan *chan;
unsigned long flags;
/*
* Each PCC Subspace is a Mailbox Channel.
* The PCC Clients get their PCC Subspace ID
* from their own tables and pass it here.
* This returns a pointer to the PCC subspace
* for the Client to operate on.
*/
chan = &pcc_mbox_chan[index];
You are mapping 'Type' of a client directly onto SubSpace-ID of the channel allocated. If two clients need an instance of, say, Generic-Communications-Channel i.e, Type-0, this will not work. If no two clients can ask the same channel, MAX_PCC_SUBSPACES should be limited to max 'Type' value defined in ACPI specs (just 2 in ACPI-5.1).
Intentional. Type 0 existed for X86 systems and nobody ever used it so far in Linux. Upcoming systems will use ACPI v5.1 defined Type 1. We want to get something out there and will start with Type 1 as the default. As a follow patchset, we will add Type 2, when its ready and Type 0 if at all it is required. Rafael/Lv and Mark have not objected to this.
Well, I do. People might be busy to have overlooked it.
The driver supports only ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE client ?!
See above.
The code seems incomplete and broken at many levels. Not to forget the API messup.
-jassi