From d40b3c0b3c3c7717510d0e91de6560028f5e4221 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date: Tue, 3 Jan 2023 16:41:08 +0000
Subject: [PATCH 0404/1085] media: dt-bindings: Add regulator to dw9807-vcm

The VCM driver will often be controlled via a regulator,
therefore add in the relevant DT hooks.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
 .../devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml    | 4 ++++
 drivers/media/i2c/dw9807-vcm.c                                | 4 ++++
 2 files changed, 8 insertions(+)

--- a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
+++ b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
@@ -27,6 +27,10 @@ properties:
   reg:
     maxItems: 1
 
+  VDD-supply:
+    description:
+      Definition of the regulator used as VDD power supply to the driver.
+
 required:
   - compatible
   - reg
--- a/drivers/media/i2c/dw9807-vcm.c
+++ b/drivers/media/i2c/dw9807-vcm.c
@@ -301,6 +301,10 @@ static void dw9807_remove(struct i2c_cli
 	struct v4l2_subdev *sd = i2c_get_clientdata(client);
 	struct dw9807_device *dw9807_dev = sd_to_dw9807_vcm(sd);
 
+	if (dw9807_dev->vdd)
+		regulator_unregister_notifier(dw9807_dev->vdd,
+					      &dw9807_dev->notifier);
+
 	pm_runtime_disable(&client->dev);
 
 	dw9807_subdev_cleanup(dw9807_dev);
