NULL,
};
+static void adb_ready_callback(void);
+static void adb_closed_callback(void);
/* temporary variable used between adb_open() and adb_gadget_bind() */
static struct adb_dev *_adb_dev;
static int adb_open(struct inode *ip, struct file *fp)
{
- printk(KERN_INFO "adb_open\n");
+ pr_info("adb_open\n");
if (!_adb_dev)
return -ENODEV;
/* clear the error latch */
_adb_dev->error = 0;
+ adb_ready_callback();
+
return 0;
}
static int adb_release(struct inode *ip, struct file *fp)
{
- printk(KERN_INFO "adb_release\n");
+ pr_info("adb_release\n");
+
+ adb_closed_callback();
+
adb_unlock(&_adb_dev->open_excl);
return 0;
}