]> asedeno.scripts.mit.edu Git - linux.git/commit
usb: renesas_usbhs: simplify usbhs_status_get_device_state()
authorEugeniu Rosca <erosca@de.adit-jv.com>
Mon, 9 Sep 2019 10:54:40 +0000 (12:54 +0200)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 22 Oct 2019 07:31:04 +0000 (10:31 +0300)
commitd2802865f7e5230778567e339510cae05eec1706
tree30e7aa7339178027ab3ec2f3cef8b155130d42cd
parent8b20d00f0f089b72f0a1e08d602a29f874bb0a35
usb: renesas_usbhs: simplify usbhs_status_get_device_state()

Similar to usbhs_status_get_ctrl_stage(), *_get_device_state() is not
supposed to return any error code since its return value is the DVSQ
bitfield of the INTSTS0 register. According to SoC HW manual rev1.00,
every single value of DVSQ[2:0] is valid and none is an error:

----8<----
Device State
000: Powered state
001: Default state
010: Address state
011: Configuration state
1xx: Suspended state
----8<----

Hence, simplify the function body. The motivation behind dropping the
switch/case construct is being able to implement reading the suspended
state. The latter (based on the above DVSQ[2:0] description) doesn't
have a unique value, but is rather a list of states (which makes
switch/case less suitable for reading/validating it):

100: (Suspended) Powered state
101: (Suspended) Default state
110: (Suspended) Address state
111: (Suspended) Configuration state

Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Signed-off-by: Veeraiyan Chidambaram <veeraiyan.chidambaram@in.bosch.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/renesas_usbhs/mod.c