Lines 125-131
typedef enum {
Link Here
|
125 |
DA_Q_NO_UNMAP = 0x20, |
125 |
DA_Q_NO_UNMAP = 0x20, |
126 |
DA_Q_RETRY_BUSY = 0x40, |
126 |
DA_Q_RETRY_BUSY = 0x40, |
127 |
DA_Q_SMR_DM = 0x80, |
127 |
DA_Q_SMR_DM = 0x80, |
128 |
DA_Q_STRICT_UNMAP = 0x100 |
128 |
DA_Q_STRICT_UNMAP = 0x100, |
|
|
129 |
DA_Q_MODESENSE_6 = 0x200 |
129 |
} da_quirks; |
130 |
} da_quirks; |
130 |
|
131 |
|
131 |
#define DA_Q_BIT_STRING \ |
132 |
#define DA_Q_BIT_STRING \ |
Lines 2589-2594
daregister(struct cam_periph *periph, void *arg)
Link Here
|
2589 |
softc->disk->d_hba_device = cpi.hba_device; |
2590 |
softc->disk->d_hba_device = cpi.hba_device; |
2590 |
softc->disk->d_hba_subvendor = cpi.hba_subvendor; |
2591 |
softc->disk->d_hba_subvendor = cpi.hba_subvendor; |
2591 |
softc->disk->d_hba_subdevice = cpi.hba_subdevice; |
2592 |
softc->disk->d_hba_subdevice = cpi.hba_subdevice; |
|
|
2593 |
if ((cpi.hba_misc & PIM_MODESENSE_6) != 0) |
2594 |
softc->quirks |= DA_Q_MODESENSE_6; |
2592 |
|
2595 |
|
2593 |
/* |
2596 |
/* |
2594 |
* Acquire a reference to the periph before we register with GEOM. |
2597 |
* Acquire a reference to the periph before we register with GEOM. |
Lines 3095-3101
out:
Link Here
|
3095 |
{ |
3098 |
{ |
3096 |
void *mode_buf; |
3099 |
void *mode_buf; |
3097 |
int mode_buf_len; |
3100 |
int mode_buf_len; |
|
|
3101 |
int cmd_size; |
3098 |
|
3102 |
|
|
|
3103 |
if ((softc->quirks & DA_Q_MODESENSE_6) != 0) |
3104 |
cmd_size = 6; |
3105 |
else |
3106 |
cmd_size = softc->minimum_cmd_size; |
3099 |
mode_buf_len = 192; |
3107 |
mode_buf_len = 192; |
3100 |
mode_buf = malloc(mode_buf_len, M_SCSIDA, M_NOWAIT); |
3108 |
mode_buf = malloc(mode_buf_len, M_SCSIDA, M_NOWAIT); |
3101 |
if (mode_buf == NULL) { |
3109 |
if (mode_buf == NULL) { |
Lines 3113-3119
out:
Link Here
|
3113 |
/*page*/ SMS_ALL_PAGES_PAGE, |
3121 |
/*page*/ SMS_ALL_PAGES_PAGE, |
3114 |
/*param_buf*/ mode_buf, |
3122 |
/*param_buf*/ mode_buf, |
3115 |
/*param_len*/ mode_buf_len, |
3123 |
/*param_len*/ mode_buf_len, |
3116 |
/*minimum_cmd_size*/ softc->minimum_cmd_size, |
3124 |
/*minimum_cmd_size*/ cmd_size, |
3117 |
/*sense_len*/ SSD_FULL_SIZE, |
3125 |
/*sense_len*/ SSD_FULL_SIZE, |
3118 |
/*timeout*/ da_default_timeout * 1000); |
3126 |
/*timeout*/ da_default_timeout * 1000); |
3119 |
start_ccb->ccb_h.ccb_bp = NULL; |
3127 |
start_ccb->ccb_h.ccb_bp = NULL; |