On Wed, Oct 09, 2024 at 01:06:32PM +0800, Bingbu Cao wrote: > On 10/8/24 11:23 PM, Andy Shevchenko wrote: > > On Tue, Oct 08, 2024 at 02:19:15PM +0800, bingbu.cao@xxxxxxxxx wrote: > >> From: Bingbu Cao <bingbu.cao@xxxxxxxxx> ... > >> /* Shared structure between driver and FW - do not modify */ > >> struct ipu6_fw_sys_queue { > >> - u64 host_address; > >> + uintptr_t host_address; > > > > Okay, in the given semantic this probably should be phys_addr_t. > > BUT, is this address somehow is going to be used by IPU6 hardware? > > If "yes", the type shall not be changed. > > > > Looking at types used I hope the answer is "no", otherwise the types > > in the structures should be properly choose WRT endianess (and what > > __packed is doing here? Is it part of the protocol?). > > You are correct, the type here should not be changed. Okay, so perhaps for now we can amend the code to work around 32-bit compilation issues while leaving the type the same. Ideally this struct should be modified to follow endianess (all those types with __le prefixes), but that is another story. > >> u32 vied_address; > >> u32 size; > >> u32 token_size; > >> } __packed; ... > > Side Q: What are the alignment requirements for the prog pointer? > > It should be 64 bytes alignment. Okay, so in this case it's good to cast like this. Perhaps a comment should be added at some point, because it sounds like I already asked the very same question a while ago. -- With Best Regards, Andy Shevchenko