diff options
| author | Pawel Laszczak <[email protected]> | 2025-06-20 08:23:12 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2025-06-24 14:42:39 +0000 |
| commit | 2831a81077f5162f104ba5a97a7d886eb371c21c (patch) | |
| tree | d8ffe7dde883421c841185898048e00e4807e3a7 /drivers/usb/cdns3/cdnsp-debug.h | |
| parent | usb: typec: tcpm: apply vbus before data bringup in tcpm_src_attach (diff) | |
| download | kernel-2831a81077f5162f104ba5a97a7d886eb371c21c.tar.gz kernel-2831a81077f5162f104ba5a97a7d886eb371c21c.zip | |
usb: cdnsp: Fix issue with CV Bad Descriptor test
The SSP2 controller has extra endpoint state preserve bit (ESP) which
setting causes that endpoint state will be preserved during
Halt Endpoint command. It is used only for EP0.
Without this bit the Command Verifier "TD 9.10 Bad Descriptor Test"
failed.
Setting this bit doesn't have any impact for SSP controller.
Fixes: 3d82904559f4 ("usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver")
Cc: stable <[email protected]>
Signed-off-by: Pawel Laszczak <[email protected]>
Acked-by: Peter Chen <[email protected]>
Link: https://lore.kernel.org/r/PH7PR07MB95382CCD50549DABAEFD6156DD7CA@PH7PR07MB9538.namprd07.prod.outlook.com
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'drivers/usb/cdns3/cdnsp-debug.h')
| -rw-r--r-- | drivers/usb/cdns3/cdnsp-debug.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/cdns3/cdnsp-debug.h b/drivers/usb/cdns3/cdnsp-debug.h index cd138acdcce1..86860686d836 100644 --- a/drivers/usb/cdns3/cdnsp-debug.h +++ b/drivers/usb/cdns3/cdnsp-debug.h @@ -327,12 +327,13 @@ static inline const char *cdnsp_decode_trb(char *str, size_t size, u32 field0, case TRB_RESET_EP: case TRB_HALT_ENDPOINT: ret = scnprintf(str, size, - "%s: ep%d%s(%d) ctx %08x%08x slot %ld flags %c", + "%s: ep%d%s(%d) ctx %08x%08x slot %ld flags %c %c", cdnsp_trb_type_string(type), ep_num, ep_id % 2 ? "out" : "in", TRB_TO_EP_INDEX(field3), field1, field0, TRB_TO_SLOT_ID(field3), - field3 & TRB_CYCLE ? 'C' : 'c'); + field3 & TRB_CYCLE ? 'C' : 'c', + field3 & TRB_ESP ? 'P' : 'p'); break; case TRB_STOP_RING: ret = scnprintf(str, size, |
