[PATCH v3 4/6] usb: gadget: f_fs: add a device reference of usb_gadget->dev

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It is known that dev_vdbg() macro can accept NULL or non-NULL dev pointer.

Add a struct device *dev member in struct ffs_data, set it to NULL before
binding or after unbinding to a usb_gadget, set it reference of usb_gadget
->dev when bind success.

Then it can help replace private pr_vdebug() to dev_vdbg() consistently.

Signed-off-by: Linyu Yuan <quic_linyyuan@xxxxxxxxxxx>
---
v3: new patch in this version

 drivers/usb/gadget/function/f_fs.c | 3 +++
 drivers/usb/gadget/function/u_fs.h | 1 +
 2 files changed, 4 insertions(+)

diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index a4051c8..25461f1 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -1722,6 +1722,7 @@ static struct ffs_data *ffs_data_new(const char *dev_name)
 		return NULL;
 	}
 
+	ffs->dev = NULL;
 	refcount_set(&ffs->ref, 1);
 	atomic_set(&ffs->opened, 0);
 	ffs->state = FFS_READ_DESCRIPTORS;
@@ -1831,6 +1832,7 @@ static int functionfs_bind(struct ffs_data *ffs, struct usb_composite_dev *cdev)
 	}
 
 	ffs->gadget = cdev->gadget;
+	ffs->dev = &cdev->gadget->dev;
 	ffs_data_get(ffs);
 	return 0;
 }
@@ -1843,6 +1845,7 @@ static void functionfs_unbind(struct ffs_data *ffs)
 		mutex_lock(&ffs->mutex);
 		usb_ep_free_request(ffs->gadget->ep0, ffs->ep0req);
 		ffs->ep0req = NULL;
+		ffs->dev = NULL;
 		ffs->gadget = NULL;
 		clear_bit(FFS_FL_BOUND, &ffs->flags);
 		mutex_unlock(&ffs->mutex);
diff --git a/drivers/usb/gadget/function/u_fs.h b/drivers/usb/gadget/function/u_fs.h
index 4b3365f..c5f6167 100644
--- a/drivers/usb/gadget/function/u_fs.h
+++ b/drivers/usb/gadget/function/u_fs.h
@@ -146,6 +146,7 @@ enum ffs_setup_state {
 
 struct ffs_data {
 	struct usb_gadget		*gadget;
+	struct device			*dev;
 
 	/*
 	 * Protect access read/write operations, only one read/write
-- 
2.7.4




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux