On Wed, Nov 15, 2017 at 02:07:11PM -0800, Azhar Shaikh wrote: > -static void tpm_platform_begin_xfer(void) > +static void tpm_platform_begin_xfer(struct tpm_tis_data *data) > { > u32 clkrun_val; > + struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data); > > - if (!is_bsw()) > + if (!is_bsw() || ((data->flags & TPM_TIS_CLK_ENABLE) && > + phy->begin_xfer_done)) > return; I think everything looks OK now, but I was reading over the series again, and I admit I don't quite get it.. Why do we continue to have tpm_platform_begin_xfer after you added clk_toggle? Why not just directly enable CLK_RUN in clk_toggle and get rid of tpm_platform_begin_xfer/etc ?? Is there some reason we still need to to per transfer stuff??? clk_enable or device_enable would also be a better name than clock_toggle. Jason