Lines Matching full:pcc

6  *  PCC (Platform Communication Channel) is defined in the ACPI 5.0+
11 * shared memory regions as defined in the PCC table entries. The PCC
12 * specification supports a Doorbell mechanism for the PCC clients
14 * is also specified in each PCC table entry.
18 * PCC Reads:
22 * * Client issues mbox_send_message() which rings the PCC doorbell
23 * for its PCC channel.
28 * PCC Writes:
33 * * Client issues mbox_send_message() which rings the PCC doorbell
34 * for its PCC channel.
42 * For more details about PCC, please see the ACPI specification from
45 * This file implements PCC as a Mailbox controller and allows for PCC
60 #include <acpi/pcc.h>
64 #define MBOX_IRQ_NAME "pcc-mbox"
67 * struct pcc_chan_reg - PCC register bundle
84 * struct pcc_chan_info - PCC channel specific information
86 * @chan: PCC channel information with Shared Memory Region info
87 * @db: PCC register bundle for the doorbell register
88 * @plat_irq_ack: PCC register bundle for the platform interrupt acknowledge
90 * @cmd_complete: PCC register bundle for the command complete check register
91 * @cmd_update: PCC register bundle for the command complete update register
92 * @error: PCC register bundle for the error status register
94 * @type: PCC subspace type
123 * PCC can be used with perf critical drivers such as CPPC
125 * use it to read/write to PCC registers such as doorbell register
128 * write from perf critical registers such as PCC doorbell register
214 * pcc_map_interrupt - Map a PCC subspace GSI to a linux IRQ number
262 * If this is PCC slave subspace channel, and the command complete in pcc_mbox_cmd_complete_check()
273 * pcc_mbox_irq - PCC mailbox interrupt handler
310 * The PCC slave subspace channel needs to set the command complete bit in pcc_mbox_irq()
313 * The PCC master subspace channel clears chan_in_use to free channel. in pcc_mbox_irq()
323 * pcc_mbox_request_channel - PCC clients call this function to
324 * request a pointer to their PCC subspace, from which they
328 * @subspace_id: The PCC Subspace index as parsed in the PCC client
329 * ACPI package. This is used to lookup the array of PCC
330 * subspaces as parsed by the PCC Mailbox controller.
332 * Return: Pointer to the PCC Mailbox Channel if successful or ERR_PTR.
362 * @pchan: Pointer to the PCC mailbox channel as returned by
378 * here only to ring the channel doorbell. The PCC client
380 * order to maintain atomicity over PCC channel once
384 * only for debug after PCC transaction completes.
423 dev_err(chan->mbox->dev, "failed to register PCC interrupt %d\n", in pcc_startup()
452 * parse_pcc_subspace - Count PCC subspaces defined
456 * Return: If we find a PCC subspace entry of a valid type, return 0.
459 * This gets called for each entry in the PCC table.
486 pr_err("Failed to ioremap PCC %s register\n", name); in pcc_chan_reg_init()
498 * pcc_parse_subspace_irq - Parse the PCC IRQ and PCC ACK register
500 * @pchan: Pointer to the PCC channel info structure.
505 * There should be one entry per PCC channel. This gets called for each
506 * entry in the PCC table. This uses PCCY Type1 structure for all applicable
523 pr_err("PCC GSI %d not registered\n", in pcc_parse_subspace_irq()
551 pr_err("PCC subspace has level IRQ with no ACK register\n"); in pcc_parse_subspace_irq()
559 * pcc_parse_subspace_db_reg - Parse the PCC doorbell register
561 * @pchan: Pointer to the PCC channel info structure.
617 * pcc_parse_subspace_shmem - Parse the PCC Shared Memory Region information
619 * @pchan: Pointer to the PCC channel info structure.
676 pr_warn("Error parsing PCC subspaces from PCCT\n"); in acpi_pcc_probe()
678 pr_warn("Invalid PCCT: %d PCC subspaces\n", count); in acpi_pcc_probe()
737 /* Point to the first PCC subspace entry */ in pcc_mbox_probe()
776 pr_info("Detected %d PCC Subspaces\n", pcc_mbox_ctrl->num_chans); in pcc_mbox_probe()
782 pr_info("Registering PCC driver as Mailbox controller\n"); in pcc_mbox_probe()
785 pr_err("Err registering PCC as Mailbox controller: %d\n", rc); in pcc_mbox_probe()
808 /* Check if PCC support is available. */ in pcc_init()
812 pr_debug("ACPI PCC probe failed.\n"); in pcc_init()
820 pr_debug("Err creating PCC platform bundle\n"); in pcc_init()
829 * Make PCC init postcore so that users of this mailbox