• Home
  • Raw
  • Download

Lines Matching full:pcc

15  *  PCC (Platform Communication Channel) is defined in the ACPI 5.0+
20 * shared memory regions as defined in the PCC table entries. The PCC
21 * specification supports a Doorbell mechanism for the PCC clients
23 * is also specified in each PCC table entry.
27 * PCC Reads:
31 * * Client issues mbox_send_message() which rings the PCC doorbell
32 * for its PCC channel.
37 * PCC Writes:
42 * * Client issues mbox_send_message() which rings the PCC doorbell
43 * for its PCC channel.
51 * For more details about PCC, please see the ACPI specification from
54 * This file implements PCC as a Mailbox controller and allows for PCC
68 #include <acpi/pcc.h>
72 #define MBOX_IRQ_NAME "pcc-mbox"
85 * get_pcc_channel - Given a PCC subspace idx, get
87 * @id: PCC subspace index.
101 * PCC can be used with perf critical drivers such as CPPC
103 * use it to read/write to PCC registers such as doorbell register
106 * write from perf critical registers such as PCC doorbell register
161 * pcc_map_interrupt - Map a PCC subspace GSI to a linux IRQ number
185 * pcc_mbox_irq - PCC mailbox interrupt handler
227 * pcc_mbox_request_channel - PCC clients call this function to
228 * request a pointer to their PCC subspace, from which they
232 * @subspace_id: The PCC Subspace index as parsed in the PCC client
233 * ACPI package. This is used to lookup the array of PCC
234 * subspaces as parsed by the PCC Mailbox controller.
247 * Each PCC Subspace is a Mailbox Channel. in pcc_mbox_request_channel()
248 * The PCC Clients get their PCC Subspace ID in pcc_mbox_request_channel()
250 * This returns a pointer to the PCC subspace in pcc_mbox_request_channel()
278 dev_err(dev, "failed to register PCC interrupt %d\n", in pcc_mbox_request_channel()
323 * here only to ring the channel doorbell. The PCC client
325 * order to maintain atomicity over PCC channel once
329 * only for debug after PCC transaction completes.
376 * parse_pcc_subspaces -- Count PCC subspaces defined
380 * Return: If we find a PCC subspace entry of a valid type, return 0.
383 * This gets called for each entry in the PCC table.
397 * pcc_parse_subspace_irq - Parse the PCC IRQ and PCC ACK register
398 * There should be one entry per PCC client.
399 * @id: PCC subspace index.
404 * This gets called for each entry in the PCC table.
412 pr_err("PCC GSI %d not registered\n", in pcc_parse_subspace_irq()
425 pr_err("Failed to ioremap PCC ACK register\n"); in pcc_parse_subspace_irq()
466 pr_warn("Error parsing PCC subspaces from PCCT\n"); in acpi_pcc_probe()
468 pr_warn("Invalid PCCT: %d PCC subspaces\n", count); in acpi_pcc_probe()
475 pr_err("Could not allocate space for PCC mbox channels\n"); in acpi_pcc_probe()
497 /* Point to the first PCC subspace entry */ in acpi_pcc_probe()
535 pr_info("Detected %d PCC Subspaces\n", pcc_mbox_ctrl.num_chans); in acpi_pcc_probe()
569 pr_info("Registering PCC driver as Mailbox controller\n"); in pcc_mbox_probe()
573 pr_err("Err registering PCC as Mailbox controller: %d\n", ret); in pcc_mbox_probe()
596 /* Check if PCC support is available. */ in pcc_init()
600 pr_debug("ACPI PCC probe failed.\n"); in pcc_init()
608 pr_debug("Err creating PCC platform bundle\n"); in pcc_init()
616 * Make PCC init postcore so that users of this mailbox