Lines Matching refs:ndd

44 static int validate_dimm(struct nvdimm_drvdata *ndd)
48 if (!ndd)
51 rc = nvdimm_check_config_data(ndd->dev);
53 dev_dbg(ndd->dev, "%ps: %s error: %d\n",
62 int nvdimm_init_nsarea(struct nvdimm_drvdata *ndd)
64 struct nd_cmd_get_config_size *cmd = &ndd->nsarea;
65 struct nvdimm_bus *nvdimm_bus = walk_to_nvdimm_bus(ndd->dev);
67 int rc = validate_dimm(ndd);
78 rc = nd_desc->ndctl(nd_desc, to_nvdimm(ndd->dev),
85 int nvdimm_get_config_data(struct nvdimm_drvdata *ndd, void *buf,
88 struct nvdimm_bus *nvdimm_bus = walk_to_nvdimm_bus(ndd->dev);
90 int rc = validate_dimm(ndd), cmd_rc = 0;
97 if (offset + len > ndd->nsarea.config_size)
100 max_cmd_size = min_t(u32, len, ndd->nsarea.max_xfer);
114 rc = nd_desc->ndctl(nd_desc, to_nvdimm(ndd->dev),
131 int nvdimm_set_config_data(struct nvdimm_drvdata *ndd, size_t offset,
136 int rc = validate_dimm(ndd), cmd_rc = 0;
137 struct nvdimm_bus *nvdimm_bus = walk_to_nvdimm_bus(ndd->dev);
143 if (offset + len > ndd->nsarea.config_size)
146 max_cmd_size = min_t(u32, len, ndd->nsarea.max_xfer);
162 rc = nd_desc->ndctl(nd_desc, to_nvdimm(ndd->dev),
242 struct nvdimm_drvdata *ndd = container_of(kref, typeof(*ndd), kref);
243 struct device *dev = ndd->dev;
248 for_each_dpa_resource_safe(ndd, res, _r)
249 nvdimm_free_dpa(ndd, res);
252 kvfree(ndd->data);
253 kfree(ndd);
257 void get_ndd(struct nvdimm_drvdata *ndd)
259 kref_get(&ndd->kref);
262 void put_ndd(struct nvdimm_drvdata *ndd)
264 if (ndd)
265 kref_put(&ndd->kref, nvdimm_drvdata_release);
338 static ssize_t __available_slots_show(struct nvdimm_drvdata *ndd, char *buf)
344 if (!ndd)
347 dev = ndd->dev;
349 nfree = nd_label_nfree(ndd);
717 struct nvdimm_drvdata *ndd;
735 ndd = to_ndd(nd_mapping);
761 for_each_dpa_resource(ndd, res) {
804 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping);
813 if (!ndd)
822 for_each_dpa_resource(ndd, res) {
847 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping);
854 if (!ndd)
861 nvdimm_bus = walk_to_nvdimm_bus(ndd->dev);
864 for_each_dpa_resource(ndd, res) {
900 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping);
905 if (!ndd)
915 for_each_dpa_resource(ndd, res) {
953 nd_dbg_dpa(nd_region, ndd, res, "%s\n", reason);
957 void nvdimm_free_dpa(struct nvdimm_drvdata *ndd, struct resource *res)
959 WARN_ON_ONCE(!is_nvdimm_bus_locked(ndd->dev));
961 __release_region(&ndd->dpa, res->start, resource_size(res));
964 struct resource *nvdimm_allocate_dpa(struct nvdimm_drvdata *ndd,
974 WARN_ON_ONCE(!is_nvdimm_bus_locked(ndd->dev));
975 res = __request_region(&ndd->dpa, start, n, name, 0);
986 resource_size_t nvdimm_allocated_dpa(struct nvdimm_drvdata *ndd,
992 for_each_dpa_resource(ndd, res)