Lines Matching defs:c2dev
306 struct c2port_device *c2dev = dev_get_drvdata(dev);
308 return sprintf(buf, "%s\n", c2dev->name);
315 struct c2port_device *c2dev = dev_get_drvdata(dev);
316 struct c2port_ops *ops = c2dev->ops;
325 struct c2port_device *c2dev = dev_get_drvdata(dev);
326 struct c2port_ops *ops = c2dev->ops;
335 struct c2port_device *c2dev = dev_get_drvdata(dev);
336 struct c2port_ops *ops = c2dev->ops;
345 struct c2port_device *c2dev = dev_get_drvdata(dev);
347 return sprintf(buf, "%d\n", c2dev->access);
353 struct c2port_device *c2dev = dev_get_drvdata(dev);
354 struct c2port_ops *ops = c2dev->ops;
361 mutex_lock(&c2dev->mutex);
363 c2dev->access = !!status;
367 if (c2dev->access)
368 ops->c2ck_set(c2dev, 1);
369 ops->access(c2dev, c2dev->access);
370 if (c2dev->access)
371 ops->c2d_dir(c2dev, 1);
373 mutex_unlock(&c2dev->mutex);
383 struct c2port_device *c2dev = dev_get_drvdata(dev);
386 if (!c2dev->access)
389 mutex_lock(&c2dev->mutex);
391 c2port_reset(c2dev);
392 c2dev->flash_access = 0;
394 mutex_unlock(&c2dev->mutex);
419 struct c2port_device *c2dev = dev_get_drvdata(dev);
423 if (!c2dev->access)
426 mutex_lock(&c2dev->mutex);
427 ret = __c2port_show_dev_id(c2dev, buf);
428 mutex_unlock(&c2dev->mutex);
431 dev_err(dev, "cannot read from %s\n", c2dev->name);
456 struct c2port_device *c2dev = dev_get_drvdata(dev);
460 if (!c2dev->access)
463 mutex_lock(&c2dev->mutex);
464 ret = __c2port_show_rev_id(c2dev, buf);
465 mutex_unlock(&c2dev->mutex);
468 dev_err(c2dev->dev, "cannot read from %s\n", c2dev->name);
477 struct c2port_device *c2dev = dev_get_drvdata(dev);
479 return sprintf(buf, "%d\n", c2dev->flash_access);
522 struct c2port_device *c2dev = dev_get_drvdata(dev);
530 mutex_lock(&c2dev->mutex);
531 ret = __c2port_store_flash_access(c2dev, status);
532 mutex_unlock(&c2dev->mutex);
535 dev_err(c2dev->dev, "cannot enable %s flash programming\n",
536 c2dev->name);
606 struct c2port_device *c2dev = dev_get_drvdata(dev);
610 if (!c2dev->access || !c2dev->flash_access)
613 mutex_lock(&c2dev->mutex);
614 ret = __c2port_write_flash_erase(c2dev);
615 mutex_unlock(&c2dev->mutex);
618 dev_err(c2dev->dev, "cannot erase %s flash\n", c2dev->name);
720 struct c2port_device *c2dev = dev_get_drvdata(kobj_to_dev(kobj));
724 if (!c2dev->access || !c2dev->flash_access)
727 mutex_lock(&c2dev->mutex);
728 ret = __c2port_read_flash_data(c2dev, buffer, offset, count);
729 mutex_unlock(&c2dev->mutex);
732 dev_err(c2dev->dev, "cannot read %s flash\n", c2dev->name);
835 struct c2port_device *c2dev = dev_get_drvdata(kobj_to_dev(kobj));
839 if (!c2dev->access || !c2dev->flash_access)
842 mutex_lock(&c2dev->mutex);
843 ret = __c2port_write_flash_data(c2dev, buffer, offset, count);
844 mutex_unlock(&c2dev->mutex);
847 dev_err(c2dev->dev, "cannot write %s flash\n", c2dev->name);
881 struct c2port_device *c2dev = dev_get_drvdata(kobj_to_dev(kobj));
884 return c2dev->ops->blocks_num * c2dev->ops->block_size;
907 struct c2port_device *c2dev;
915 c2dev = kzalloc(sizeof(struct c2port_device), GFP_KERNEL);
916 if (unlikely(!c2dev))
921 ret = idr_alloc(&c2port_idr, c2dev, 0, 0, GFP_NOWAIT);
927 c2dev->id = ret;
928 c2dev->ops = ops;
930 c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
931 "c2port%d", c2dev->id);
932 if (IS_ERR(c2dev->dev)) {
933 ret = PTR_ERR(c2dev->dev);
936 dev_set_drvdata(c2dev->dev, c2dev);
938 strscpy(c2dev->name, name, sizeof(c2dev->name));
939 mutex_init(&c2dev->mutex);
942 c2dev->access = c2dev->flash_access = 0;
943 ops->access(c2dev, 0);
945 dev_info(c2dev->dev, "C2 port %s added\n", name);
946 dev_info(c2dev->dev, "%s flash has %d blocks x %d bytes "
951 return c2dev;
955 idr_remove(&c2port_idr, c2dev->id);
959 kfree(c2dev);
965 void c2port_device_unregister(struct c2port_device *c2dev)
967 if (!c2dev)
970 dev_info(c2dev->dev, "C2 port %s removed\n", c2dev->name);
973 idr_remove(&c2port_idr, c2dev->id);
976 device_destroy(c2port_class, c2dev->id);
978 kfree(c2dev);