All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Grzeschik <m.grzeschik@pengutronix.de>
To: linux-media@vger.kernel.org
Cc: robert.jarzmik@free.fr, g.liakhovetski@gmx.de,
	p.wiesner@phytec.de,
	Michael Grzeschik <m.grzeschik@pengutronix.de>
Subject: [PATCH 14/20] mt9m111: added reg_mask function
Date: Fri, 30 Jul 2010 16:53:32 +0200	[thread overview]
Message-ID: <1280501618-23634-15-git-send-email-m.grzeschik@pengutronix.de> (raw)
In-Reply-To: <1280501618-23634-1-git-send-email-m.grzeschik@pengutronix.de>

reg_mask is basically the same as clearing & setting registers,
but it is more convenient and faster (saves one rw cycle).

Signed-off-by: Philipp Wiesner <p.wiesner@phytec.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
---
 drivers/media/video/mt9m111.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/mt9m111.c b/drivers/media/video/mt9m111.c
index 4dbaf31..161c751 100644
--- a/drivers/media/video/mt9m111.c
+++ b/drivers/media/video/mt9m111.c
@@ -128,6 +128,8 @@
 #define reg_write(reg, val) mt9m111_reg_write(client, MT9M111_##reg, (val))
 #define reg_set(reg, val) mt9m111_reg_set(client, MT9M111_##reg, (val))
 #define reg_clear(reg, val) mt9m111_reg_clear(client, MT9M111_##reg, (val))
+#define reg_mask(reg, val, mask) mt9m111_reg_mask(client, MT9M111_##reg, \
+		(val), (mask))
 
 #define MT9M111_MIN_DARK_ROWS	8
 #define MT9M111_MIN_DARK_COLS	26
@@ -265,6 +267,15 @@ static int mt9m111_reg_clear(struct i2c_client *client, const u16 reg,
 	return mt9m111_reg_write(client, reg, ret & ~data);
 }
 
+static int mt9m111_reg_mask(struct i2c_client *client, const u16 reg,
+			    const u16 data, const u16 mask)
+{
+	int ret;
+
+	ret = mt9m111_reg_read(client, reg);
+	return mt9m111_reg_write(client, reg, (ret & ~mask) | data);
+}
+
 static int mt9m111_set_context(struct i2c_client *client,
 			       enum mt9m111_context ctxt)
 {
-- 
1.7.1


  parent reply	other threads:[~2010-07-30 14:54 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-30 14:53 [PATCH 00/20] MT9M111/MT9M131 Michael Grzeschik
2010-07-30 14:53 ` [PATCH 01/20] mt9m111: Added indication that MT9M131 is supported by this driver Michael Grzeschik
2010-07-31 19:49   ` Guennadi Liakhovetski
2010-07-31 20:10   ` Robert Jarzmik
2010-07-31 20:16     ` Guennadi Liakhovetski
2010-07-31 20:28       ` Robert Jarzmik
2010-07-30 14:53 ` [PATCH 02/20] mt9m111: init chip after read CHIP_VERSION Michael Grzeschik
2010-07-31 20:09   ` Guennadi Liakhovetski
2010-07-31 20:36     ` Robert Jarzmik
2010-07-30 14:53 ` [PATCH 03/20] mt9m111: register cleanup hex to dec bitoffset Michael Grzeschik
2010-07-31 20:40   ` Robert Jarzmik
2010-07-30 14:53 ` [PATCH 04/20] mt9m111: added new bit offset defines Michael Grzeschik
2010-07-31 20:44   ` Robert Jarzmik
2010-07-30 14:53 ` [PATCH 05/20] mt9m111: added default row/col/width/height values Michael Grzeschik
2010-07-31 20:25   ` Guennadi Liakhovetski
2010-07-30 14:53 ` [PATCH 06/20] mt9m111: changed MAX_{HEIGHT,WIDTH} values to silicon pixelcount Michael Grzeschik
2010-07-31 20:51   ` Robert Jarzmik
2010-07-30 14:53 ` [PATCH 07/20] mt9m111: changed MIN_DARK_COLS to MT9M131 spec count Michael Grzeschik
2010-07-30 14:53 ` [PATCH 08/20] mt9m111: cropcap use defined default rect properties in defrect Michael Grzeschik
2010-07-30 14:53 ` [PATCH 09/20] mt9m111: cropcap check if type is CAPTURE Michael Grzeschik
2010-07-30 14:53 ` [PATCH 10/20] mt9m111: rewrite make_rect for positioning in debug Michael Grzeschik
2010-08-01  9:33   ` Guennadi Liakhovetski
2010-07-30 14:53 ` [PATCH 11/20] mt9m111: added mt9m111 format structure Michael Grzeschik
2010-08-01 16:48   ` Guennadi Liakhovetski
2010-07-30 14:53 ` [PATCH 12/20] mt9m111: s_crop add calculation of output size Michael Grzeschik
2010-08-01 19:38   ` Guennadi Liakhovetski
2010-07-30 14:53 ` [PATCH 13/20] mt9m111: s_crop check for VIDEO_CAPTURE type Michael Grzeschik
2010-07-30 14:53 ` Michael Grzeschik [this message]
2010-07-30 14:53 ` [PATCH 15/20] mt9m111: rewrite setup_rect, added soft_crop for smooth panning Michael Grzeschik
2010-07-30 14:53 ` [PATCH 16/20] mt9m111: added more supported BE colour formats Michael Grzeschik
2010-07-30 14:53 ` [PATCH 17/20] mt9m111: rewrite set_pixfmt Michael Grzeschik
2010-07-30 14:53 ` [PATCH 18/20] mt9m111: make use of testpattern in debug mode Michael Grzeschik
2010-07-30 14:53 ` [PATCH 19/20] mt9m111: try_fmt rewrite to use preset values Michael Grzeschik
2010-07-30 14:53 ` [PATCH 20/20] mt9m111: s_fmt make use of try_fmt Michael Grzeschik
2010-07-30 15:38 ` [PATCH 00/20] MT9M111/MT9M131 Guennadi Liakhovetski
2010-07-31 10:33   ` Robert Jarzmik
2010-08-02 10:35   ` Michael Grzeschik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1280501618-23634-15-git-send-email-m.grzeschik@pengutronix.de \
    --to=m.grzeschik@pengutronix.de \
    --cc=g.liakhovetski@gmx.de \
    --cc=linux-media@vger.kernel.org \
    --cc=p.wiesner@phytec.de \
    --cc=robert.jarzmik@free.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.