mei: use local cl variables in wd and amthif
Use local cl variable instead of dev->iamthif_cl and dev->wd_cl as the first step to use dynamic allocation of these clients as their are not supported on all platforms Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
140c755323
Коммит
3d32cf0224
|
@ -262,6 +262,7 @@ out:
|
||||||
static int mei_amthif_send_cmd(struct mei_device *dev, struct mei_cl_cb *cb)
|
static int mei_amthif_send_cmd(struct mei_device *dev, struct mei_cl_cb *cb)
|
||||||
{
|
{
|
||||||
struct mei_msg_hdr mei_hdr;
|
struct mei_msg_hdr mei_hdr;
|
||||||
|
struct mei_cl *cl;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!dev || !cb)
|
if (!dev || !cb)
|
||||||
|
@ -277,8 +278,9 @@ static int mei_amthif_send_cmd(struct mei_device *dev, struct mei_cl_cb *cb)
|
||||||
dev->iamthif_msg_buf_size = cb->request_buffer.size;
|
dev->iamthif_msg_buf_size = cb->request_buffer.size;
|
||||||
memcpy(dev->iamthif_msg_buf, cb->request_buffer.data,
|
memcpy(dev->iamthif_msg_buf, cb->request_buffer.data,
|
||||||
cb->request_buffer.size);
|
cb->request_buffer.size);
|
||||||
|
cl = &dev->iamthif_cl;
|
||||||
|
|
||||||
ret = mei_cl_flow_ctrl_creds(&dev->iamthif_cl);
|
ret = mei_cl_flow_ctrl_creds(cl);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -292,8 +294,8 @@ static int mei_amthif_send_cmd(struct mei_device *dev, struct mei_cl_cb *cb)
|
||||||
mei_hdr.msg_complete = 1;
|
mei_hdr.msg_complete = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
mei_hdr.host_addr = dev->iamthif_cl.host_client_id;
|
mei_hdr.host_addr = cl->host_client_id;
|
||||||
mei_hdr.me_addr = dev->iamthif_cl.me_client_id;
|
mei_hdr.me_addr = cl->me_client_id;
|
||||||
mei_hdr.reserved = 0;
|
mei_hdr.reserved = 0;
|
||||||
mei_hdr.internal = 0;
|
mei_hdr.internal = 0;
|
||||||
dev->iamthif_msg_buf_index += mei_hdr.length;
|
dev->iamthif_msg_buf_index += mei_hdr.length;
|
||||||
|
@ -302,7 +304,7 @@ static int mei_amthif_send_cmd(struct mei_device *dev, struct mei_cl_cb *cb)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (mei_hdr.msg_complete) {
|
if (mei_hdr.msg_complete) {
|
||||||
if (mei_cl_flow_ctrl_reduce(&dev->iamthif_cl))
|
if (mei_cl_flow_ctrl_reduce(cl))
|
||||||
return -EIO;
|
return -EIO;
|
||||||
dev->iamthif_flow_control_pending = true;
|
dev->iamthif_flow_control_pending = true;
|
||||||
dev->iamthif_state = MEI_IAMTHIF_FLOW_CONTROL;
|
dev->iamthif_state = MEI_IAMTHIF_FLOW_CONTROL;
|
||||||
|
|
|
@ -270,15 +270,18 @@ static int mei_wd_ops_stop(struct watchdog_device *wd_dev)
|
||||||
static int mei_wd_ops_ping(struct watchdog_device *wd_dev)
|
static int mei_wd_ops_ping(struct watchdog_device *wd_dev)
|
||||||
{
|
{
|
||||||
struct mei_device *dev;
|
struct mei_device *dev;
|
||||||
|
struct mei_cl *cl;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
dev = watchdog_get_drvdata(wd_dev);
|
dev = watchdog_get_drvdata(wd_dev);
|
||||||
if (!dev)
|
if (!dev)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
cl = &dev->wd_cl;
|
||||||
|
|
||||||
mutex_lock(&dev->device_lock);
|
mutex_lock(&dev->device_lock);
|
||||||
|
|
||||||
if (dev->wd_cl.state != MEI_FILE_CONNECTED) {
|
if (cl->state != MEI_FILE_CONNECTED) {
|
||||||
dev_err(dev->dev, "wd: not connected.\n");
|
dev_err(dev->dev, "wd: not connected.\n");
|
||||||
ret = -ENODEV;
|
ret = -ENODEV;
|
||||||
goto end;
|
goto end;
|
||||||
|
@ -286,12 +289,12 @@ static int mei_wd_ops_ping(struct watchdog_device *wd_dev)
|
||||||
|
|
||||||
dev->wd_state = MEI_WD_RUNNING;
|
dev->wd_state = MEI_WD_RUNNING;
|
||||||
|
|
||||||
ret = mei_cl_flow_ctrl_creds(&dev->wd_cl);
|
ret = mei_cl_flow_ctrl_creds(cl);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
/* Check if we can send the ping to HW*/
|
/* Check if we can send the ping to HW*/
|
||||||
if (ret && mei_hbuf_acquire(dev)) {
|
if (ret && mei_hbuf_acquire(dev)) {
|
||||||
|
|
||||||
dev_dbg(dev->dev, "wd: sending ping\n");
|
dev_dbg(dev->dev, "wd: sending ping\n");
|
||||||
|
|
||||||
ret = mei_wd_send(dev);
|
ret = mei_wd_send(dev);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче