diff options
author | Miquel Raynal <miquel.raynal@bootlin.com> | 2021-11-07 17:38:36 +0100 |
---|---|---|
committer | Miquel Raynal <miquel.raynal@bootlin.com> | 2021-11-07 17:38:36 +0100 |
commit | e269d7caf9e0dbd95fac9991991298f74930c2c0 (patch) | |
tree | 5fc1a69a0a54cdfc7f3a0be247f6658d3d7ed3c1 /drivers/net/dsa/xrs700x/xrs700x_i2c.c | |
parent | bca20e6a73863f37eb5e04c505be219a65f26a38 (diff) | |
parent | df872ab1ffe4bd865dfb5956cae4901429004ab6 (diff) |
Merge tag 'spi-nor/for-5.16' into mtd/next
SPI NOR core changes:
- Add spi-nor device tree binding under SPI NOR maintainers
SPI NOR manufacturer drivers changes:
- Enable locking for n25q128a13
SPI NOR controller drivers changes:
- Use devm_platform_ioremap_resource_byname()
Diffstat (limited to 'drivers/net/dsa/xrs700x/xrs700x_i2c.c')
-rw-r--r-- | drivers/net/dsa/xrs700x/xrs700x_i2c.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/dsa/xrs700x/xrs700x_i2c.c b/drivers/net/dsa/xrs700x/xrs700x_i2c.c index 489d9385b4f0..6deae388a0d6 100644 --- a/drivers/net/dsa/xrs700x/xrs700x_i2c.c +++ b/drivers/net/dsa/xrs700x/xrs700x_i2c.c @@ -109,11 +109,28 @@ static int xrs700x_i2c_remove(struct i2c_client *i2c) { struct xrs700x *priv = i2c_get_clientdata(i2c); + if (!priv) + return 0; + xrs700x_switch_remove(priv); + i2c_set_clientdata(i2c, NULL); + return 0; } +static void xrs700x_i2c_shutdown(struct i2c_client *i2c) +{ + struct xrs700x *priv = i2c_get_clientdata(i2c); + + if (!priv) + return; + + xrs700x_switch_shutdown(priv); + + i2c_set_clientdata(i2c, NULL); +} + static const struct i2c_device_id xrs700x_i2c_id[] = { { "xrs700x-switch", 0 }, {}, @@ -137,6 +154,7 @@ static struct i2c_driver xrs700x_i2c_driver = { }, .probe = xrs700x_i2c_probe, .remove = xrs700x_i2c_remove, + .shutdown = xrs700x_i2c_shutdown, .id_table = xrs700x_i2c_id, }; |