[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <c4fa6dbe-0e5c-3d8a-7c35-b34b7c18a244@inbox.ru>
Date: Mon, 24 May 2021 07:53:12 +0300
From: Maxim Kochetkov <fido_max@...ox.ru>
To: Mark Brown <broonie@...nel.org>
Cc: linux-kernel@...r.kernel.org, gregkh@...uxfoundation.org,
rafael@...nel.org
Subject: Re: [PATCH 1/1] regmap-irq: Introduce inverted status registers
support
18.05.2021 15:06, Mark Brown wrote:
> On Tue, May 18, 2021 at 12:44:41PM +0300, Maxim Kochetkov wrote:
>
>> + if (chip->status_invert)
>> + for (i = 0; i < data->chip->num_regs; i++)
>> + data->status_buf[i] = ~data->status_buf[i];
>> +
>
> This is the only active change so this only affects readback meaning
> that if both read and write are inverted this won't do what's expected,
> breaking acks.
I mean 'status_invert' as just status register has inverted bits. So to
keep all other logic we just need to invert status register after read.
It will not break acks because we can use ack_invert option to invert
status back if needed. Anyway it will not affect existing devices just
new ones with inverted status.
> I'm guessing your device either mixes things or is clear on read?
Yes my device is clear on read. It don`t use ack registers. It has only
mask and status.
I missed read status register at regmap_add_irq_chip_fwnode(). I will
send v2.
Powered by blists - more mailing lists