If more buses span continuous address space then there can be up to the
256 MB long address range which ecam backend tries to map.
Such huge space cannot be mapped on some memory limited systems. And also
it is not needed to map whole 256 MB long address range because ecam
backend cache uses mapping only for one bus. One bus has maximal mapping
size just 32*8*4096 bytes.
So adjust size calculation when mapping ecam bus.
*addr = start_addr + offset;
*length = total_length - offset;
+ if (*length > 32*8*4096)
+ *length = 32*8*4096;
+
return 1;
}