Lines Matching refs:i2c_common
41 static int i2c_amd_dma_map(struct amd_i2c_common *i2c_common)
43 struct device *dev_pci = &i2c_common->mp2_dev->pci_dev->dev;
44 struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
46 i2c_common->msg->flags & I2C_M_RD ?
49 i2c_common->dma_buf = i2c_get_dma_safe_msg_buf(i2c_common->msg, 0);
50 i2c_common->dma_addr = dma_map_single(dev_pci, i2c_common->dma_buf,
51 i2c_common->msg->len,
54 if (unlikely(dma_mapping_error(dev_pci, i2c_common->dma_addr))) {
57 i2c_common->dma_buf);
64 static void i2c_amd_dma_unmap(struct amd_i2c_common *i2c_common)
66 struct device *dev_pci = &i2c_common->mp2_dev->pci_dev->dev;
68 i2c_common->msg->flags & I2C_M_RD ?
71 dma_unmap_single(dev_pci, i2c_common->dma_addr,
72 i2c_common->msg->len, dma_direction);
74 i2c_put_dma_safe_msg_buf(i2c_common->dma_buf, i2c_common->msg, true);
79 struct amd_i2c_common *i2c_common = &i2c_dev->common;
82 i2c_common->cmd_success = false;
85 static void i2c_amd_cmd_completion(struct amd_i2c_common *i2c_common)
87 struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
88 union i2c_event *event = &i2c_common->eventval;
92 i2c_common->msg->buf);
99 struct amd_i2c_common *i2c_common = &i2c_dev->common;
105 if ((i2c_common->reqcmd == i2c_read ||
106 i2c_common->reqcmd == i2c_write) &&
107 i2c_common->msg->len > 32)
108 i2c_amd_dma_unmap(i2c_common);
111 amd_mp2_rw_timeout(i2c_common);
115 amd_mp2_process_event(i2c_common);
117 if (!i2c_common->cmd_success)
125 struct amd_i2c_common *i2c_common = &i2c_dev->common;
128 amd_mp2_bus_enable_set(i2c_common, enable);
135 struct amd_i2c_common *i2c_common = &i2c_dev->common;
138 i2c_common->msg = pmsg;
141 if (i2c_amd_dma_map(i2c_common))
145 amd_mp2_rw(i2c_common, i2c_read);
147 amd_mp2_rw(i2c_common, i2c_write);
187 static int i2c_amd_suspend(struct amd_i2c_common *i2c_common)
189 struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
195 static int i2c_amd_resume(struct amd_i2c_common *i2c_common)
197 struct amd_i2c_dev *i2c_dev = amd_i2c_dev_common(i2c_common);
328 struct amd_i2c_common *i2c_common = &i2c_dev->common;
333 amd_mp2_unregister_cb(i2c_common);
334 i2c_common->mp2_dev = NULL;