> No, please read the code carefully. > We can duplicate conditional, but it brings a bit of inconsistency to how the counters are printed. Thanks for clarification, I am still confused as the original code print the real mode based on dev->master_cfg, the new code is printing mode based on frequency. My understanding is the original code could fall back to a lower speed when higher speed modes were not set successfully. For example, high speed mode falls back to fast mode: if ((dev->master_cfg & DW_IC_CON_SPEED_MASK) == DW_IC_CON_SPEED_HIGH) { if ((comp_param1 & DW_IC_COMP_PARAM_1_SPEED_MODE_MASK) != DW_IC_COMP_PARAM_1_SPEED_MODE_HIGH) { dev_err(dev->dev, "High Speed not supported!\n"); dev->master_cfg &= ~DW_IC_CON_SPEED_MASK; dev->master_cfg |= DW_IC_CON_SPEED_FAST; dev->hs_hcnt = 0; dev->hs_lcnt = 0; } the original code was printing the mode based on the new fallback dev->master_cfg but not the mode calculated from frequency: switch (dev->master_cfg & DW_IC_CON_SPEED_MASK) { case DW_IC_CON_SPEED_STD: mode_str = "Standard Mode"; break; case DW_IC_CON_SPEED_HIGH: mode_str = "High Speed Mode"; break; default: mode_str = "Fast Mode"; } > > + return 0; > > } > > > > /** > > -- > > 2.8.1 > > > -- > With Best Regards, > Andy Shevchenko -- With Best Regards, Andy Shevchenko