drm/nouveau/i2c: tidy up bit-bang helpers, also fixing nv50 setsda bug

Was using nv_mask, which is bad.  Reading the reg senses the current line
states, which aren't necessarily the states we're trying to drive the
lines to.

Fixed to store SCL driver state just as we already do for SDA.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
diff --git a/drivers/gpu/drm/nouveau/nouveau_i2c.h b/drivers/gpu/drm/nouveau/nouveau_i2c.h
index cf5f67d..1d08389 100644
--- a/drivers/gpu/drm/nouveau/nouveau_i2c.h
+++ b/drivers/gpu/drm/nouveau/nouveau_i2c.h
@@ -39,9 +39,9 @@
 	u8  index;
 	u8  type;
 	u32 dcb;
-	unsigned rd;
-	unsigned wr;
-	unsigned data;
+	u32 drive;
+	u32 sense;
+	u32 state;
 };
 
 int  nouveau_i2c_init(struct drm_device *);