usb: gadget: udc: renesas_usb3: Fix soc_device_match() abuse

[ Upstream commit cea45a3bd2dd4d9c35581328f571afd32b3c9f48 ]

soc_device_match() is intended as a last resort, to handle e.g. quirks
that cannot be handled by matching based on a compatible value.

As the device nodes for the Renesas USB 3.0 Peripheral Controller on
R-Car E3 and RZ/G2E do have SoC-specific compatible values, the latter
can and should be used to match against these devices.

This also fixes support for the USB 3.0 Peripheral Controller on the
R-Car E3e (R8A779M6) SoC, which is a different grading of the R-Car E3
(R8A77990) SoC, using the same SoC-specific compatible value.

Fixes: 30025efa8b ("usb: gadget: udc: renesas_usb3: add support for r8a77990")
Fixes: 546970fdab ("usb: gadget: udc: renesas_usb3: add support for r8a774c0")
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/760981fb4cd110d7cbfc9dcffa365e7c8b25c6e5.1628696960.git.geert+renesas@glider.be
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Geert Uytterhoeven 2021-08-11 17:52:54 +02:00 committed by AuxXxilium
parent 29c16efc01
commit 82b40e0aa7

View File

@ -2707,10 +2707,15 @@ static const struct renesas_usb3_priv renesas_usb3_priv_r8a77990 = {
static const struct of_device_id usb3_of_match[] = { static const struct of_device_id usb3_of_match[] = {
{ {
.compatible = "renesas,r8a774c0-usb3-peri",
.data = &renesas_usb3_priv_r8a77990,
}, {
.compatible = "renesas,r8a7795-usb3-peri", .compatible = "renesas,r8a7795-usb3-peri",
.data = &renesas_usb3_priv_gen3, .data = &renesas_usb3_priv_gen3,
}, }, {
{ .compatible = "renesas,r8a77990-usb3-peri",
.data = &renesas_usb3_priv_r8a77990,
}, {
.compatible = "renesas,rcar-gen3-usb3-peri", .compatible = "renesas,rcar-gen3-usb3-peri",
.data = &renesas_usb3_priv_gen3, .data = &renesas_usb3_priv_gen3,
}, },
@ -2719,18 +2724,10 @@ static const struct of_device_id usb3_of_match[] = {
MODULE_DEVICE_TABLE(of, usb3_of_match); MODULE_DEVICE_TABLE(of, usb3_of_match);
static const struct soc_device_attribute renesas_usb3_quirks_match[] = { static const struct soc_device_attribute renesas_usb3_quirks_match[] = {
{
.soc_id = "r8a774c0",
.data = &renesas_usb3_priv_r8a77990,
},
{ {
.soc_id = "r8a7795", .revision = "ES1.*", .soc_id = "r8a7795", .revision = "ES1.*",
.data = &renesas_usb3_priv_r8a7795_es1, .data = &renesas_usb3_priv_r8a7795_es1,
}, },
{
.soc_id = "r8a77990",
.data = &renesas_usb3_priv_r8a77990,
},
{ /* sentinel */ }, { /* sentinel */ },
}; };