|
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; |