mlxsw_i2c 98 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c_convert_mbox(struct mlxsw_i2c *mlxsw_i2c, u8 *buf) mlxsw_i2c 104 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->cmd.mb_off_in = tmp & mlxsw_i2c 106 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->cmd.mb_size_in = (tmp & GENMASK(31, mlxsw_i2c 111 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->cmd.mb_off_out = tmp & mlxsw_i2c 113 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->cmd.mb_size_out = (tmp & GENMASK(31, mlxsw_i2c 136 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c, u8 *p_status) mlxsw_i2c 180 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c, mlxsw_i2c 227 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c, u16 opcode, u32 in_mod) mlxsw_i2c 268 drivers/net/ethernet/mellanox/mlxsw/i2c.c err = mlxsw_i2c_wait_go_bit(client, mlxsw_i2c, &status); mlxsw_i2c 286 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c) mlxsw_i2c 306 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c_convert_mbox(mlxsw_i2c, &buf[MLXSW_I2C_MBOX_OUT_PARAM_OFF]); mlxsw_i2c 317 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c = i2c_get_clientdata(client); mlxsw_i2c 319 drivers/net/ethernet/mellanox/mlxsw/i2c.c int off = mlxsw_i2c->cmd.mb_off_in, chunk_size, i, j; mlxsw_i2c 326 drivers/net/ethernet/mellanox/mlxsw/i2c.c tran_buf = kmalloc(mlxsw_i2c->block_size + MLXSW_I2C_ADDR_BUF_SIZE, mlxsw_i2c 333 drivers/net/ethernet/mellanox/mlxsw/i2c.c chunk_size = (in_mbox_size > mlxsw_i2c->block_size) ? mlxsw_i2c 334 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->block_size : in_mbox_size; mlxsw_i2c 338 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->block_size * i, chunk_size); mlxsw_i2c 363 drivers/net/ethernet/mellanox/mlxsw/i2c.c err = mlxsw_i2c_write_cmd(client, mlxsw_i2c, 0); mlxsw_i2c 371 drivers/net/ethernet/mellanox/mlxsw/i2c.c err = mlxsw_i2c_wait_go_bit(client, mlxsw_i2c, p_status); mlxsw_i2c 395 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c = i2c_get_clientdata(client); mlxsw_i2c 399 drivers/net/ethernet/mellanox/mlxsw/i2c.c int off = mlxsw_i2c->cmd.mb_off_out; mlxsw_i2c 409 drivers/net/ethernet/mellanox/mlxsw/i2c.c num = reg_size / mlxsw_i2c->block_size; mlxsw_i2c 410 drivers/net/ethernet/mellanox/mlxsw/i2c.c if (reg_size % mlxsw_i2c->block_size) mlxsw_i2c 413 drivers/net/ethernet/mellanox/mlxsw/i2c.c if (mutex_lock_interruptible(&mlxsw_i2c->cmd.lock) < 0) { mlxsw_i2c 424 drivers/net/ethernet/mellanox/mlxsw/i2c.c mutex_unlock(&mlxsw_i2c->cmd.lock); mlxsw_i2c 430 drivers/net/ethernet/mellanox/mlxsw/i2c.c num = reg_size / mlxsw_i2c->block_size; mlxsw_i2c 432 drivers/net/ethernet/mellanox/mlxsw/i2c.c if (mutex_lock_interruptible(&mlxsw_i2c->cmd.lock) < 0) { mlxsw_i2c 437 drivers/net/ethernet/mellanox/mlxsw/i2c.c err = mlxsw_i2c_write_init_cmd(client, mlxsw_i2c, opcode, mlxsw_i2c 446 drivers/net/ethernet/mellanox/mlxsw/i2c.c chunk_size = (reg_size > mlxsw_i2c->block_size) ? mlxsw_i2c 447 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->block_size : reg_size; mlxsw_i2c 475 drivers/net/ethernet/mellanox/mlxsw/i2c.c mutex_unlock(&mlxsw_i2c->cmd.lock); mlxsw_i2c 480 drivers/net/ethernet/mellanox/mlxsw/i2c.c mutex_unlock(&mlxsw_i2c->cmd.lock); mlxsw_i2c 490 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c = bus_priv; mlxsw_i2c 492 drivers/net/ethernet/mellanox/mlxsw/i2c.c return mlxsw_i2c_cmd(mlxsw_i2c->dev, opcode, in_mod, in_mbox_size, mlxsw_i2c 513 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c = bus_priv; mlxsw_i2c 517 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->core = mlxsw_core; mlxsw_i2c 527 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->bus_info.fw_rev.major = mlxsw_i2c 529 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->bus_info.fw_rev.minor = mlxsw_i2c 531 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->bus_info.fw_rev.subminor = mlxsw_i2c 543 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c = bus_priv; mlxsw_i2c 545 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->core = NULL; mlxsw_i2c 561 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c; mlxsw_i2c 565 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c = devm_kzalloc(&client->dev, sizeof(*mlxsw_i2c), GFP_KERNEL); mlxsw_i2c 566 drivers/net/ethernet/mellanox/mlxsw/i2c.c if (!mlxsw_i2c) mlxsw_i2c 578 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->block_size = max_t(u16, MLXSW_I2C_BLK_DEF, mlxsw_i2c 582 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->block_size = MLXSW_I2C_BLK_DEF; mlxsw_i2c 585 drivers/net/ethernet/mellanox/mlxsw/i2c.c i2c_set_clientdata(client, mlxsw_i2c); mlxsw_i2c 586 drivers/net/ethernet/mellanox/mlxsw/i2c.c mutex_init(&mlxsw_i2c->cmd.lock); mlxsw_i2c 601 drivers/net/ethernet/mellanox/mlxsw/i2c.c err = mlxsw_i2c_write_cmd(client, mlxsw_i2c, 1); mlxsw_i2c 608 drivers/net/ethernet/mellanox/mlxsw/i2c.c err = mlxsw_i2c_wait_go_bit(client, mlxsw_i2c, &status); mlxsw_i2c 623 drivers/net/ethernet/mellanox/mlxsw/i2c.c err = mlxsw_i2c_get_mbox(client, mlxsw_i2c); mlxsw_i2c 630 drivers/net/ethernet/mellanox/mlxsw/i2c.c id->name, mlxsw_i2c->cmd.mb_size_in, mlxsw_i2c 631 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->cmd.mb_off_in, mlxsw_i2c->cmd.mb_size_out, mlxsw_i2c 632 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->cmd.mb_off_out); mlxsw_i2c 635 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->bus_info.device_kind = id->name; mlxsw_i2c 636 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->bus_info.device_name = client->name; mlxsw_i2c 637 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->bus_info.dev = &client->dev; mlxsw_i2c 638 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->bus_info.low_frequency = true; mlxsw_i2c 639 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_i2c->dev = &client->dev; mlxsw_i2c 641 drivers/net/ethernet/mellanox/mlxsw/i2c.c err = mlxsw_core_bus_device_register(&mlxsw_i2c->bus_info, mlxsw_i2c 642 drivers/net/ethernet/mellanox/mlxsw/i2c.c &mlxsw_i2c_bus, mlxsw_i2c, false, mlxsw_i2c 659 drivers/net/ethernet/mellanox/mlxsw/i2c.c struct mlxsw_i2c *mlxsw_i2c = i2c_get_clientdata(client); mlxsw_i2c 661 drivers/net/ethernet/mellanox/mlxsw/i2c.c mlxsw_core_bus_device_unregister(mlxsw_i2c->core, false); mlxsw_i2c 662 drivers/net/ethernet/mellanox/mlxsw/i2c.c mutex_destroy(&mlxsw_i2c->cmd.lock);