Lines Matching refs:pchan
233 struct pcc_chan_info *pchan;
238 pchan = chan->con_priv;
240 ret = pcc_chan_reg_read(&pchan->cmd_complete, &val);
245 val &= pchan->cmd_complete.status_mask;
250 ret = pcc_chan_reg_read(&pchan->error, &val);
253 val &= pchan->error.status_mask;
255 val &= ~pchan->error.status_mask;
256 pcc_chan_reg_write(&pchan->error, val);
260 if (pcc_chan_reg_read_modify_write(&pchan->plat_irq_ack))
283 struct pcc_chan_info *pchan;
290 pchan = chan_info + subspace_id;
291 chan = pchan->chan.mchan;
301 return &pchan->chan;
308 * @pchan: Pointer to the PCC mailbox channel as returned by
311 void pcc_mbox_free_channel(struct pcc_mbox_chan *pchan)
313 struct mbox_chan *chan = pchan->mchan;
337 struct pcc_chan_info *pchan = chan->con_priv;
339 ret = pcc_chan_reg_read_modify_write(&pchan->cmd_update);
343 return pcc_chan_reg_read_modify_write(&pchan->db);
355 struct pcc_chan_info *pchan = chan->con_priv;
358 if (pchan->plat_irq > 0) {
359 rc = devm_request_irq(chan->mbox->dev, pchan->plat_irq, pcc_mbox_irq, 0,
363 pchan->plat_irq);
378 struct pcc_chan_info *pchan = chan->con_priv;
380 if (pchan->plat_irq > 0)
381 devm_free_irq(chan->mbox->dev, pchan->plat_irq, chan);
439 * @pchan: Pointer to the PCC channel info structure.
448 static int pcc_parse_subspace_irq(struct pcc_chan_info *pchan,
459 pchan->plat_irq = pcc_map_interrupt(pcct_ss->platform_interrupt,
461 if (pchan->plat_irq <= 0) {
470 ret = pcc_chan_reg_init(&pchan->plat_irq_ack,
480 ret = pcc_chan_reg_init(&pchan->plat_irq_ack,
493 * @pchan: Pointer to the PCC channel info structure.
498 static int pcc_parse_subspace_db_reg(struct pcc_chan_info *pchan,
508 ret = pcc_chan_reg_init(&pchan->db,
518 ret = pcc_chan_reg_init(&pchan->db,
525 ret = pcc_chan_reg_init(&pchan->cmd_complete,
532 ret = pcc_chan_reg_init(&pchan->cmd_update,
540 ret = pcc_chan_reg_init(&pchan->error,
551 * @pchan: Pointer to the PCC channel info structure.
555 static void pcc_parse_subspace_shmem(struct pcc_chan_info *pchan,
562 pchan->chan.shmem_base_addr = pcct_ss->base_address;
563 pchan->chan.shmem_size = pcct_ss->length;
564 pchan->chan.latency = pcct_ss->latency;
565 pchan->chan.max_access_rate = pcct_ss->max_access_rate;
566 pchan->chan.min_turnaround_time = pcct_ss->min_turnaround_time;
571 pchan->chan.shmem_base_addr = pcct_ext->base_address;
572 pchan->chan.shmem_size = pcct_ext->length;
573 pchan->chan.latency = pcct_ext->latency;
574 pchan->chan.max_access_rate = pcct_ext->max_access_rate;
575 pchan->chan.min_turnaround_time = pcct_ext->min_turnaround_time;
678 struct pcc_chan_info *pchan = chan_info + i;
680 pcc_mbox_channels[i].con_priv = pchan;
681 pchan->chan.mchan = &pcc_mbox_channels[i];
691 rc = pcc_parse_subspace_irq(pchan, pcct_entry);
695 rc = pcc_parse_subspace_db_reg(pchan, pcct_entry);
699 pcc_parse_subspace_shmem(pchan, pcct_entry);