tree a7a7c891c71025e45903ac9d37eab4eec684151a
parent f722406faae2d073cc1d01063d1123c35425939e
parent 4e0aa635d069478e73ad95ff21fd4ae144faa189
author Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1368636724 -0400
committer Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1368636724 -0400
mergetag object 4e0aa635d069478e73ad95ff21fd4ae144faa189
 type commit
 tag fixes-for-v3.10-rc2
 tagger Felipe Balbi <balbi@ti.com> 1368630148 +0300
 
 usb: fixes for v3.10-rc2
 
 Here's the initial set of fixes for v3.10-rc series. It countains miscellaneous
 fixes in numerous drivers.
 
 Many gadget drivers and PHY drivers learned that it's not necessary to
 platform_set_drvdata() twice, that's not necessary to check the resource
 pointer returned by platform_get_resource() when using devm_ioremap_resource()
 and they learned that we shouldn't return 0 in case of errors.
 
 DWC3 got a build fix for cases where DWC3 is marked as 'y' while gadget API is
 marked as 'm'.
 
 There's also a NULL pointer exception fix on usb_get_phy(), mxs-phy now knows
 which PHY type it is and s3c-hsotg is now passing proper arguments to
 usb_gadget_unmap_request().
 
 Other than that there are some spelling fixes and kernel-doc warnings.
 
 Signed-of-by: Felipe Balbi <balbi@ti.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJRk6TAAAoJEIaOsuA1yqRElRAP/2qqRq9WLzHSJgb2y0GJf+KO
 bLtulVvb/AuNyQ4kpuNoFeG97HCVOG4QZTP0ZyXqwurbMcyPrcNyIbVNzdSL7KhK
 bzUDOOXOyVWZsBvc/Dxl1Fbhazovn+mhTF30ne8Bd+OviSCheMLM74fjhjLnQQtY
 tPBFiRqH4fFLwWoJQ6FAeZGzM+6Es31QGStGZgGRSD7S3aypdZzzdaHnsFNJOK32
 1NZIDcV6dzKQ+w/GP3WkaMb06hvttM40sNZUS0Vrb2r5YY5ZPrCPA2NEbJ0yw/W9
 cQum2U/qJfDpNIHmLdaZfLY7vNbeQ+32zyCU7Y7kJeaz1zUSJ6V4KT7N4TWliqE2
 w/n1hEkJP2EpbHQ5kx+RdTLifYdmWGMZhVj5GGGQdRuL8oE2ngrVceQoMzYehOr7
 EfB2l+eSCK1Ao4rPFyomeUcclyJ7/vC/5IrFbN5wzWx58azqa4P9ECTHf5Zdrknm
 0YcLBZarZ+auNiLdX3+DvhCnzAtC03BrOcuzE2McY9FqGnpqL/ruNKIbpF8ZIuzP
 2NSHPp7oF+PWRFsi/Ucq4qr5acqBZOgnDSSC2JyXq1xhO0KB+ak628Y3PC2ZERWz
 AYRcbRRsyjajfbdxK0dN6Dm3bWbkAxrUA4eEhEgdGuifKu0cDxQsigmTEzEZKvet
 Xk/e6m1UGmqHjtwP33RJ
 =PuBf
 -----END PGP SIGNATURE-----

Merge tag 'fixes-for-v3.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus

Felipe writes:

usb: fixes for v3.10-rc2

Here's the initial set of fixes for v3.10-rc series. It countains miscellaneous
fixes in numerous drivers.

Many gadget drivers and PHY drivers learned that it's not necessary to
platform_set_drvdata() twice, that's not necessary to check the resource
pointer returned by platform_get_resource() when using devm_ioremap_resource()
and they learned that we shouldn't return 0 in case of errors.

DWC3 got a build fix for cases where DWC3 is marked as 'y' while gadget API is
marked as 'm'.

There's also a NULL pointer exception fix on usb_get_phy(), mxs-phy now knows
which PHY type it is and s3c-hsotg is now passing proper arguments to
usb_gadget_unmap_request().

Other than that there are some spelling fixes and kernel-doc warnings.

Signed-of-by: Felipe Balbi <balbi@ti.com>
