|
@@ -440,6 +440,7 @@ static int test_unit_ready(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|
#ifdef SUPPORT_SD_LOCK
|
|
#ifdef SUPPORT_SD_LOCK
|
|
if (get_lun_card(chip, SCSI_LUN(srb)) == SD_CARD) {
|
|
if (get_lun_card(chip, SCSI_LUN(srb)) == SD_CARD) {
|
|
struct sd_info *sd_card = &(chip->sd_card);
|
|
struct sd_info *sd_card = &(chip->sd_card);
|
|
|
|
+
|
|
if (sd_card->sd_lock_notify) {
|
|
if (sd_card->sd_lock_notify) {
|
|
sd_card->sd_lock_notify = 0;
|
|
sd_card->sd_lock_notify = 0;
|
|
set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE);
|
|
set_sense_type(chip, lun, SENSE_TYPE_MEDIA_CHANGE);
|
|
@@ -746,6 +747,7 @@ static void ms_mode_sense(struct rtsx_chip *chip, u8 cmd,
|
|
if (data_size > sys_info_offset) {
|
|
if (data_size > sys_info_offset) {
|
|
/* 96 Bytes Attribute Data */
|
|
/* 96 Bytes Attribute Data */
|
|
int len = data_size - sys_info_offset;
|
|
int len = data_size - sys_info_offset;
|
|
|
|
+
|
|
len = (len < 96) ? len : 96;
|
|
len = (len < 96) ? len : 96;
|
|
|
|
|
|
memcpy(buf + sys_info_offset, ms_card->raw_sys_info, len);
|
|
memcpy(buf + sys_info_offset, ms_card->raw_sys_info, len);
|
|
@@ -1568,6 +1570,7 @@ static int get_variable(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|
rtsx_stor_set_xfer_buf(&tmp, 1, srb);
|
|
rtsx_stor_set_xfer_buf(&tmp, 1, srb);
|
|
} else if (srb->cmnd[3] == 2) {
|
|
} else if (srb->cmnd[3] == 2) {
|
|
u8 tmp = chip->blink_led;
|
|
u8 tmp = chip->blink_led;
|
|
|
|
+
|
|
rtsx_stor_set_xfer_buf(&tmp, 1, srb);
|
|
rtsx_stor_set_xfer_buf(&tmp, 1, srb);
|
|
} else {
|
|
} else {
|
|
set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD);
|
|
set_sense_type(chip, lun, SENSE_TYPE_MEDIA_INVALID_CMD_FIELD);
|