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
238 struct i2c_client *client = rmi_smb->client; in rmi_smb_enable_smbus_mode()
245 if (rmi_smb->xport.pdata.reset_delay_ms) in rmi_smb_enable_smbus_mode()
246 msleep(rmi_smb->xport.pdata.reset_delay_ms); in rmi_smb_enable_smbus_mode()
249 smbus_version = rmi_smb_get_version(rmi_smb); in rmi_smb_enable_smbus_mode()
267 struct rmi_smb_xport *rmi_smb = in rmi_smb_reset() local
270 rmi_smb_clear_state(rmi_smb); in rmi_smb_reset()
278 return rmi_smb_enable_smbus_mode(rmi_smb); in rmi_smb_reset()
290 struct rmi_smb_xport *rmi_smb; in rmi_smb_probe() local
311 rmi_smb = devm_kzalloc(&client->dev, sizeof(struct rmi_smb_xport), in rmi_smb_probe()
313 if (!rmi_smb) in rmi_smb_probe()
319 rmi_smb->client = client; in rmi_smb_probe()
320 mutex_init(&rmi_smb->page_mutex); in rmi_smb_probe()
321 mutex_init(&rmi_smb->mappingtable_mutex); in rmi_smb_probe()
323 rmi_smb->xport.dev = &client->dev; in rmi_smb_probe()
324 rmi_smb->xport.pdata = *pdata; in rmi_smb_probe()
325 rmi_smb->xport.pdata.irq = client->irq; in rmi_smb_probe()
326 rmi_smb->xport.proto_name = "smb"; in rmi_smb_probe()
327 rmi_smb->xport.ops = &rmi_smb_ops; in rmi_smb_probe()
329 error = rmi_smb_enable_smbus_mode(rmi_smb); in rmi_smb_probe()
333 i2c_set_clientdata(client, rmi_smb); in rmi_smb_probe()
337 error = rmi_register_transport_device(&rmi_smb->xport); in rmi_smb_probe()
348 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_remove() local
350 rmi_unregister_transport_device(&rmi_smb->xport); in rmi_smb_remove()
356 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_suspend() local
359 ret = rmi_driver_suspend(rmi_smb->xport.rmi_dev, true); in rmi_smb_suspend()
369 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_runtime_suspend() local
372 ret = rmi_driver_suspend(rmi_smb->xport.rmi_dev, false); in rmi_smb_runtime_suspend()
382 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_resume() local
383 struct rmi_device *rmi_dev = rmi_smb->xport.rmi_dev; in rmi_smb_resume()
386 rmi_smb_reset(&rmi_smb->xport, 0); in rmi_smb_resume()
390 ret = rmi_driver_resume(rmi_smb->xport.rmi_dev, true); in rmi_smb_resume()
400 struct rmi_smb_xport *rmi_smb = i2c_get_clientdata(client); in rmi_smb_runtime_resume() local
403 ret = rmi_driver_resume(rmi_smb->xport.rmi_dev, false); in rmi_smb_runtime_resume()