On Thu, 6 Oct 2022 21:32:11 +0300 Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > On Thu, Oct 06, 2022 at 05:38:14PM +0300, Matti Vaittinen wrote: > > KX022A is a 3-axis accelerometer from ROHM/Kionix. The senosr features > > include variable ODRs, I2C and SPI control, FIFO/LIFO with watermark IRQ, > > tap/motion detection, wake-up & back-to-sleep events, four acceleration > > ranges (2, 4, 8 and 16g) and probably some other cool features. > > > > Add support for the basic accelerometer features such as getting the > > acceleration data via IIO. (raw reads, triggered buffer [data-ready] or > > using the WMI IRQ). > > > > Important things to be added include the double-tap, motion > > detection and wake-up as well as the runtime power management. > > > > NOTE: Filling-up the hardware FIFO should be avoided. During my testing > > I noticed that filling up the hardware FIFO might mess-up the sample > > count. My sensor ended up in a state where the amount of data in FIFO was > > reported to be 0xff bytes, which equals to 42,5 samples. Specification > > says the FIFO can hold a maximum of 41 samples in HiRes mode. Also, at > > least once the FIFO was stuck in a state where reading data from > > hardware FIFO did not decrease the amount of data reported to be in the > > FIFO - eg. FIFO was "stuck". The code has now an error count and 10 > > reads with invalid FIFO data count will cause the fifo contents to be > > dropped. > > ... ... > ... > > > +module_param(g_kx022a_use_buffer, bool, 0); > > +MODULE_PARM_DESC(g_kx022a_use_buffer, > > + "Buffer samples. Use at own risk. Fifo must not overflow"); > > Why?! We usually do not allow module parameters in the new code. > Badly broken hardware - was my suggestion. Alternatives if there are usecases that need to use the fifo, but it can wedge hard in a fashion that is impossible to prevent from the driver? My gut feeling is still drop the support entirely with a strong comment in the code that the hardware is broken in a fashion we don't know how to work around. Jonathan