next take at setting up a dma mask by default for platform devices v2

From: Christoph Hellwig
Date: Fri Aug 16 2019 - 02:27:15 EST

Hi all,

this is another attempt to make sure the dma_mask pointer is always
initialized for platform devices. Not doing so lead to lots of
boilerplate code, and makes platform devices different from all our
major busses like PCI where we always set up a dma_mask. In the long
run this should also help to eventually make dma_mask a scalar value
instead of a pointer and remove even more cruft.

The bigger blocker for this last time was the fact that the usb
subsystem uses the presence or lack of a dma_mask to check if the core
should do dma mapping for the driver, which is highly unusual. So we
fix this first. Note that this has some overlap with the pending
desire to use the proper dma_mmap_coherent helper for mapping usb
buffers. The first two patches have already been queued up by Greg
and are only included for completeness.

Changes since v1:
- fix a compile error in the ppc of ohci driver
- revamp the last patch to get rid of the archdata callout entirely.