c2dev             306 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             308 drivers/misc/c2port/core.c 	return sprintf(buf, "%s\n", c2dev->name);
c2dev             315 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             316 drivers/misc/c2port/core.c 	struct c2port_ops *ops = c2dev->ops;
c2dev             325 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             326 drivers/misc/c2port/core.c 	struct c2port_ops *ops = c2dev->ops;
c2dev             335 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             336 drivers/misc/c2port/core.c 	struct c2port_ops *ops = c2dev->ops;
c2dev             345 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             347 drivers/misc/c2port/core.c 	return sprintf(buf, "%d\n", c2dev->access);
c2dev             353 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             354 drivers/misc/c2port/core.c 	struct c2port_ops *ops = c2dev->ops;
c2dev             361 drivers/misc/c2port/core.c 	mutex_lock(&c2dev->mutex);
c2dev             363 drivers/misc/c2port/core.c 	c2dev->access = !!status;
c2dev             367 drivers/misc/c2port/core.c 	if (c2dev->access)
c2dev             368 drivers/misc/c2port/core.c 		ops->c2ck_set(c2dev, 1);
c2dev             369 drivers/misc/c2port/core.c 	ops->access(c2dev, c2dev->access);
c2dev             370 drivers/misc/c2port/core.c 	if (c2dev->access)
c2dev             371 drivers/misc/c2port/core.c 		ops->c2d_dir(c2dev, 1);
c2dev             373 drivers/misc/c2port/core.c 	mutex_unlock(&c2dev->mutex);
c2dev             383 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             386 drivers/misc/c2port/core.c 	if (!c2dev->access)
c2dev             389 drivers/misc/c2port/core.c 	mutex_lock(&c2dev->mutex);
c2dev             391 drivers/misc/c2port/core.c 	c2port_reset(c2dev);
c2dev             392 drivers/misc/c2port/core.c 	c2dev->flash_access = 0;
c2dev             394 drivers/misc/c2port/core.c 	mutex_unlock(&c2dev->mutex);
c2dev             419 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             423 drivers/misc/c2port/core.c 	if (!c2dev->access)
c2dev             426 drivers/misc/c2port/core.c 	mutex_lock(&c2dev->mutex);
c2dev             427 drivers/misc/c2port/core.c 	ret = __c2port_show_dev_id(c2dev, buf);
c2dev             428 drivers/misc/c2port/core.c 	mutex_unlock(&c2dev->mutex);
c2dev             431 drivers/misc/c2port/core.c 		dev_err(dev, "cannot read from %s\n", c2dev->name);
c2dev             456 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             460 drivers/misc/c2port/core.c 	if (!c2dev->access)
c2dev             463 drivers/misc/c2port/core.c 	mutex_lock(&c2dev->mutex);
c2dev             464 drivers/misc/c2port/core.c 	ret = __c2port_show_rev_id(c2dev, buf);
c2dev             465 drivers/misc/c2port/core.c 	mutex_unlock(&c2dev->mutex);
c2dev             468 drivers/misc/c2port/core.c 		dev_err(c2dev->dev, "cannot read from %s\n", c2dev->name);
c2dev             477 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             479 drivers/misc/c2port/core.c 	return sprintf(buf, "%d\n", c2dev->flash_access);
c2dev             522 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             530 drivers/misc/c2port/core.c 	mutex_lock(&c2dev->mutex);
c2dev             531 drivers/misc/c2port/core.c 	ret = __c2port_store_flash_access(c2dev, status);
c2dev             532 drivers/misc/c2port/core.c 	mutex_unlock(&c2dev->mutex);
c2dev             535 drivers/misc/c2port/core.c 		dev_err(c2dev->dev, "cannot enable %s flash programming\n",
c2dev             536 drivers/misc/c2port/core.c 			c2dev->name);
c2dev             606 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(dev);
c2dev             610 drivers/misc/c2port/core.c 	if (!c2dev->access || !c2dev->flash_access)
c2dev             613 drivers/misc/c2port/core.c 	mutex_lock(&c2dev->mutex);
c2dev             614 drivers/misc/c2port/core.c 	ret = __c2port_write_flash_erase(c2dev);
c2dev             615 drivers/misc/c2port/core.c 	mutex_unlock(&c2dev->mutex);
c2dev             618 drivers/misc/c2port/core.c 		dev_err(c2dev->dev, "cannot erase %s flash\n", c2dev->name);
c2dev             720 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(kobj_to_dev(kobj));
c2dev             724 drivers/misc/c2port/core.c 	if (!c2dev->access || !c2dev->flash_access)
c2dev             727 drivers/misc/c2port/core.c 	mutex_lock(&c2dev->mutex);
c2dev             728 drivers/misc/c2port/core.c 	ret = __c2port_read_flash_data(c2dev, buffer, offset, count);
c2dev             729 drivers/misc/c2port/core.c 	mutex_unlock(&c2dev->mutex);
c2dev             732 drivers/misc/c2port/core.c 		dev_err(c2dev->dev, "cannot read %s flash\n", c2dev->name);
c2dev             835 drivers/misc/c2port/core.c 	struct c2port_device *c2dev = dev_get_drvdata(kobj_to_dev(kobj));
c2dev             839 drivers/misc/c2port/core.c 	if (!c2dev->access || !c2dev->flash_access)
c2dev             842 drivers/misc/c2port/core.c 	mutex_lock(&c2dev->mutex);
c2dev             843 drivers/misc/c2port/core.c 	ret = __c2port_write_flash_data(c2dev, buffer, offset, count);
c2dev             844 drivers/misc/c2port/core.c 	mutex_unlock(&c2dev->mutex);
c2dev             847 drivers/misc/c2port/core.c 		dev_err(c2dev->dev, "cannot write %s flash\n", c2dev->name);
c2dev             894 drivers/misc/c2port/core.c 	struct c2port_device *c2dev;
c2dev             902 drivers/misc/c2port/core.c 	c2dev = kmalloc(sizeof(struct c2port_device), GFP_KERNEL);
c2dev             903 drivers/misc/c2port/core.c 	if (unlikely(!c2dev))
c2dev             908 drivers/misc/c2port/core.c 	ret = idr_alloc(&c2port_idr, c2dev, 0, 0, GFP_NOWAIT);
c2dev             914 drivers/misc/c2port/core.c 	c2dev->id = ret;
c2dev             918 drivers/misc/c2port/core.c 	c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
c2dev             919 drivers/misc/c2port/core.c 				   "c2port%d", c2dev->id);
c2dev             920 drivers/misc/c2port/core.c 	if (IS_ERR(c2dev->dev)) {
c2dev             921 drivers/misc/c2port/core.c 		ret = PTR_ERR(c2dev->dev);
c2dev             924 drivers/misc/c2port/core.c 	dev_set_drvdata(c2dev->dev, c2dev);
c2dev             926 drivers/misc/c2port/core.c 	strncpy(c2dev->name, name, C2PORT_NAME_LEN);
c2dev             927 drivers/misc/c2port/core.c 	c2dev->ops = ops;
c2dev             928 drivers/misc/c2port/core.c 	mutex_init(&c2dev->mutex);
c2dev             931 drivers/misc/c2port/core.c 	c2dev->access = c2dev->flash_access = 0;
c2dev             932 drivers/misc/c2port/core.c 	ops->access(c2dev, 0);
c2dev             934 drivers/misc/c2port/core.c 	dev_info(c2dev->dev, "C2 port %s added\n", name);
c2dev             935 drivers/misc/c2port/core.c 	dev_info(c2dev->dev, "%s flash has %d blocks x %d bytes "
c2dev             940 drivers/misc/c2port/core.c 	return c2dev;
c2dev             944 drivers/misc/c2port/core.c 	idr_remove(&c2port_idr, c2dev->id);
c2dev             948 drivers/misc/c2port/core.c 	kfree(c2dev);
c2dev             954 drivers/misc/c2port/core.c void c2port_device_unregister(struct c2port_device *c2dev)
c2dev             956 drivers/misc/c2port/core.c 	if (!c2dev)
c2dev             959 drivers/misc/c2port/core.c 	dev_info(c2dev->dev, "C2 port %s removed\n", c2dev->name);
c2dev             962 drivers/misc/c2port/core.c 	idr_remove(&c2port_idr, c2dev->id);
c2dev             965 drivers/misc/c2port/core.c 	device_destroy(c2port_class, c2dev->id);
c2dev             967 drivers/misc/c2port/core.c 	kfree(c2dev);