Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection"

This reverts commit 235b630eda.

This commit was found responsible for issues with SD card recognition,
as users had to re-insert their cards in the readers and wait for a
while. As for some people the SD card was involved in the boot process
it also caused boot failures.

Cc: stable@vger.kernel.org
Link: https://bbs.archlinux.org/viewtopic.php?id=303321
Fixes: 235b630eda ("drivers/card_reader/rtsx_usb: Restore interrupt based detection")
Reported-by: qf <quintafeira@tutanota.com>
Closes: https://lore.kernel.org/all/1de87dfa-1e81-45b7-8dcb-ad86c21d5352@heusel.eu
Signed-off-by: Christian Heusel <christian@heusel.eu>
Link: https://lore.kernel.org/r/20250224-revert-sdcard-patch-v1-1-d1a457fbb796@heusel.eu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Christian Heusel 2025-02-24 09:32:59 +01:00 committed by Greg Kroah-Hartman
parent 92527e4739
commit 2397d61ee4

View file

@ -286,7 +286,6 @@ static int rtsx_usb_get_status_with_bulk(struct rtsx_ucr *ucr, u16 *status)
int rtsx_usb_get_card_status(struct rtsx_ucr *ucr, u16 *status)
{
int ret;
u8 interrupt_val = 0;
u16 *buf;
if (!status)
@ -309,20 +308,6 @@ int rtsx_usb_get_card_status(struct rtsx_ucr *ucr, u16 *status)
ret = rtsx_usb_get_status_with_bulk(ucr, status);
}
rtsx_usb_read_register(ucr, CARD_INT_PEND, &interrupt_val);
/* Cross check presence with interrupts */
if (*status & XD_CD)
if (!(interrupt_val & XD_INT))
*status &= ~XD_CD;
if (*status & SD_CD)
if (!(interrupt_val & SD_INT))
*status &= ~SD_CD;
if (*status & MS_CD)
if (!(interrupt_val & MS_INT))
*status &= ~MS_CD;
/* usb_control_msg may return positive when success */
if (ret < 0)
return ret;