On Sat, Aug 29, 2020 at 6:46 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > > On Thu, 27 Aug 2020 13:00:36 +0300 > Alexandru Ardelean <ardeleanalex@xxxxxxxxx> wrote: > > > On Thu, Aug 27, 2020 at 12:03 PM Fabrice Gasnier <fabrice.gasnier@xxxxxx> wrote: > > > > > > On 8/27/20 10:55 AM, Alexandru Ardelean wrote: > > > > On Wed, Aug 26, 2020 at 3:03 PM Alexandru Ardelean > > > > <alexandru.ardelean@xxxxxxxxxx> wrote: > > > >> From: Sergiu Cuciurean <sergiu.cuciurean@xxxxxxxxxx> > > > >> > > > >> As part of the general cleanup of indio_dev->mlock, this change replaces > > > >> it with a local lock. The lock protects against potential races when > > > >> reading the CR reg and then updating, so that the state of pm_runtime > > > >> is consistent between the two operations. > > > >> > > > >> Signed-off-by: Sergiu Cuciurean <sergiu.cuciurean@xxxxxxxxxx> > > > >> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> > > > >> --- > > > > Forgot the changelog here. > > > > Apologies. > > > > > > > > Changelog v1 -> v2: > > > > * removed whitespace change for 'common' field > > > > * updated comment about the lock usage > > > > > > Hi Alexandru, > > > > > > Sorry if I missed it... is there an update on the comment :-) ? > > > > For a moment there, I thought I didn't. > > GMail's threading is confusing. > > > > ---------------------------------------------------------------------------- > > As part of the general cleanup of indio_dev->mlock, this change replaces > > it with a local lock. The lock protects against potential races when > > reading the CR reg and then updating, so that the state of pm_runtime > > is consistent between the two operations. > > ---------------------------------------------------------------------------- > I think this got confused... > > see below. > > > > > > > > > > Best Regards, > > > Fabrice > > > > > > > >> drivers/iio/dac/stm32-dac.c | 12 ++++++++---- > > > >> 1 file changed, 8 insertions(+), 4 deletions(-) > > > >> > > > >> diff --git a/drivers/iio/dac/stm32-dac.c b/drivers/iio/dac/stm32-dac.c > > > >> index 092c796fa3d9..7a8aed476850 100644 > > > >> --- a/drivers/iio/dac/stm32-dac.c > > > >> +++ b/drivers/iio/dac/stm32-dac.c > > > >> @@ -26,9 +26,11 @@ > > > >> /** > > > >> * struct stm32_dac - private data of DAC driver > > > >> * @common: reference to DAC common data > > > >> + * @lock: lock to protect the data buffer during regmap ops oh, silly me; it's about this comment; will re-spin > > The original comment was: > > > In this particular case I'm not sure that's what mlock was being used for. > I think it's about avoiding races around checking if powered down and > actually doing it. > > And Fabrice's reply: > > Hi Sergiu, > > Indeed, purpose is to protect against a race here when reading CR, and > updating it via regmap (this also makes the subsequent pm_runtime calls > to be balanced based on this). > (Side note: there is no data buffer involved for the DAC.) > Could you please update the comment ? > > Thanks, > Fabrice > > > > >> */ > > > >> struct stm32_dac { > > > >> struct stm32_dac_common *common; > > > >> + struct mutex lock; > > > >> }; >