Lines Matching refs:private

217 	struct dasd_eckd_private *private = device->private;
245 *track = cyl * private->rdc_data.trk_per_cyl + head;
252 struct dasd_eckd_private *private = device->private;
260 if ((rc && !private->rdc_data.facilities.XRC_supported) ||
281 struct dasd_eckd_private *private = device->private;
304 data->attributes.operation = private->attrib.operation;
313 data->attributes.operation = private->attrib.operation;
321 data->attributes.operation = private->attrib.operation;
339 data->attributes.operation = private->attrib.operation;
344 data->attributes.operation = private->attrib.operation;
356 if ((private->rdc_data.cu_type == 0x2105 ||
357 private->rdc_data.cu_type == 0x2107 ||
358 private->rdc_data.cu_type == 0x1750)
359 && !(private->uses_cdl && trk < 2))
362 heads = private->rdc_data.trk_per_cyl;
372 if (endcyl + private->attrib.nr_cyl < private->real_cyl)
373 endcyl += private->attrib.nr_cyl;
375 endcyl = (private->real_cyl - 1);
389 struct dasd_eckd_private *private = device->private;
406 switch (private->rdc_data.dev_type) {
519 trk / private->rdc_data.trk_per_cyl,
520 trk % private->rdc_data.trk_per_cyl);
537 basepriv = basedev->private;
538 startpriv = startdev->private;
566 /* private uid is kept up to date, conf_data may be outdated */
606 struct dasd_eckd_private *private = device->private;
622 switch (private->rdc_data.dev_type) {
696 trk / private->rdc_data.trk_per_cyl,
697 trk % private->rdc_data.trk_per_cyl);
737 /* create unique id from private structure. */
738 static void create_uid(struct dasd_eckd_private *private)
743 uid = &private->uid;
745 memcpy(uid->vendor, private->ned->HDA_manufacturer,
748 memcpy(uid->serial, private->ned->HDA_location,
751 uid->ssid = private->gneq->subsystemID;
752 uid->real_unit_addr = private->ned->unit_addr;
753 if (private->sneq) {
754 uid->type = private->sneq->sua_flags;
756 uid->base_unit_addr = private->sneq->base_unit_addr;
760 if (private->vdsneq) {
763 private->vdsneq->uit[count]);
773 struct dasd_eckd_private *private = device->private;
776 if (!private)
778 if (!private->ned || !private->gneq)
781 create_uid(private);
788 struct dasd_eckd_private *private = device->private;
791 if (private) {
793 *uid = private->uid;
805 struct dasd_eckd_private *private)
809 create_uid(private);
812 return memcmp(&device_uid, &private->uid, sizeof(struct dasd_uid));
948 static int dasd_eckd_identify_conf_parts(struct dasd_eckd_private *private)
954 private->ned = NULL;
955 private->sneq = NULL;
956 private->vdsneq = NULL;
957 private->gneq = NULL;
958 count = private->conf_len / sizeof(struct dasd_sneq);
959 sneq = (struct dasd_sneq *)private->conf_data;
962 private->sneq = sneq;
964 private->vdsneq = (struct vd_sneq *)sneq;
966 private->gneq = (struct dasd_gneq *)sneq;
968 private->ned = (struct dasd_ned *)sneq;
971 if (!private->ned || !private->gneq) {
972 private->ned = NULL;
973 private->sneq = NULL;
974 private->vdsneq = NULL;
975 private->gneq = NULL;
1005 struct dasd_eckd_private *private = device->private;
1008 private->conf_data = NULL;
1009 private->conf_len = 0;
1026 struct dasd_eckd_private *private, path_private;
1032 private = device->private;
1061 private->conf_data = conf_data;
1062 private->conf_len = conf_len;
1063 if (dasd_eckd_identify_conf_parts(private)) {
1064 private->conf_data = NULL;
1065 private->conf_len = 0;
1111 uid = &private->uid;
1168 struct dasd_eckd_private *private = device->private;
1177 fcx_in_gneq = private->gneq->reserved2[7] & 0x04;
1178 fcx_in_features = private->features.feature[40] & 0x80;
1195 struct dasd_eckd_private *private = device->private;
1199 if (private->fcx_max_data) {
1209 if (fcx_max_data < private->fcx_max_data) {
1214 private->fcx_max_data);
1224 struct dasd_eckd_private *private = device->private;
1246 memcpy(private->conf_data, data->rcd_buffer,
1248 if (dasd_eckd_identify_conf_parts(private)) {
1464 struct dasd_eckd_private *private = device->private;
1467 if (!private->fcx_max_data)
1468 private->fcx_max_data = get_fcx_max_data(device);
1477 struct dasd_eckd_private *private = device->private;
1484 memset(&private->features, 0, sizeof(struct dasd_rssd_features));
1528 memcpy(&private->features, features,
1540 struct dasd_eckd_private *private = device->private;
1549 if (private->uid.type == UA_BASE_PAV_ALIAS ||
1550 private->uid.type == UA_HYPER_PAV_ALIAS)
1573 prssdp->lss = private->ned->ID;
1574 prssdp->volume = private->ned->unit_addr;
1604 memcpy(&private->vsq, vsq, sizeof(*vsq));
1620 struct dasd_eckd_private *private = device->private;
1622 return private->vsq.vol_info.ese;
1627 struct dasd_eckd_private *private = device->private;
1629 return private->vsq.extent_pool_id;
1639 struct dasd_eckd_private *private = device->private;
1644 return rc ? : private->vsq.space_configured;
1653 struct dasd_eckd_private *private = device->private;
1658 return rc ? : private->vsq.space_allocated;
1663 struct dasd_eckd_private *private = device->private;
1665 return private->vsq.logical_capacity;
1718 struct dasd_eckd_private *private = device->private;
1726 memcpy(&private->eps, &eps,
1735 struct dasd_eckd_private *private = device->private;
1743 if (private->uid.type == UA_BASE_PAV_ALIAS ||
1744 private->uid.type == UA_HYPER_PAV_ALIAS)
1806 struct dasd_eckd_private *private = device->private;
1807 struct dasd_ext_pool_sum eps = private->eps;
1821 struct dasd_eckd_private *private = device->private;
1823 return private->eps.warn_thrshld;
1828 struct dasd_eckd_private *private = device->private;
1830 return private->eps.flags.capacity_at_warnlevel;
1838 struct dasd_eckd_private *private = device->private;
1840 return private->eps.flags.pool_oos;
1923 struct dasd_eckd_private *private = device->private;
1926 if (private->uid.type == UA_BASE_PAV_ALIAS ||
1927 private->uid.type == UA_HYPER_PAV_ALIAS)
1938 "returned rc=%d", private->uid.ssid, rc);
1983 struct dasd_eckd_private *private = device->private;
2004 if (!private) {
2005 private = kzalloc(sizeof(*private), GFP_KERNEL | GFP_DMA);
2006 if (!private) {
2008 "Allocating memory for private DASD data "
2012 device->private = private;
2014 memset(private, 0, sizeof(*private));
2017 private->init_cqr_status = -1;
2019 private->attrib.operation = DASD_NORMAL_CACHE;
2020 private->attrib.nr_cyl = 0;
2033 if (private->gneq) {
2035 for (i = 0; i < private->gneq->timeout.value; i++)
2037 value = value * private->gneq->timeout.number;
2080 &private->rdc_data, 64);
2088 !(private->rdc_data.facilities.RT_in_LR)) {
2096 if (private->rdc_data.no_cyl == LV_COMPAT_CYL &&
2097 private->rdc_data.long_no_cyl)
2098 private->real_cyl = private->rdc_data.long_no_cyl;
2100 private->real_cyl = private->rdc_data.no_cyl;
2102 private->fcx_max_data = get_fcx_max_data(device);
2110 private->rdc_data.dev_type,
2111 private->rdc_data.dev_model,
2112 private->rdc_data.cu_type,
2113 private->rdc_data.cu_model.model,
2114 private->real_cyl,
2115 private->rdc_data.trk_per_cyl,
2116 private->rdc_data.sec_per_trk,
2127 kfree(device->private);
2128 device->private = NULL;
2134 struct dasd_eckd_private *private = device->private;
2136 if (!private)
2140 private->ned = NULL;
2141 private->sneq = NULL;
2142 private->vdsneq = NULL;
2143 private->gneq = NULL;
2150 struct dasd_eckd_private *private = device->private;
2174 count_data = private->count_area;
2236 struct dasd_eckd_private *private = device->private;
2238 private->init_cqr_status = dasd_eckd_analysis_evaluation(init_cqr);
2265 struct dasd_eckd_private *private = device->private;
2271 status = private->init_cqr_status;
2272 private->init_cqr_status = -1;
2298 private->uses_cdl = 1;
2302 if (private->count_area[i].kl != 4 ||
2303 private->count_area[i].dl != dasd_eckd_cdl_reclen(i) - 4 ||
2304 private->count_area[i].cyl != 0 ||
2305 private->count_area[i].head != count_area_head[i] ||
2306 private->count_area[i].record != count_area_rec[i]) {
2307 private->uses_cdl = 0;
2312 count_area = &private->count_area[3];
2314 if (private->uses_cdl == 0) {
2316 if ((private->count_area[i].kl != 0) ||
2317 (private->count_area[i].dl !=
2318 private->count_area[0].dl) ||
2319 private->count_area[i].cyl != 0 ||
2320 private->count_area[i].head != count_area_head[i] ||
2321 private->count_area[i].record != count_area_rec[i])
2325 count_area = &private->count_area[0];
2327 if (private->count_area[3].record == 1)
2346 blk_per_trk = recs_per_track(&private->rdc_data, 0, block->bp_block);
2349 block->blocks = ((unsigned long) private->real_cyl *
2350 private->rdc_data.trk_per_cyl *
2356 (((unsigned long) private->real_cyl *
2357 private->rdc_data.trk_per_cyl *
2360 private->uses_cdl ?
2368 struct dasd_eckd_private *private = block->base->private;
2370 if (private->init_cqr_status < 0)
2399 struct dasd_eckd_private *private = block->base->private;
2402 geo->sectors = recs_per_track(&private->rdc_data,
2405 geo->cylinders = private->rdc_data.no_cyl;
2406 geo->heads = private->rdc_data.trk_per_cyl;
2434 start_priv = startdev->private;
2520 start_priv = startdev->private;
2521 base_priv = base->private;
2608 start_priv = startdev->private;
2609 base_priv = base->private;
2873 struct dasd_eckd_private *private = base->private;
2876 (private->real_cyl * private->rdc_data.trk_per_cyl)) {
2883 (private->real_cyl * private->rdc_data.trk_per_cyl)) {
2913 struct dasd_eckd_private *private = base->private;
2940 recs_per_track(&private->rdc_data, 0, fdata->blksize);
2985 private = device->private;
3000 private->count--;
3087 struct dasd_eckd_private *private = device->private;
3091 private->count--;
3099 struct dasd_eckd_private *private;
3116 private = base->private;
3118 recs_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
3147 fdata.intensity = private->uses_cdl ? DASD_FMT_INT_COMPAT : 0;
3181 struct dasd_eckd_private *private;
3202 private = base->private;
3206 recs_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
3402 struct dasd_eckd_private *private = base->private;
3412 trk_per_cyl = private->rdc_data.trk_per_cyl;
3415 rpt_max = recs_per_track(&private->rdc_data, 0, 512) + 1;
3416 rpt_exp = recs_per_track(&private->rdc_data, 0, cdata->expect.blksize);
3433 if ((private->features.feature[40] & 0x04) &&
3434 fmt_buffer_size <= private->fcx_max_data)
3514 struct dasd_eckd_private *private = device->private;
3523 if (!device->block && private->lcu &&
3554 private->suc_reason = sense[8];
3557 private->suc_reason);
3591 struct dasd_eckd_private *private = device->private;
3595 trks_per_vol = private->real_cyl * private->rdc_data.trk_per_cyl;
3658 struct dasd_eckd_private *private = device->private;
3679 features = &private->features;
3681 trks_per_ext = dasd_eckd_ext_size(device) * private->rdc_data.trk_per_cyl;
3708 ras_data->lss = private->ned->ID;
3709 ras_data->dev_addr = private->ned->unit_addr;
3713 heads = private->rdc_data.trk_per_cyl;
3773 struct dasd_eckd_private *private = device->private;
3786 device_exts = private->real_cyl / dasd_eckd_ext_size(device);
3787 trks_per_ext = dasd_eckd_ext_size(device) * private->rdc_data.trk_per_cyl;
3824 private = device->private;
3830 private->count--;
3863 struct dasd_eckd_private *private;
3879 private = basedev->private;
3903 use_prefix = private->features.feature[8] & 0x01;
3920 if (private->uses_cdl && first_rec < 2*blk_per_trk) {
3959 if (private->uses_cdl == 0 || recid > 2*blk_per_trk) {
3981 if (private->uses_cdl && recid < 2*blk_per_trk) {
3996 if (private->uses_cdl && recid == 2*blk_per_trk) {
4244 basepriv = basedev->private;
4245 startpriv = startdev->private;
4255 /* private uid is kept up to date, conf_data may be outdated */
4555 struct dasd_eckd_private *private;
4566 private = basedev->private;
4570 blk_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
4579 cdlspecial = (private->uses_cdl && first_rec < 2*blk_per_trk);
4581 fcx_multitrack = private->features.feature[40] & 0x20;
4590 cmdrtd = private->features.feature[9] & 0x20;
4591 cmdwtd = private->features.feature[12] & 0x40;
4592 use_prefix = private->features.feature[8] & 0x01;
4597 } else if ((data_size <= private->fcx_max_data)
4691 base_priv = basedev->private;
4783 struct dasd_eckd_private *private;
4794 private = cqr->block->base->private;
4796 blk_per_trk = recs_per_track(&private->rdc_data, 0, blksize);
4801 if (private->uses_cdl == 0 || recid > 2*blk_per_trk)
4807 if (private->uses_cdl && recid <= 2*blk_per_trk)
4870 struct dasd_eckd_private *private;
4878 private = startdev->private;
4879 if (private->count >= DASD_ECKD_CHANQ_MAX_SIZE)
4883 private->count++;
4889 private->count--;
4897 struct dasd_eckd_private *private;
4901 private = cqr->memdev->private;
4902 private->count--;
4911 struct dasd_eckd_private *private = device->private;
4914 info->FBA_layout = private->uses_cdl ? 0 : 1;
4915 info->format = private->uses_cdl ? DASD_FORMAT_CDL : DASD_FORMAT_LDL;
4916 info->characteristics_size = sizeof(private->rdc_data);
4917 memcpy(info->characteristics, &private->rdc_data,
4918 sizeof(private->rdc_data));
4919 info->confdata_size = min((unsigned long)private->conf_len,
4921 memcpy(info->configuration_data, private->conf_data,
5232 struct dasd_eckd_private *private = device->private;
5233 struct attrib_data_t attrib = private->attrib;
5256 struct dasd_eckd_private *private = device->private;
5266 private->attrib = attrib;
5270 private->attrib.operation, private->attrib.nr_cyl);
5756 struct dasd_eckd_private *private = device->private;
5775 if (memcmp(&private->uid, &temp_uid, sizeof(struct dasd_uid)) != 0)
5816 memcpy(&private->rdc_data, &temp_rdc_data, sizeof(temp_rdc_data));
5832 struct dasd_eckd_private *private = device->private;
5845 old_base = private->uid.base_unit_addr;
5969 struct dasd_eckd_private *private = device->private;
5977 if (!device->block && private->lcu->pav == HYPER_PAV)
5981 if (!(private->features.feature[14] & 0x80))
6011 prssdp->lss = private->ned->ID;
6012 prssdp->volume = private->ned->unit_addr;
6323 struct dasd_eckd_private *private = device->private;
6331 list_for_each_entry_safe(dev, n, &private->lcu->active_devices,
6341 list_for_each_entry_safe(dev, n, &private->lcu->inactive_devices,
6352 &private->lcu->grouplist, group) {
6384 struct dasd_eckd_private *private = device->private;
6395 &private->lcu->active_devices,
6405 &private->lcu->inactive_devices,
6416 &private->lcu->grouplist,
6479 struct dasd_eckd_private *private = device->private;
6484 spin_lock_irqsave(&private->lcu->lock, flags);
6485 list_for_each_entry_safe(dev, n, &private->lcu->active_devices,
6490 list_for_each_entry_safe(dev, n, &private->lcu->inactive_devices,
6497 &private->lcu->grouplist,
6510 spin_unlock_irqrestore(&private->lcu->lock, flags);
6606 struct dasd_eckd_private *private = device->private;
6610 private->fcx_max_data = 0;
6615 struct dasd_eckd_private *private = device->private;
6617 return private->fcx_max_data ? 1 : 0;
6623 struct dasd_eckd_private *private = device->private;
6625 if (!private->fcx_max_data) {