Lines Matching refs:scmdev
24 struct scm_device *scmdev = to_scm_dev(dev); in scmdev_probe() local
27 return scmdrv->probe ? scmdrv->probe(scmdev) : -ENODEV; in scmdev_probe()
32 struct scm_device *scmdev = to_scm_dev(dev); in scmdev_remove() local
35 return scmdrv->remove ? scmdrv->remove(scmdev) : -ENODEV; in scmdev_remove()
77 struct scm_device *scmdev = aobrq->scmdev; in scm_irq_handler() local
78 struct scm_driver *scmdrv = to_scm_drv(scmdev->dev.driver); in scm_irq_handler()
80 scmdrv->handler(scmdev, aobrq->data, error); in scm_irq_handler()
88 struct scm_device *scmdev = to_scm_dev(dev); \
92 ret = sprintf(buf, "%u\n", scmdev->attrs.name); \
127 struct scm_device *scmdev = to_scm_dev(dev); in scmdev_release() local
129 kfree(scmdev); in scmdev_release()
132 static void scmdev_setup(struct scm_device *scmdev, struct sale *sale, in scmdev_setup() argument
135 dev_set_name(&scmdev->dev, "%016llx", (unsigned long long) sale->sa); in scmdev_setup()
136 scmdev->nr_max_block = max_blk_count; in scmdev_setup()
137 scmdev->address = sale->sa; in scmdev_setup()
138 scmdev->size = 1UL << size; in scmdev_setup()
139 scmdev->attrs.rank = sale->rank; in scmdev_setup()
140 scmdev->attrs.persistence = sale->p; in scmdev_setup()
141 scmdev->attrs.oper_state = sale->op_state; in scmdev_setup()
142 scmdev->attrs.data_state = sale->data_state; in scmdev_setup()
143 scmdev->attrs.rank = sale->rank; in scmdev_setup()
144 scmdev->attrs.release = sale->r; in scmdev_setup()
145 scmdev->attrs.res_id = sale->rid; in scmdev_setup()
146 scmdev->dev.parent = scm_root; in scmdev_setup()
147 scmdev->dev.bus = &scm_bus_type; in scmdev_setup()
148 scmdev->dev.release = scmdev_release; in scmdev_setup()
149 scmdev->dev.groups = scmdev_attr_groups; in scmdev_setup()
155 static void scmdev_update(struct scm_device *scmdev, struct sale *sale) in scmdev_update() argument
160 device_lock(&scmdev->dev); in scmdev_update()
161 changed = scmdev->attrs.rank != sale->rank || in scmdev_update()
162 scmdev->attrs.oper_state != sale->op_state; in scmdev_update()
163 scmdev->attrs.rank = sale->rank; in scmdev_update()
164 scmdev->attrs.oper_state = sale->op_state; in scmdev_update()
165 if (!scmdev->dev.driver) in scmdev_update()
167 scmdrv = to_scm_drv(scmdev->dev.driver); in scmdev_update()
169 scmdrv->notify(scmdev, SCM_CHANGE); in scmdev_update()
171 device_unlock(&scmdev->dev); in scmdev_update()
173 kobject_uevent(&scmdev->dev.kobj, KOBJ_CHANGE); in scmdev_update()
178 struct scm_device *scmdev = to_scm_dev(dev); in check_address() local
181 return scmdev->address == sale->sa; in check_address()
196 struct scm_device *scmdev; in scm_add() local
200 scmdev = scmdev_find(sale); in scm_add()
201 if (scmdev) { in scm_add()
202 scmdev_update(scmdev, sale); in scm_add()
204 put_device(&scmdev->dev); in scm_add()
207 scmdev = kzalloc(sizeof(*scmdev), GFP_KERNEL); in scm_add()
208 if (!scmdev) in scm_add()
210 scmdev_setup(scmdev, sale, scm_info->is, scm_info->mbc); in scm_add()
211 ret = device_register(&scmdev->dev); in scm_add()
214 put_device(&scmdev->dev); in scm_add()
258 struct scm_device *scmdev = to_scm_dev(dev); in scm_dev_avail() local
261 scmdrv->notify(scmdev, SCM_AVAIL); in scm_dev_avail()