On Wed, Sep 10, 2014 at 01:20:18PM -0400, Ashwin Chaugule wrote: > ACPI 5.0+ spec defines a generic mode of communication > between the OS and a platform such as the BMC. This medium > (PCC) is typically used by CPPC (ACPI CPU Performance management), > RAS (ACPI reliability protocol) and MPST (ACPI Memory power > states). This mostly looks good to me at a fairly high level, one small nit below which I don't think should be a blocker to an initial merge but would be good to fix. Reviewed-by: Mark Brown <broonie@xxxxxxxxxx> > +static bool pcc_tx_done(struct mbox_chan *chan) > +{ > + struct acpi_pcct_subspace *pcct_ss = chan->con_priv; > + struct acpi_pcct_shared_memory *generic_comm_base = > + (struct acpi_pcct_shared_memory *) pcct_ss->base_address; > + u16 cmd_delay = pcct_ss->min_turnaround_time; > + > + /* Wait for Platform to consume. */ > + while (!(readw_relaxed(&generic_comm_base->status) & PCC_CMD_COMPLETE)) > + udelay(cmd_delay); This will busy wait for ever if the controller dies. We're in big trouble if that happens but it would be good to have some sort of timeout and scream here.
Attachment:
signature.asc
Description: Digital signature