Lines Matching refs:c2dev
310 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_name() local
312 return sprintf(buf, "%s\n", c2dev->name); in c2port_show_name()
319 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_flash_blocks_num() local
320 struct c2port_ops *ops = c2dev->ops; in c2port_show_flash_blocks_num()
329 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_flash_block_size() local
330 struct c2port_ops *ops = c2dev->ops; in c2port_show_flash_block_size()
339 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_flash_size() local
340 struct c2port_ops *ops = c2dev->ops; in c2port_show_flash_size()
349 struct c2port_device *c2dev = dev_get_drvdata(dev); in access_show() local
351 return sprintf(buf, "%d\n", c2dev->access); in access_show()
357 struct c2port_device *c2dev = dev_get_drvdata(dev); in access_store() local
358 struct c2port_ops *ops = c2dev->ops; in access_store()
365 mutex_lock(&c2dev->mutex); in access_store()
367 c2dev->access = !!status; in access_store()
371 if (c2dev->access) in access_store()
372 ops->c2ck_set(c2dev, 1); in access_store()
373 ops->access(c2dev, c2dev->access); in access_store()
374 if (c2dev->access) in access_store()
375 ops->c2d_dir(c2dev, 1); in access_store()
377 mutex_unlock(&c2dev->mutex); in access_store()
387 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_store_reset() local
390 if (!c2dev->access) in c2port_store_reset()
393 mutex_lock(&c2dev->mutex); in c2port_store_reset()
395 c2port_reset(c2dev); in c2port_store_reset()
396 c2dev->flash_access = 0; in c2port_store_reset()
398 mutex_unlock(&c2dev->mutex); in c2port_store_reset()
423 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_dev_id() local
427 if (!c2dev->access) in c2port_show_dev_id()
430 mutex_lock(&c2dev->mutex); in c2port_show_dev_id()
431 ret = __c2port_show_dev_id(c2dev, buf); in c2port_show_dev_id()
432 mutex_unlock(&c2dev->mutex); in c2port_show_dev_id()
435 dev_err(dev, "cannot read from %s\n", c2dev->name); in c2port_show_dev_id()
460 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_rev_id() local
464 if (!c2dev->access) in c2port_show_rev_id()
467 mutex_lock(&c2dev->mutex); in c2port_show_rev_id()
468 ret = __c2port_show_rev_id(c2dev, buf); in c2port_show_rev_id()
469 mutex_unlock(&c2dev->mutex); in c2port_show_rev_id()
472 dev_err(c2dev->dev, "cannot read from %s\n", c2dev->name); in c2port_show_rev_id()
481 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_flash_access() local
483 return sprintf(buf, "%d\n", c2dev->flash_access); in c2port_show_flash_access()
526 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_store_flash_access() local
534 mutex_lock(&c2dev->mutex); in c2port_store_flash_access()
535 ret = __c2port_store_flash_access(c2dev, status); in c2port_store_flash_access()
536 mutex_unlock(&c2dev->mutex); in c2port_store_flash_access()
539 dev_err(c2dev->dev, "cannot enable %s flash programming\n", in c2port_store_flash_access()
540 c2dev->name); in c2port_store_flash_access()
610 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_store_flash_erase() local
614 if (!c2dev->access || !c2dev->flash_access) in c2port_store_flash_erase()
617 mutex_lock(&c2dev->mutex); in c2port_store_flash_erase()
618 ret = __c2port_write_flash_erase(c2dev); in c2port_store_flash_erase()
619 mutex_unlock(&c2dev->mutex); in c2port_store_flash_erase()
622 dev_err(c2dev->dev, "cannot erase %s flash\n", c2dev->name); in c2port_store_flash_erase()
724 struct c2port_device *c2dev = in c2port_read_flash_data() local
730 if (!c2dev->access || !c2dev->flash_access) in c2port_read_flash_data()
733 mutex_lock(&c2dev->mutex); in c2port_read_flash_data()
734 ret = __c2port_read_flash_data(c2dev, buffer, offset, count); in c2port_read_flash_data()
735 mutex_unlock(&c2dev->mutex); in c2port_read_flash_data()
738 dev_err(c2dev->dev, "cannot read %s flash\n", c2dev->name); in c2port_read_flash_data()
841 struct c2port_device *c2dev = in c2port_write_flash_data() local
847 if (!c2dev->access || !c2dev->flash_access) in c2port_write_flash_data()
850 mutex_lock(&c2dev->mutex); in c2port_write_flash_data()
851 ret = __c2port_write_flash_data(c2dev, buffer, offset, count); in c2port_write_flash_data()
852 mutex_unlock(&c2dev->mutex); in c2port_write_flash_data()
855 dev_err(c2dev->dev, "cannot write %s flash\n", c2dev->name); in c2port_write_flash_data()
902 struct c2port_device *c2dev; in c2port_device_register() local
910 c2dev = kmalloc(sizeof(struct c2port_device), GFP_KERNEL); in c2port_device_register()
911 kmemcheck_annotate_bitfield(c2dev, flags); in c2port_device_register()
912 if (unlikely(!c2dev)) in c2port_device_register()
917 ret = idr_alloc(&c2port_idr, c2dev, 0, 0, GFP_NOWAIT); in c2port_device_register()
923 c2dev->id = ret; in c2port_device_register()
927 c2dev->dev = device_create(c2port_class, NULL, 0, c2dev, in c2port_device_register()
928 "c2port%d", c2dev->id); in c2port_device_register()
929 if (IS_ERR(c2dev->dev)) { in c2port_device_register()
930 ret = PTR_ERR(c2dev->dev); in c2port_device_register()
933 dev_set_drvdata(c2dev->dev, c2dev); in c2port_device_register()
935 strncpy(c2dev->name, name, C2PORT_NAME_LEN); in c2port_device_register()
936 c2dev->ops = ops; in c2port_device_register()
937 mutex_init(&c2dev->mutex); in c2port_device_register()
940 c2dev->access = c2dev->flash_access = 0; in c2port_device_register()
941 ops->access(c2dev, 0); in c2port_device_register()
943 dev_info(c2dev->dev, "C2 port %s added\n", name); in c2port_device_register()
944 dev_info(c2dev->dev, "%s flash has %d blocks x %d bytes " in c2port_device_register()
949 return c2dev; in c2port_device_register()
953 idr_remove(&c2port_idr, c2dev->id); in c2port_device_register()
957 kfree(c2dev); in c2port_device_register()
963 void c2port_device_unregister(struct c2port_device *c2dev) in c2port_device_unregister() argument
965 if (!c2dev) in c2port_device_unregister()
968 dev_info(c2dev->dev, "C2 port %s removed\n", c2dev->name); in c2port_device_unregister()
971 idr_remove(&c2port_idr, c2dev->id); in c2port_device_unregister()
974 device_destroy(c2port_class, c2dev->id); in c2port_device_unregister()
976 kfree(c2dev); in c2port_device_unregister()