[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <8280ddecc4e14643b446c018d89fab28@AcuMS.aculab.com>
Date: Tue, 8 Oct 2024 09:03:27 +0000
From: David Laight <David.Laight@...LAB.COM>
To: "'Marius.Cristea@...rochip.com'" <Marius.Cristea@...rochip.com>,
"arnd@...db.de" <arnd@...db.de>
CC: "linux-arch@...r.kernel.org" <linux-arch@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v1] asm-generic: introduce be56 unaligned accessors
...
> I'm using block read in order to get multiple registers at a time
> (around 76 bytes) and to increase the efficiency of the transfer over
> I2C. Being a block read there are different registers length involved
> from 16 up to 56 bits long and I need to unpack.
You could do an unaligned 64bit BE read and then shift the value right 8 bits
(and only advance the pointer 7 bytes).
Safe because you can guarantee a spare byte at the end of the data.
On x86-64 you could do that for all sizes!
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists