Lines Matching refs:c2dev
309 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_name() local
311 return sprintf(buf, "%s\n", c2dev->name); in c2port_show_name()
318 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_flash_blocks_num() local
319 struct c2port_ops *ops = c2dev->ops; in c2port_show_flash_blocks_num()
328 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_flash_block_size() local
329 struct c2port_ops *ops = c2dev->ops; in c2port_show_flash_block_size()
338 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_flash_size() local
339 struct c2port_ops *ops = c2dev->ops; in c2port_show_flash_size()
348 struct c2port_device *c2dev = dev_get_drvdata(dev); in access_show() local
350 return sprintf(buf, "%d\n", c2dev->access); in access_show()
356 struct c2port_device *c2dev = dev_get_drvdata(dev); in access_store() local
357 struct c2port_ops *ops = c2dev->ops; in access_store()
364 mutex_lock(&c2dev->mutex); in access_store()
366 c2dev->access = !!status; in access_store()
370 if (c2dev->access) in access_store()
371 ops->c2ck_set(c2dev, 1); in access_store()
372 ops->access(c2dev, c2dev->access); in access_store()
373 if (c2dev->access) in access_store()
374 ops->c2d_dir(c2dev, 1); in access_store()
376 mutex_unlock(&c2dev->mutex); in access_store()
386 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_store_reset() local
389 if (!c2dev->access) in c2port_store_reset()
392 mutex_lock(&c2dev->mutex); in c2port_store_reset()
394 c2port_reset(c2dev); in c2port_store_reset()
395 c2dev->flash_access = 0; in c2port_store_reset()
397 mutex_unlock(&c2dev->mutex); in c2port_store_reset()
422 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_dev_id() local
426 if (!c2dev->access) in c2port_show_dev_id()
429 mutex_lock(&c2dev->mutex); in c2port_show_dev_id()
430 ret = __c2port_show_dev_id(c2dev, buf); in c2port_show_dev_id()
431 mutex_unlock(&c2dev->mutex); in c2port_show_dev_id()
434 dev_err(dev, "cannot read from %s\n", c2dev->name); in c2port_show_dev_id()
459 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_rev_id() local
463 if (!c2dev->access) in c2port_show_rev_id()
466 mutex_lock(&c2dev->mutex); in c2port_show_rev_id()
467 ret = __c2port_show_rev_id(c2dev, buf); in c2port_show_rev_id()
468 mutex_unlock(&c2dev->mutex); in c2port_show_rev_id()
471 dev_err(c2dev->dev, "cannot read from %s\n", c2dev->name); in c2port_show_rev_id()
480 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_show_flash_access() local
482 return sprintf(buf, "%d\n", c2dev->flash_access); in c2port_show_flash_access()
525 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_store_flash_access() local
533 mutex_lock(&c2dev->mutex); in c2port_store_flash_access()
534 ret = __c2port_store_flash_access(c2dev, status); in c2port_store_flash_access()
535 mutex_unlock(&c2dev->mutex); in c2port_store_flash_access()
538 dev_err(c2dev->dev, "cannot enable %s flash programming\n", in c2port_store_flash_access()
539 c2dev->name); in c2port_store_flash_access()
609 struct c2port_device *c2dev = dev_get_drvdata(dev); in c2port_store_flash_erase() local
613 if (!c2dev->access || !c2dev->flash_access) in c2port_store_flash_erase()
616 mutex_lock(&c2dev->mutex); in c2port_store_flash_erase()
617 ret = __c2port_write_flash_erase(c2dev); in c2port_store_flash_erase()
618 mutex_unlock(&c2dev->mutex); in c2port_store_flash_erase()
621 dev_err(c2dev->dev, "cannot erase %s flash\n", c2dev->name); in c2port_store_flash_erase()
723 struct c2port_device *c2dev = dev_get_drvdata(kobj_to_dev(kobj)); in c2port_read_flash_data() local
727 if (!c2dev->access || !c2dev->flash_access) in c2port_read_flash_data()
730 mutex_lock(&c2dev->mutex); in c2port_read_flash_data()
731 ret = __c2port_read_flash_data(c2dev, buffer, offset, count); in c2port_read_flash_data()
732 mutex_unlock(&c2dev->mutex); in c2port_read_flash_data()
735 dev_err(c2dev->dev, "cannot read %s flash\n", c2dev->name); in c2port_read_flash_data()
838 struct c2port_device *c2dev = dev_get_drvdata(kobj_to_dev(kobj)); in c2port_write_flash_data() local
842 if (!c2dev->access || !c2dev->flash_access) in c2port_write_flash_data()
845 mutex_lock(&c2dev->mutex); in c2port_write_flash_data()
846 ret = __c2port_write_flash_data(c2dev, buffer, offset, count); in c2port_write_flash_data()
847 mutex_unlock(&c2dev->mutex); in c2port_write_flash_data()
850 dev_err(c2dev->dev, "cannot write %s flash\n", c2dev->name); in c2port_write_flash_data()
897 struct c2port_device *c2dev; in c2port_device_register() local
905 c2dev = kmalloc(sizeof(struct c2port_device), GFP_KERNEL); in c2port_device_register()
906 if (unlikely(!c2dev)) in c2port_device_register()
911 ret = idr_alloc(&c2port_idr, c2dev, 0, 0, GFP_NOWAIT); in c2port_device_register()
917 c2dev->id = ret; in c2port_device_register()
921 c2dev->dev = device_create(c2port_class, NULL, 0, c2dev, in c2port_device_register()
922 "c2port%d", c2dev->id); in c2port_device_register()
923 if (IS_ERR(c2dev->dev)) { in c2port_device_register()
924 ret = PTR_ERR(c2dev->dev); in c2port_device_register()
927 dev_set_drvdata(c2dev->dev, c2dev); in c2port_device_register()
929 strncpy(c2dev->name, name, C2PORT_NAME_LEN); in c2port_device_register()
930 c2dev->ops = ops; in c2port_device_register()
931 mutex_init(&c2dev->mutex); in c2port_device_register()
934 c2dev->access = c2dev->flash_access = 0; in c2port_device_register()
935 ops->access(c2dev, 0); in c2port_device_register()
937 dev_info(c2dev->dev, "C2 port %s added\n", name); in c2port_device_register()
938 dev_info(c2dev->dev, "%s flash has %d blocks x %d bytes " in c2port_device_register()
943 return c2dev; in c2port_device_register()
947 idr_remove(&c2port_idr, c2dev->id); in c2port_device_register()
951 kfree(c2dev); in c2port_device_register()
957 void c2port_device_unregister(struct c2port_device *c2dev) in c2port_device_unregister() argument
959 if (!c2dev) in c2port_device_unregister()
962 dev_info(c2dev->dev, "C2 port %s removed\n", c2dev->name); in c2port_device_unregister()
965 idr_remove(&c2port_idr, c2dev->id); in c2port_device_unregister()
968 device_destroy(c2port_class, c2dev->id); in c2port_device_unregister()
970 kfree(c2dev); in c2port_device_unregister()