From 3a7e9b6c661a23429b4a106d1ffa8aa5ce6c62bb Mon Sep 17 00:00:00 2001 From: Tomas Winkler Date: Mon, 29 Sep 2014 16:31:41 +0300 Subject: [PATCH] mei: push all standard settings into mei_device_init Setting of hw_ops and device has should be in mei_device_init. We add reference to the parent device and remove pci dependent cfg Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman --- drivers/misc/mei/hw-me.c | 6 ++---- drivers/misc/mei/hw-txe.c | 5 ++--- drivers/misc/mei/init.c | 14 ++++++++++++-- drivers/misc/mei/mei_dev.h | 6 +++++- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/misc/mei/hw-me.c b/drivers/misc/mei/hw-me.c index 56a9caa2e606..df42b6f6e7ca 100644 --- a/drivers/misc/mei/hw-me.c +++ b/drivers/misc/mei/hw-me.c @@ -824,10 +824,8 @@ struct mei_device *mei_me_dev_init(struct pci_dev *pdev, if (!dev) return NULL; - mei_device_init(dev, cfg); - - dev->ops = &mei_me_hw_ops; - + mei_device_init(dev, &pdev->dev, &mei_me_hw_ops); + dev->cfg = cfg; dev->pdev = pdev; return dev; } diff --git a/drivers/misc/mei/hw-txe.c b/drivers/misc/mei/hw-txe.c index 1855b3b1ab21..fc1a51f818d0 100644 --- a/drivers/misc/mei/hw-txe.c +++ b/drivers/misc/mei/hw-txe.c @@ -1123,14 +1123,13 @@ struct mei_device *mei_txe_dev_init(struct pci_dev *pdev, if (!dev) return NULL; - mei_device_init(dev, cfg); + mei_device_init(dev, &pdev->dev, &mei_txe_hw_ops); hw = to_txe_hw(dev); init_waitqueue_head(&hw->wait_aliveness_resp); - dev->ops = &mei_txe_hw_ops; - + dev->cfg = cfg; dev->pdev = pdev; return dev; } diff --git a/drivers/misc/mei/init.c b/drivers/misc/mei/init.c index 5c41f5860c89..ac659768e2b5 100644 --- a/drivers/misc/mei/init.c +++ b/drivers/misc/mei/init.c @@ -365,7 +365,16 @@ int mei_fw_status(struct mei_device *dev, struct mei_fw_status *fw_status) } EXPORT_SYMBOL_GPL(mei_fw_status); -void mei_device_init(struct mei_device *dev, const struct mei_cfg *cfg) +/** + * mei_device_init -- initialize mei_device structure + * + * @dev: the mei device + * @device: the device structure + * @hw_ops: hw operations + */ +void mei_device_init(struct mei_device *dev, + struct device *device, + const struct mei_hw_ops *hw_ops) { /* setup our list array */ INIT_LIST_HEAD(&dev->file_list); @@ -404,7 +413,8 @@ void mei_device_init(struct mei_device *dev, const struct mei_cfg *cfg) bitmap_set(dev->host_clients_map, 0, 1); dev->pg_event = MEI_PG_EVENT_IDLE; - dev->cfg = cfg; + dev->ops = hw_ops; + dev->dev = device; } EXPORT_SYMBOL_GPL(mei_device_init); diff --git a/drivers/misc/mei/mei_dev.h b/drivers/misc/mei/mei_dev.h index be7b14766cfa..705143023255 100644 --- a/drivers/misc/mei/mei_dev.h +++ b/drivers/misc/mei/mei_dev.h @@ -399,6 +399,7 @@ struct mei_cfg { * struct mei_device - MEI private device struct * @pdev - pointer to pci device struct + * @dev - device on a bus * @cdev - character device * @minor - minor number allocated for device * @@ -417,6 +418,7 @@ struct mei_cfg { */ struct mei_device { struct pci_dev *pdev; /* pointer to pci device struct */ + struct device *dev; struct cdev cdev; int minor; @@ -560,7 +562,9 @@ static inline u32 mei_slots2data(int slots) /* * mei init function prototypes */ -void mei_device_init(struct mei_device *dev, const struct mei_cfg *cfg); +void mei_device_init(struct mei_device *dev, + struct device *device, + const struct mei_hw_ops *hw_ops); int mei_reset(struct mei_device *dev); int mei_start(struct mei_device *dev); int mei_restart(struct mei_device *dev); -- GitLab