diff options
author | Andrzej Pietrasiewicz <andrzej.p@samsung.com> | 2013-10-09 04:06:04 -0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2013-10-10 11:24:21 -0400 |
commit | 864328ef8e735403f85b768284001a4187d6868f (patch) | |
tree | 9a0aa3518c1c554249f36bf16e23bb8634bfedae | |
parent | 77850ae28607f33c1388928b9a4146ee2e0e57cf (diff) |
usb: gadget: storage_common: add methods to show/store 'cdrom' and 'removable'
This will be required by configfs integration.
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Kyungin Park <kyungmin.park@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r-- | drivers/usb/gadget/storage_common.c | 42 | ||||
-rw-r--r-- | drivers/usb/gadget/storage_common.h | 5 |
2 files changed, 47 insertions, 0 deletions
diff --git a/drivers/usb/gadget/storage_common.c b/drivers/usb/gadget/storage_common.c index 969948dc2596..c7b78a1f6086 100644 --- a/drivers/usb/gadget/storage_common.c +++ b/drivers/usb/gadget/storage_common.c | |||
@@ -359,6 +359,17 @@ ssize_t fsg_show_file(struct fsg_lun *curlun, struct rw_semaphore *filesem, | |||
359 | } | 359 | } |
360 | EXPORT_SYMBOL(fsg_show_file); | 360 | EXPORT_SYMBOL(fsg_show_file); |
361 | 361 | ||
362 | ssize_t fsg_show_cdrom(struct fsg_lun *curlun, char *buf) | ||
363 | { | ||
364 | return sprintf(buf, "%u\n", curlun->cdrom); | ||
365 | } | ||
366 | EXPORT_SYMBOL(fsg_show_cdrom); | ||
367 | |||
368 | ssize_t fsg_show_removable(struct fsg_lun *curlun, char *buf) | ||
369 | { | ||
370 | return sprintf(buf, "%u\n", curlun->removable); | ||
371 | } | ||
372 | EXPORT_SYMBOL(fsg_show_removable); | ||
362 | 373 | ||
363 | ssize_t fsg_store_ro(struct fsg_lun *curlun, struct rw_semaphore *filesem, | 374 | ssize_t fsg_store_ro(struct fsg_lun *curlun, struct rw_semaphore *filesem, |
364 | const char *buf, size_t count) | 375 | const char *buf, size_t count) |
@@ -439,4 +450,35 @@ ssize_t fsg_store_file(struct fsg_lun *curlun, struct rw_semaphore *filesem, | |||
439 | } | 450 | } |
440 | EXPORT_SYMBOL(fsg_store_file); | 451 | EXPORT_SYMBOL(fsg_store_file); |
441 | 452 | ||
453 | ssize_t fsg_store_cdrom(struct fsg_lun *curlun, const char *buf, size_t count) | ||
454 | { | ||
455 | unsigned cdrom; | ||
456 | int ret; | ||
457 | |||
458 | ret = kstrtouint(buf, 2, &cdrom); | ||
459 | if (ret) | ||
460 | return ret; | ||
461 | |||
462 | curlun->cdrom = cdrom; | ||
463 | |||
464 | return count; | ||
465 | } | ||
466 | EXPORT_SYMBOL(fsg_store_cdrom); | ||
467 | |||
468 | ssize_t fsg_store_removable(struct fsg_lun *curlun, const char *buf, | ||
469 | size_t count) | ||
470 | { | ||
471 | unsigned removable; | ||
472 | int ret; | ||
473 | |||
474 | ret = kstrtouint(buf, 2, &removable); | ||
475 | if (ret) | ||
476 | return ret; | ||
477 | |||
478 | curlun->removable = removable; | ||
479 | |||
480 | return count; | ||
481 | } | ||
482 | EXPORT_SYMBOL(fsg_store_removable); | ||
483 | |||
442 | MODULE_LICENSE("GPL"); | 484 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/usb/gadget/storage_common.h b/drivers/usb/gadget/storage_common.h index 16cf07bb9e75..e0f7aa69c7ed 100644 --- a/drivers/usb/gadget/storage_common.h +++ b/drivers/usb/gadget/storage_common.h | |||
@@ -214,10 +214,15 @@ ssize_t fsg_show_ro(struct fsg_lun *curlun, char *buf); | |||
214 | ssize_t fsg_show_nofua(struct fsg_lun *curlun, char *buf); | 214 | ssize_t fsg_show_nofua(struct fsg_lun *curlun, char *buf); |
215 | ssize_t fsg_show_file(struct fsg_lun *curlun, struct rw_semaphore *filesem, | 215 | ssize_t fsg_show_file(struct fsg_lun *curlun, struct rw_semaphore *filesem, |
216 | char *buf); | 216 | char *buf); |
217 | ssize_t fsg_show_cdrom(struct fsg_lun *curlun, char *buf); | ||
218 | ssize_t fsg_show_removable(struct fsg_lun *curlun, char *buf); | ||
217 | ssize_t fsg_store_ro(struct fsg_lun *curlun, struct rw_semaphore *filesem, | 219 | ssize_t fsg_store_ro(struct fsg_lun *curlun, struct rw_semaphore *filesem, |
218 | const char *buf, size_t count); | 220 | const char *buf, size_t count); |
219 | ssize_t fsg_store_nofua(struct fsg_lun *curlun, const char *buf, size_t count); | 221 | ssize_t fsg_store_nofua(struct fsg_lun *curlun, const char *buf, size_t count); |
220 | ssize_t fsg_store_file(struct fsg_lun *curlun, struct rw_semaphore *filesem, | 222 | ssize_t fsg_store_file(struct fsg_lun *curlun, struct rw_semaphore *filesem, |
221 | const char *buf, size_t count); | 223 | const char *buf, size_t count); |
224 | ssize_t fsg_store_cdrom(struct fsg_lun *curlun, const char *buf, size_t count); | ||
225 | ssize_t fsg_store_removable(struct fsg_lun *curlun, const char *buf, | ||
226 | size_t count); | ||
222 | 227 | ||
223 | #endif /* USB_STORAGE_COMMON_H */ | 228 | #endif /* USB_STORAGE_COMMON_H */ |