On Wed, Aug 23, 2023 at 11:16:40PM +0200, Mehdi Djait wrote: > Since Kionix accelerometers use various numbers of bits to report data, a > device-specific function is required. > Implement the function as a callback in the device-specific chip_info structure ... > + int ret, fifo_bytes; > + > + ret = regmap_read(data->regmap, KX022A_REG_BUF_STATUS_1, &fifo_bytes); > + if (ret) { > + dev_err(data->dev, "Error reading buffer status\n"); > + return ret; > + } > + > + if (fifo_bytes == KX022A_FIFO_FULL_VALUE) > + return KX022A_FIFO_MAX_BYTES; > + > + return fifo_bytes; This will be called each time ->get_fifo_bytes() called. Do you expect the fifo_bytes to be changed over times? Shouldn't we simply cache the value? ... > + fifo_bytes = data->chip_info->get_fifo_bytes(data); > Now this blank line becomes redundant. > if (fifo_bytes % KX022A_FIFO_SAMPLES_SIZE_BYTES) > dev_warn(data->dev, "Bad FIFO alignment. Data may be corrupt\n"); -- With Best Regards, Andy Shevchenko