Loading drivers/misc/mei/amthif.c +1 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ struct mei_cl_cb *mei_amthif_find_read_list_entry(struct mei_device *dev, struct file *file) { struct mei_cl_cb *cb; list_for_each_entry(cb, &dev->amthif_rd_complete_list.list, list) if (cb->file_object == file) return cb; Loading drivers/misc/mei/client.c +1 −0 Original line number Diff line number Diff line Loading @@ -1065,6 +1065,7 @@ void mei_cl_all_disconnect(struct mei_device *dev) void mei_cl_all_wakeup(struct mei_device *dev) { struct mei_cl *cl; list_for_each_entry(cl, &dev->file_list, link) { if (waitqueue_active(&cl->rx_wait)) { cl_dbg(dev, cl, "Waking up reading client!\n"); Loading drivers/misc/mei/debugfs.c +1 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,7 @@ void mei_dbgfs_deregister(struct mei_device *dev) int mei_dbgfs_register(struct mei_device *dev, const char *name) { struct dentry *dir, *f; dir = debugfs_create_dir(name, NULL); if (!dir) return -ENOMEM; Loading drivers/misc/mei/hbm.c +5 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ void mei_hbm_idle(struct mei_device *dev) static void mei_me_cl_remove_all(struct mei_device *dev) { struct mei_me_client *me_cl, *next; list_for_each_entry_safe(me_cl, next, &dev->me_clients, list) { list_del(&me_cl->list); kfree(me_cl); Loading Loading @@ -449,6 +450,7 @@ static int mei_hbm_stop_req(struct mei_device *dev) int mei_hbm_cl_flow_control_req(struct mei_device *dev, struct mei_cl *cl) { const size_t len = sizeof(struct hbm_flow_control); cl_dbg(dev, cl, "sending flow control\n"); return mei_hbm_cl_write(dev, cl, MEI_FLOW_CONTROL_CMD, len); } Loading Loading @@ -520,6 +522,7 @@ static void mei_hbm_cl_flow_control_res(struct mei_device *dev, int mei_hbm_cl_disconnect_req(struct mei_device *dev, struct mei_cl *cl) { const size_t len = sizeof(struct hbm_client_connect_request); return mei_hbm_cl_write(dev, cl, CLIENT_DISCONNECT_REQ_CMD, len); } Loading @@ -534,6 +537,7 @@ int mei_hbm_cl_disconnect_req(struct mei_device *dev, struct mei_cl *cl) int mei_hbm_cl_disconnect_rsp(struct mei_device *dev, struct mei_cl *cl) { const size_t len = sizeof(struct hbm_client_connect_response); return mei_hbm_cl_write(dev, cl, CLIENT_DISCONNECT_RES_CMD, len); } Loading Loading @@ -569,6 +573,7 @@ static void mei_hbm_cl_disconnect_res(struct mei_cl *cl, int mei_hbm_cl_connect_req(struct mei_device *dev, struct mei_cl *cl) { const size_t len = sizeof(struct hbm_client_connect_request); return mei_hbm_cl_write(dev, cl, CLIENT_CONNECT_REQ_CMD, len); } Loading drivers/misc/mei/hw-me.c +12 −0 Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ static void mei_me_hw_config(struct mei_device *dev) static inline enum mei_pg_state mei_me_pg_state(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); return hw->pg_state; } Loading @@ -139,6 +140,7 @@ static void mei_me_intr_clear(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); u32 hcsr = mei_hcsr_read(hw); if ((hcsr & H_IS) == H_IS) mei_me_reg_write(hw, H_CSR, hcsr); } Loading @@ -151,6 +153,7 @@ static void mei_me_intr_enable(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); u32 hcsr = mei_hcsr_read(hw); hcsr |= H_IE; mei_hcsr_set(hw, hcsr); } Loading @@ -164,6 +167,7 @@ static void mei_me_intr_disable(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); u32 hcsr = mei_hcsr_read(hw); hcsr &= ~H_IE; mei_hcsr_set(hw, hcsr); } Loading Loading @@ -234,6 +238,7 @@ static int mei_me_hw_reset(struct mei_device *dev, bool intr_enable) static void mei_me_host_set_ready(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); hw->host_hw_state = mei_hcsr_read(hw); hw->host_hw_state |= H_IE | H_IG | H_RDY; mei_hcsr_set(hw, hw->host_hw_state); Loading @@ -247,6 +252,7 @@ static void mei_me_host_set_ready(struct mei_device *dev) static bool mei_me_host_is_ready(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); hw->host_hw_state = mei_hcsr_read(hw); return (hw->host_hw_state & H_RDY) == H_RDY; } Loading @@ -260,6 +266,7 @@ static bool mei_me_host_is_ready(struct mei_device *dev) static bool mei_me_hw_is_ready(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); hw->me_hw_state = mei_me_mecsr_read(hw); return (hw->me_hw_state & ME_RDY_HRA) == ME_RDY_HRA; } Loading @@ -283,6 +290,7 @@ static int mei_me_hw_ready_wait(struct mei_device *dev) static int mei_me_hw_start(struct mei_device *dev) { int ret = mei_me_hw_ready_wait(dev); if (ret) return ret; dev_dbg(&dev->pdev->dev, "hw is ready\n"); Loading Loading @@ -390,6 +398,7 @@ static int mei_me_write_message(struct mei_device *dev, rem = length & 0x3; if (rem > 0) { u32 reg = 0; memcpy(®, &buf[length - rem], rem); mei_me_reg_write(hw, H_CB_WW, reg); } Loading Loading @@ -448,6 +457,7 @@ static int mei_me_read_slots(struct mei_device *dev, unsigned char *buffer, if (buffer_length > 0) { u32 reg = mei_me_mecbrw_read(dev); memcpy(reg_buf, ®, buffer_length); } Loading @@ -465,6 +475,7 @@ static void mei_me_pg_enter(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); u32 reg = mei_me_reg_read(hw, H_HPG_CSR); reg |= H_HPG_CSR_PGI; mei_me_reg_write(hw, H_HPG_CSR, reg); } Loading Loading @@ -732,6 +743,7 @@ static const struct mei_hw_ops mei_me_hw_ops = { static bool mei_me_fw_type_nm(struct pci_dev *pdev) { u32 reg; pci_read_config_dword(pdev, PCI_CFG_HFS_2, ®); /* make sure that bit 9 (NM) is up and bit 10 (DM) is down */ return (reg & 0x600) == 0x200; Loading Loading
drivers/misc/mei/amthif.c +1 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ struct mei_cl_cb *mei_amthif_find_read_list_entry(struct mei_device *dev, struct file *file) { struct mei_cl_cb *cb; list_for_each_entry(cb, &dev->amthif_rd_complete_list.list, list) if (cb->file_object == file) return cb; Loading
drivers/misc/mei/client.c +1 −0 Original line number Diff line number Diff line Loading @@ -1065,6 +1065,7 @@ void mei_cl_all_disconnect(struct mei_device *dev) void mei_cl_all_wakeup(struct mei_device *dev) { struct mei_cl *cl; list_for_each_entry(cl, &dev->file_list, link) { if (waitqueue_active(&cl->rx_wait)) { cl_dbg(dev, cl, "Waking up reading client!\n"); Loading
drivers/misc/mei/debugfs.c +1 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,7 @@ void mei_dbgfs_deregister(struct mei_device *dev) int mei_dbgfs_register(struct mei_device *dev, const char *name) { struct dentry *dir, *f; dir = debugfs_create_dir(name, NULL); if (!dir) return -ENOMEM; Loading
drivers/misc/mei/hbm.c +5 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ void mei_hbm_idle(struct mei_device *dev) static void mei_me_cl_remove_all(struct mei_device *dev) { struct mei_me_client *me_cl, *next; list_for_each_entry_safe(me_cl, next, &dev->me_clients, list) { list_del(&me_cl->list); kfree(me_cl); Loading Loading @@ -449,6 +450,7 @@ static int mei_hbm_stop_req(struct mei_device *dev) int mei_hbm_cl_flow_control_req(struct mei_device *dev, struct mei_cl *cl) { const size_t len = sizeof(struct hbm_flow_control); cl_dbg(dev, cl, "sending flow control\n"); return mei_hbm_cl_write(dev, cl, MEI_FLOW_CONTROL_CMD, len); } Loading Loading @@ -520,6 +522,7 @@ static void mei_hbm_cl_flow_control_res(struct mei_device *dev, int mei_hbm_cl_disconnect_req(struct mei_device *dev, struct mei_cl *cl) { const size_t len = sizeof(struct hbm_client_connect_request); return mei_hbm_cl_write(dev, cl, CLIENT_DISCONNECT_REQ_CMD, len); } Loading @@ -534,6 +537,7 @@ int mei_hbm_cl_disconnect_req(struct mei_device *dev, struct mei_cl *cl) int mei_hbm_cl_disconnect_rsp(struct mei_device *dev, struct mei_cl *cl) { const size_t len = sizeof(struct hbm_client_connect_response); return mei_hbm_cl_write(dev, cl, CLIENT_DISCONNECT_RES_CMD, len); } Loading Loading @@ -569,6 +573,7 @@ static void mei_hbm_cl_disconnect_res(struct mei_cl *cl, int mei_hbm_cl_connect_req(struct mei_device *dev, struct mei_cl *cl) { const size_t len = sizeof(struct hbm_client_connect_request); return mei_hbm_cl_write(dev, cl, CLIENT_CONNECT_REQ_CMD, len); } Loading
drivers/misc/mei/hw-me.c +12 −0 Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ static void mei_me_hw_config(struct mei_device *dev) static inline enum mei_pg_state mei_me_pg_state(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); return hw->pg_state; } Loading @@ -139,6 +140,7 @@ static void mei_me_intr_clear(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); u32 hcsr = mei_hcsr_read(hw); if ((hcsr & H_IS) == H_IS) mei_me_reg_write(hw, H_CSR, hcsr); } Loading @@ -151,6 +153,7 @@ static void mei_me_intr_enable(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); u32 hcsr = mei_hcsr_read(hw); hcsr |= H_IE; mei_hcsr_set(hw, hcsr); } Loading @@ -164,6 +167,7 @@ static void mei_me_intr_disable(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); u32 hcsr = mei_hcsr_read(hw); hcsr &= ~H_IE; mei_hcsr_set(hw, hcsr); } Loading Loading @@ -234,6 +238,7 @@ static int mei_me_hw_reset(struct mei_device *dev, bool intr_enable) static void mei_me_host_set_ready(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); hw->host_hw_state = mei_hcsr_read(hw); hw->host_hw_state |= H_IE | H_IG | H_RDY; mei_hcsr_set(hw, hw->host_hw_state); Loading @@ -247,6 +252,7 @@ static void mei_me_host_set_ready(struct mei_device *dev) static bool mei_me_host_is_ready(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); hw->host_hw_state = mei_hcsr_read(hw); return (hw->host_hw_state & H_RDY) == H_RDY; } Loading @@ -260,6 +266,7 @@ static bool mei_me_host_is_ready(struct mei_device *dev) static bool mei_me_hw_is_ready(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); hw->me_hw_state = mei_me_mecsr_read(hw); return (hw->me_hw_state & ME_RDY_HRA) == ME_RDY_HRA; } Loading @@ -283,6 +290,7 @@ static int mei_me_hw_ready_wait(struct mei_device *dev) static int mei_me_hw_start(struct mei_device *dev) { int ret = mei_me_hw_ready_wait(dev); if (ret) return ret; dev_dbg(&dev->pdev->dev, "hw is ready\n"); Loading Loading @@ -390,6 +398,7 @@ static int mei_me_write_message(struct mei_device *dev, rem = length & 0x3; if (rem > 0) { u32 reg = 0; memcpy(®, &buf[length - rem], rem); mei_me_reg_write(hw, H_CB_WW, reg); } Loading Loading @@ -448,6 +457,7 @@ static int mei_me_read_slots(struct mei_device *dev, unsigned char *buffer, if (buffer_length > 0) { u32 reg = mei_me_mecbrw_read(dev); memcpy(reg_buf, ®, buffer_length); } Loading @@ -465,6 +475,7 @@ static void mei_me_pg_enter(struct mei_device *dev) { struct mei_me_hw *hw = to_me_hw(dev); u32 reg = mei_me_reg_read(hw, H_HPG_CSR); reg |= H_HPG_CSR_PGI; mei_me_reg_write(hw, H_HPG_CSR, reg); } Loading Loading @@ -732,6 +743,7 @@ static const struct mei_hw_ops mei_me_hw_ops = { static bool mei_me_fw_type_nm(struct pci_dev *pdev) { u32 reg; pci_read_config_dword(pdev, PCI_CFG_HFS_2, ®); /* make sure that bit 9 (NM) is up and bit 10 (DM) is down */ return (reg & 0x600) == 0x200; Loading