Lines Matching refs:rmi_smb

42 static int rmi_smb_get_version(struct rmi_smb_xport *rmi_smb)  in rmi_smb_get_version()  argument
44 struct i2c_client *client = rmi_smb->client; in rmi_smb_get_version()
61 struct rmi_smb_xport *rmi_smb = in smb_block_write() local
63 struct i2c_client *client = rmi_smb->client; in smb_block_write()
82 struct rmi_smb_xport *rmi_smb = in rmi_smb_get_command_code() local
88 mutex_lock(&rmi_smb->mappingtable_mutex); in rmi_smb_get_command_code()
91 struct mapping_table_entry *entry = &rmi_smb->mapping_table[i]; in rmi_smb_get_command_code()
105 i = rmi_smb->table_index; in rmi_smb_get_command_code()
106 rmi_smb->table_index = (i + 1) % RMI_SMB2_MAP_SIZE; in rmi_smb_get_command_code()
124 rmi_smb->mapping_table[i] = new_map; in rmi_smb_get_command_code()
127 mutex_unlock(&rmi_smb->mappingtable_mutex); in rmi_smb_get_command_code()
141 struct rmi_smb_xport *rmi_smb = in rmi_smb_write_block() local
145 mutex_lock(&rmi_smb->page_mutex); in rmi_smb_write_block()
169 mutex_unlock(&rmi_smb->page_mutex); in rmi_smb_write_block()
177 struct rmi_smb_xport *rmi_smb = in smb_block_read() local
179 struct i2c_client *client = rmi_smb->client; in smb_block_read()
192 struct rmi_smb_xport *rmi_smb = in rmi_smb_read_block() local
198 mutex_lock(&rmi_smb->page_mutex); in rmi_smb_read_block()
224 mutex_unlock(&rmi_smb->page_mutex); in rmi_smb_read_block()
228 static void rmi_smb_clear_state(struct rmi_smb_xport *rmi_smb) in rmi_smb_clear_state() argument
231 mutex_lock(&rmi_smb->mappingtable_mutex); in rmi_smb_clear_state()
232 memset(rmi_smb->mapping_table, 0, sizeof(rmi_smb->mapping_table)); in rmi_smb_clear_state()
233 mutex_unlock(&rmi_smb->mappingtable_mutex); in rmi_smb_clear_state()
236 static int rmi_smb_enable_smbus_mode(struct rmi_smb_xport *rmi_smb) in rmi_smb_enable_smbus_mode() argument
241 retval = rmi_smb_get_version(rmi_smb); in rmi_smb_enable_smbus_mode()
250 struct rmi_smb_xport *rmi_smb = in rmi_smb_reset() local
253 rmi_smb_clear_state(rmi_smb); in rmi_smb_reset()
262 return rmi_smb_enable_smbus_mode(rmi_smb); in rmi_smb_reset()
275 struct rmi_smb_xport *rmi_smb; in rmi_smb_probe() local
297 rmi_smb = devm_kzalloc(&client->dev, sizeof(struct rmi_smb_xport), in rmi_smb_probe()
299 if (!rmi_smb) in rmi_smb_probe()
305 rmi_smb->client = client; in rmi_smb_probe()
306 mutex_init(&rmi_smb->page_mutex); in rmi_smb_probe()
307 mutex_init(&rmi_smb->mappingtable_mutex); in rmi_smb_probe()
309 rmi_smb->xport.dev = &client->dev; in rmi_smb_probe()
310 rmi_smb->xport.pdata = *pdata; in rmi_smb_probe()
311 rmi_smb->xport.pdata.irq = client->irq; in rmi_smb_probe()
312 rmi_smb->xport.proto_name = "smb"; in rmi_smb_probe()
313 rmi_smb->xport.ops = &rmi_smb_ops; in rmi_smb_probe()
315 smbus_version = rmi_smb_get_version(rmi_smb); in rmi_smb_probe()
328 i2c_set_clientdata(client, rmi_smb); in rmi_smb_probe()
332 error = rmi_register_transport_device(&rmi_smb->xport); in rmi_smb_probe()
343 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_remove() local
345 rmi_unregister_transport_device(&rmi_smb->xport); in rmi_smb_remove()
353 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_suspend() local
356 ret = rmi_driver_suspend(rmi_smb->xport.rmi_dev, true); in rmi_smb_suspend()
366 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_runtime_suspend() local
369 ret = rmi_driver_suspend(rmi_smb->xport.rmi_dev, false); in rmi_smb_runtime_suspend()
379 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_resume() local
380 struct rmi_device *rmi_dev = rmi_smb->xport.rmi_dev; in rmi_smb_resume()
383 rmi_smb_reset(&rmi_smb->xport, 0); in rmi_smb_resume()
387 ret = rmi_driver_resume(rmi_smb->xport.rmi_dev, true); in rmi_smb_resume()
397 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_runtime_resume() local
400 ret = rmi_driver_resume(rmi_smb->xport.rmi_dev, false); in rmi_smb_runtime_resume()