summaryrefslogtreecommitdiff
path: root/src/tag.c
diff options
context:
space:
mode:
authorEyal Reizer <eyalr@ti.com>2012-06-27 11:11:39 +0300
committerSamuel Ortiz <sameo@linux.intel.com>2012-06-27 11:52:49 +0200
commitc40cb5a3425d7bb25c996f91a5ca64cd1dd32900 (patch)
tree7cc7166e921f30d4fa27a87740bd187d6f62251a /src/tag.c
parent9ed08d84769c343cf694c02cc67f320ea0fba001 (diff)
downloadneard-c40cb5a3425d7bb25c996f91a5ca64cd1dd32900.tar.gz
neard-c40cb5a3425d7bb25c996f91a5ca64cd1dd32900.tar.bz2
neard-c40cb5a3425d7bb25c996f91a5ca64cd1dd32900.zip
tag: Add blank tag format support
* Add a new near_tag_driver op (format) used for formatting blank tags. * In case an un-formatted tag is being written __near_tag_write() first format the tag and if that succeeds it proceeds to writing the data.
Diffstat (limited to 'src/tag.c')
-rw-r--r--src/tag.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/tag.c b/src/tag.c
index 1059784..f980764 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -870,6 +870,7 @@ int __near_tag_write(struct near_tag *tag,
near_tag_io_cb cb)
{
GSList *list;
+ int err;
DBG("type 0x%x", tag->type);
@@ -878,9 +879,20 @@ int __near_tag_write(struct near_tag *tag,
DBG("driver type 0x%x", driver->type);
- if (driver->type == tag->type)
+ if (driver->type == tag->type) {
+ if (tag->blank == TRUE && driver->format != NULL) {
+ DBG("Blank tag detected, formatting");
+ err = driver->format(tag->adapter_idx,
+ tag->target_idx, NULL);
+
+ if (err < 0)
+ return err;
+
+ }
+
return driver->write(tag->adapter_idx, tag->target_idx,
ndef, cb);
+ }
}
return 0;