staging: dwc2: Make dwc2_hw_params.host_channels large enough
authorMatthijs Kooijman <matthijs@stdin.nl>
Thu, 3 Oct 2013 07:46:25 +0000 (09:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Oct 2013 20:50:54 +0000 (13:50 -0700)
commit2d1155478fb6f972b3a97cbf13151ee4f078a164
tree0aaf34bbbddbd51301a00ad7d42504194051bc0a
parentab06e0f20ed4c4eb472a1e16f942d6e0150c00bc
staging: dwc2: Make dwc2_hw_params.host_channels large enough

The hardware offers a 4-bit register containing the number of host
channels. However, the values of these register mean 1-16 host channels,
not 0-15. Since the dwc2_hw_params struct stores the actual number of
host channels supported instead of the raw register value, it should be
5 bits wide instead of 4.

Before this commit, hardware with 16 host channels would overflow the
field, making it appear as 0 channels.

This bug was introduced in commit 9badec2 (staging: dwc2: interpret all
hwcfg and related register at init time).

Reported-by: Dinh Nguyen <dinguyen@altera.com>
Signed-off-by: Matthijs Kooijman <matthijs@stdin.nl>
Acked-by: Paul Zimmerman <paulz@synopsys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/dwc2/core.h