Lines Matching refs:private
220 struct dasd_eckd_private *private = device->private;
248 *track = cyl * private->rdc_data.trk_per_cyl + head;
255 struct dasd_eckd_private *private = device->private;
263 if ((rc && !private->rdc_data.facilities.XRC_supported) ||
284 struct dasd_eckd_private *private = device->private;
307 data->attributes.operation = private->attrib.operation;
316 data->attributes.operation = private->attrib.operation;
324 data->attributes.operation = private->attrib.operation;
342 data->attributes.operation = private->attrib.operation;
347 data->attributes.operation = private->attrib.operation;
359 if ((private->rdc_data.cu_type == 0x2105 ||
360 private->rdc_data.cu_type == 0x2107 ||
361 private->rdc_data.cu_type == 0x1750)
362 && !(private->uses_cdl && trk < 2))
365 heads = private->rdc_data.trk_per_cyl;
375 if (endcyl + private->attrib.nr_cyl < private->real_cyl)
376 endcyl += private->attrib.nr_cyl;
378 endcyl = (private->real_cyl - 1);
392 struct dasd_eckd_private *private = device->private;
409 switch (private->rdc_data.dev_type) {
522 trk / private->rdc_data.trk_per_cyl,
523 trk % private->rdc_data.trk_per_cyl);
540 basepriv = basedev->private;
541 startpriv = startdev->private;
569 /* private uid is kept up to date, conf_data may be outdated */
609 struct dasd_eckd_private *private = device->private;
625 switch (private->rdc_data.dev_type) {
699 trk / private->rdc_data.trk_per_cyl,
700 trk % private->rdc_data.trk_per_cyl);
740 /* create unique id from private structure. */
774 struct dasd_eckd_private *private = device->private;
777 if (!private)
779 if (!private->conf.ned || !private->conf.gneq)
782 create_uid(&private->conf, &private->uid);
789 struct dasd_eckd_private *private = device->private;
792 if (private) {
794 *uid = private->uid;
1008 struct dasd_eckd_private *private = device->private;
1016 * also replace the old private->conf_data pointer
1020 if (private->conf.data == cdp) {
1021 private->conf.data = (void *)conf_data;
1022 dasd_eckd_identify_conf_parts(&private->conf);
1037 struct dasd_eckd_private *private = device->private;
1040 private->conf.data = NULL;
1041 private->conf.len = 0;
1054 struct dasd_eckd_private *private = device->private;
1060 rc = chsc_scud(private->uid.ssid, (u64 *)esm, &esm_valid);
1097 struct dasd_eckd_private *private = device->private;
1107 dasd_eckd_get_uid_string(&private->conf, print_device_uid);
1123 struct dasd_eckd_private *private;
1125 private = device->private;
1153 private->conf.data = conf_data;
1154 private->conf.len = conf_len;
1155 if (dasd_eckd_identify_conf_parts(&private->conf)) {
1156 private->conf.data = NULL;
1157 private->conf.len = 0;
1198 struct dasd_eckd_private *private = device->private;
1207 fcx_in_gneq = private->conf.gneq->reserved2[7] & 0x04;
1208 fcx_in_features = private->features.feature[40] & 0x80;
1225 struct dasd_eckd_private *private = device->private;
1229 if (private->fcx_max_data) {
1239 if (fcx_max_data < private->fcx_max_data) {
1244 private->fcx_max_data);
1254 struct dasd_eckd_private *private = device->private;
1276 memcpy(private->conf.data, data->rcd_buffer,
1278 if (dasd_eckd_identify_conf_parts(&private->conf)) {
1505 struct dasd_eckd_private *private = device->private;
1508 if (!private->fcx_max_data)
1509 private->fcx_max_data = get_fcx_max_data(device);
1518 struct dasd_eckd_private *private = device->private;
1525 memset(&private->features, 0, sizeof(struct dasd_rssd_features));
1569 memcpy(&private->features, features,
1581 struct dasd_eckd_private *private = device->private;
1590 if (private->uid.type == UA_BASE_PAV_ALIAS ||
1591 private->uid.type == UA_HYPER_PAV_ALIAS)
1614 prssdp->lss = private->conf.ned->ID;
1615 prssdp->volume = private->conf.ned->unit_addr;
1645 memcpy(&private->vsq, vsq, sizeof(*vsq));
1661 struct dasd_eckd_private *private = device->private;
1663 return private->vsq.vol_info.ese;
1668 struct dasd_eckd_private *private = device->private;
1670 return private->vsq.extent_pool_id;
1680 struct dasd_eckd_private *private = device->private;
1685 return rc ? : private->vsq.space_configured;
1694 struct dasd_eckd_private *private = device->private;
1699 return rc ? : private->vsq.space_allocated;
1704 struct dasd_eckd_private *private = device->private;
1706 return private->vsq.logical_capacity;
1759 struct dasd_eckd_private *private = device->private;
1767 memcpy(&private->eps, &eps,
1776 struct dasd_eckd_private *private = device->private;
1784 if (private->uid.type == UA_BASE_PAV_ALIAS ||
1785 private->uid.type == UA_HYPER_PAV_ALIAS)
1847 struct dasd_eckd_private *private = device->private;
1848 struct dasd_ext_pool_sum eps = private->eps;
1862 struct dasd_eckd_private *private = device->private;
1864 return private->eps.warn_thrshld;
1869 struct dasd_eckd_private *private = device->private;
1871 return private->eps.flags.capacity_at_warnlevel;
1879 struct dasd_eckd_private *private = device->private;
1881 return private->eps.flags.pool_oos;
1964 struct dasd_eckd_private *private = device->private;
1967 if (private->uid.type == UA_BASE_PAV_ALIAS ||
1968 private->uid.type == UA_HYPER_PAV_ALIAS)
1979 "returned rc=%d", private->uid.ssid, rc);
2055 struct dasd_eckd_private *private = device->private;
2057 return private->rdc_data.facilities.PPRC_enabled;
2067 struct dasd_eckd_private *private = device->private;
2086 if (!private) {
2087 private = kzalloc(sizeof(*private), GFP_KERNEL | GFP_DMA);
2088 if (!private) {
2090 "Allocating memory for private DASD data "
2094 device->private = private;
2096 memset(private, 0, sizeof(*private));
2099 private->init_cqr_status = -1;
2101 private->attrib.operation = DASD_NORMAL_CACHE;
2102 private->attrib.nr_cyl = 0;
2116 if (private->conf.gneq) {
2118 for (i = 0; i < private->conf.gneq->timeout.value; i++)
2120 value = value * private->conf.gneq->timeout.number;
2128 &private->rdc_data, 64);
2174 !(private->rdc_data.facilities.RT_in_LR)) {
2182 if (private->rdc_data.no_cyl == LV_COMPAT_CYL &&
2183 private->rdc_data.long_no_cyl)
2184 private->real_cyl = private->rdc_data.long_no_cyl;
2186 private->real_cyl = private->rdc_data.no_cyl;
2188 private->fcx_max_data = get_fcx_max_data(device);
2196 private->rdc_data.dev_type,
2197 private->rdc_data.dev_model,
2198 private->rdc_data.cu_type,
2199 private->rdc_data.cu_model.model,
2200 private->real_cyl,
2201 private->rdc_data.trk_per_cyl,
2202 private->rdc_data.sec_per_trk,
2214 kfree(device->private);
2215 device->private = NULL;
2221 struct dasd_eckd_private *private = device->private;
2223 if (!private)
2227 private->conf.ned = NULL;
2228 private->conf.sneq = NULL;
2229 private->conf.vdsneq = NULL;
2230 private->conf.gneq = NULL;
2238 struct dasd_eckd_private *private = device->private;
2262 count_data = private->count_area;
2324 struct dasd_eckd_private *private = device->private;
2326 private->init_cqr_status = dasd_eckd_analysis_evaluation(init_cqr);
2353 struct dasd_eckd_private *private = device->private;
2359 status = private->init_cqr_status;
2360 private->init_cqr_status = -1;
2386 private->uses_cdl = 1;
2390 if (private->count_area[i].kl != 4 ||
2391 private->count_area[i].dl != dasd_eckd_cdl_reclen(i) - 4 ||
2392 private->count_area[i].cyl != 0 ||
2393 private->count_area[i].head != count_area_head[i] ||
2394 private->count_area[i].record != count_area_rec[i]) {
2395 private->uses_cdl = 0;
2400 count_area = &private->count_area[3];
2402 if (private->uses_cdl == 0) {
2404 if ((private->count_area[i].kl != 0) ||
2405 (private->count_area[i].dl !=
2406 private->count_area[0].dl) ||
2407 private->count_area[i].cyl != 0 ||
2408 private->count_area[i].head != count_area_head[i] ||
2409 private->count_area[i].record != count_area_rec[i])
2413 count_area = &private->count_area[0];
2415 if (private->count_area[3].record == 1)
2434 blk_per_trk = recs_per_track(&private->rdc_data, 0, block->bp_block);
2437 block->blocks = ((unsigned long) private->real_cyl *
2438 private->rdc_data.trk_per_cyl *
2444 (((unsigned long) private->real_cyl *
2445 private->rdc_data.trk_per_cyl *
2448 private->uses_cdl ?
2456 struct dasd_eckd_private *private = block->base->private;
2458 if (private->init_cqr_status < 0)
2487 struct dasd_eckd_private *private = block->base->private;
2490 geo->sectors = recs_per_track(&private->rdc_data,
2493 geo->cylinders = private->rdc_data.no_cyl;
2494 geo->heads = private->rdc_data.trk_per_cyl;
2522 start_priv = startdev->private;
2608 start_priv = startdev->private;
2609 base_priv = base->private;
2696 start_priv = startdev->private;
2697 base_priv = base->private;
2961 struct dasd_eckd_private *private = base->private;
2964 (private->real_cyl * private->rdc_data.trk_per_cyl)) {
2971 (private->real_cyl * private->rdc_data.trk_per_cyl)) {
3001 struct dasd_eckd_private *private = base->private;
3028 recs_per_track(&private->rdc_data, 0, fdata->blksize);
3073 private = device->private;
3088 private->count--;
3175 struct dasd_eckd_private *private = device->private;
3179 private->count--;
3187 struct dasd_eckd_private *private;
3204 private = base->private;
3206 recs_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
3235 fdata.intensity = private->uses_cdl ? DASD_FMT_INT_COMPAT : 0;
3269 struct dasd_eckd_private *private;
3290 private = base->private;
3294 recs_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
3490 struct dasd_eckd_private *private = base->private;
3500 trk_per_cyl = private->rdc_data.trk_per_cyl;
3503 rpt_max = recs_per_track(&private->rdc_data, 0, 512) + 1;
3504 rpt_exp = recs_per_track(&private->rdc_data, 0, cdata->expect.blksize);
3521 if ((private->features.feature[40] & 0x04) &&
3522 fmt_buffer_size <= private->fcx_max_data)
3602 struct dasd_eckd_private *private = device->private;
3611 if (!device->block && private->lcu &&
3642 private->suc_reason = sense[8];
3645 private->suc_reason);
3679 struct dasd_eckd_private *private = device->private;
3683 trks_per_vol = private->real_cyl * private->rdc_data.trk_per_cyl;
3766 struct dasd_eckd_private *private = device->private;
3792 features = &private->features;
3794 trks_per_ext = dasd_eckd_ext_size(device) * private->rdc_data.trk_per_cyl;
3823 ras_data->lss = private->conf.ned->ID;
3824 ras_data->dev_addr = private->conf.ned->unit_addr;
3828 heads = private->rdc_data.trk_per_cyl;
3888 struct dasd_eckd_private *private = device->private;
3901 device_exts = private->real_cyl / dasd_eckd_ext_size(device);
3902 trks_per_ext = dasd_eckd_ext_size(device) * private->rdc_data.trk_per_cyl;
3939 private = device->private;
3945 private->count--;
3978 struct dasd_eckd_private *private;
3994 private = basedev->private;
4018 use_prefix = private->features.feature[8] & 0x01;
4035 if (private->uses_cdl && first_rec < 2*blk_per_trk) {
4074 if (private->uses_cdl == 0 || recid > 2*blk_per_trk) {
4096 if (private->uses_cdl && recid < 2*blk_per_trk) {
4111 if (private->uses_cdl && recid == 2*blk_per_trk) {
4359 basepriv = basedev->private;
4360 startpriv = startdev->private;
4370 /* private uid is kept up to date, conf_data may be outdated */
4670 struct dasd_eckd_private *private;
4681 private = basedev->private;
4685 blk_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
4694 cdlspecial = (private->uses_cdl && first_rec < 2*blk_per_trk);
4696 fcx_multitrack = private->features.feature[40] & 0x20;
4705 cmdrtd = private->features.feature[9] & 0x20;
4706 cmdwtd = private->features.feature[12] & 0x40;
4707 use_prefix = private->features.feature[8] & 0x01;
4712 } else if ((data_size <= private->fcx_max_data)
4806 base_priv = basedev->private;
4898 struct dasd_eckd_private *private;
4909 private = cqr->block->base->private;
4911 blk_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
4916 if (private->uses_cdl == 0 || recid > 2*blk_per_trk)
4922 if (private->uses_cdl && recid <= 2*blk_per_trk)
4985 struct dasd_eckd_private *private;
4993 private = startdev->private;
4994 if (private->count >= DASD_ECKD_CHANQ_MAX_SIZE)
4998 private->count++;
5004 private->count--;
5012 struct dasd_eckd_private *private;
5016 private = cqr->memdev->private;
5017 private->count--;
5026 struct dasd_eckd_private *private = device->private;
5029 info->FBA_layout = private->uses_cdl ? 0 : 1;
5030 info->format = private->uses_cdl ? DASD_FORMAT_CDL : DASD_FORMAT_LDL;
5031 info->characteristics_size = sizeof(private->rdc_data);
5032 memcpy(info->characteristics, &private->rdc_data,
5033 sizeof(private->rdc_data));
5034 info->confdata_size = min_t(unsigned long, private->conf.len,
5036 memcpy(info->configuration_data, private->conf.data,
5347 struct dasd_eckd_private *private = device->private;
5348 struct attrib_data_t attrib = private->attrib;
5371 struct dasd_eckd_private *private = device->private;
5381 private->attrib = attrib;
5385 private->attrib.operation, private->attrib.nr_cyl);
5857 struct dasd_eckd_private *private = device->private;
5870 old_base = private->uid.base_unit_addr;
5892 dasd_eckd_get_uid_string(&private->conf, print_uid);
5988 struct dasd_eckd_private *private = device->private;
5996 if (!device->block && private->lcu->pav == HYPER_PAV)
6000 if (!(private->features.feature[14] & 0x80))
6030 prssdp->lss = private->conf.ned->ID;
6031 prssdp->volume = private->conf.ned->unit_addr;
6543 struct dasd_eckd_private *private = device->private;
6551 list_for_each_entry_safe(dev, n, &private->lcu->active_devices,
6561 list_for_each_entry_safe(dev, n, &private->lcu->inactive_devices,
6572 &private->lcu->grouplist, group) {
6604 struct dasd_eckd_private *private = device->private;
6615 &private->lcu->active_devices,
6625 &private->lcu->inactive_devices,
6636 &private->lcu->grouplist,
6699 struct dasd_eckd_private *private = device->private;
6704 spin_lock_irqsave(&private->lcu->lock, flags);
6705 list_for_each_entry_safe(dev, n, &private->lcu->active_devices,
6710 list_for_each_entry_safe(dev, n, &private->lcu->inactive_devices,
6717 &private->lcu->grouplist,
6730 spin_unlock_irqrestore(&private->lcu->lock, flags);
6826 struct dasd_eckd_private *private = device->private;
6830 private->fcx_max_data = 0;
6835 struct dasd_eckd_private *private = device->private;
6837 return private->fcx_max_data ? 1 : 0;
6843 struct dasd_eckd_private *private = device->private;
6845 if (!private->fcx_max_data) {