All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Scheller <d.scheller.oss@gmail.com>
To: linux-media@vger.kernel.org, mchehab@kernel.org,
	mchehab@s-opensource.com
Cc: jasmin@anw.at, d_spingler@gmx.de, rjkm@metzlerbros.de
Subject: [PATCH 04/14] [media] ddbridge: split I/O related functions off from ddbridge.h
Date: Sun,  9 Jul 2017 21:42:11 +0200	[thread overview]
Message-ID: <20170709194221.10255-5-d.scheller.oss@gmail.com> (raw)
In-Reply-To: <20170709194221.10255-1-d.scheller.oss@gmail.com>

From: Daniel Scheller <d.scheller@gmx.net>

While it seems valid that headers can carry simple oneline static inline
annotated functions, move them into their own header file to have the
overall code more readable. Also, keep them as header (and don't put in
a separate object) and static inline to help the compiler avoid
generating function calls.

(Thanks to Jasmin J. <jasmin@anw.at> for valuable input on this!)

Cc: Jasmin J. <jasmin@anw.at>
Signed-off-by: Daniel Scheller <d.scheller@gmx.net>

ddbridge: put io stuff into a header and use static inline
---
 drivers/media/pci/ddbridge/ddbridge-core.c |  1 +
 drivers/media/pci/ddbridge/ddbridge-i2c.c  |  1 +
 drivers/media/pci/ddbridge/ddbridge-io.h   | 71 ++++++++++++++++++++++++++++++
 drivers/media/pci/ddbridge/ddbridge-main.c |  1 +
 drivers/media/pci/ddbridge/ddbridge.h      | 43 ------------------
 5 files changed, 74 insertions(+), 43 deletions(-)
 create mode 100644 drivers/media/pci/ddbridge/ddbridge-io.h

diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c b/drivers/media/pci/ddbridge/ddbridge-core.c
index 37c6eadba02b..f3bd371634f1 100644
--- a/drivers/media/pci/ddbridge/ddbridge-core.c
+++ b/drivers/media/pci/ddbridge/ddbridge-core.c
@@ -36,6 +36,7 @@
 
 #include "ddbridge.h"
 #include "ddbridge-regs.h"
+#include "ddbridge-io.h"
 
 #include "tda18271c2dd.h"
 #include "stv6110x.h"
diff --git a/drivers/media/pci/ddbridge/ddbridge-i2c.c b/drivers/media/pci/ddbridge/ddbridge-i2c.c
index e83c7af77087..22b2543da4ca 100644
--- a/drivers/media/pci/ddbridge/ddbridge-i2c.c
+++ b/drivers/media/pci/ddbridge/ddbridge-i2c.c
@@ -32,6 +32,7 @@
 
 #include "ddbridge.h"
 #include "ddbridge-regs.h"
+#include "ddbridge-io.h"
 
 /******************************************************************************/
 
diff --git a/drivers/media/pci/ddbridge/ddbridge-io.h b/drivers/media/pci/ddbridge/ddbridge-io.h
new file mode 100644
index 000000000000..ce92e9484075
--- /dev/null
+++ b/drivers/media/pci/ddbridge/ddbridge-io.h
@@ -0,0 +1,71 @@
+/*
+ * ddbridge-io.h: Digital Devices bridge I/O inline functions
+ *
+ * Copyright (C) 2010-2017 Digital Devices GmbH
+ *                         Ralph Metzler <rjkm@metzlerbros.de>
+ *                         Marcus Metzler <mocm@metzlerbros.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 only, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef __DDBRIDGE_IO_H__
+#define __DDBRIDGE_IO_H__
+
+#include <linux/io.h>
+
+#include "ddbridge.h"
+
+/******************************************************************************/
+
+static inline u32 ddblreadl(struct ddb_link *link, u32 adr)
+{
+	return readl((char *) (link->dev->regs + (adr)));
+}
+
+static inline void ddblwritel(struct ddb_link *link, u32 val, u32 adr)
+{
+	writel(val, (char *) (link->dev->regs + (adr)));
+}
+
+static inline u32 ddbreadl(struct ddb *dev, u32 adr)
+{
+	return readl((char *) (dev->regs + (adr)));
+}
+
+static inline void ddbwritel(struct ddb *dev, u32 val, u32 adr)
+{
+	writel(val, (char *) (dev->regs + (adr)));
+}
+
+static inline void ddbcpyto(struct ddb *dev, u32 adr, void *src, long count)
+{
+	return memcpy_toio((char *) (dev->regs + adr), src, count);
+}
+
+static inline void ddbcpyfrom(struct ddb *dev, void *dst, u32 adr, long count)
+{
+	return memcpy_fromio(dst, (char *) (dev->regs + adr), count);
+}
+
+static inline u32 safe_ddbreadl(struct ddb *dev, u32 adr)
+{
+	u32 val = ddbreadl(dev, adr);
+
+	/* (ddb)readl returns (uint)-1 (all bits set) on failure, catch that */
+	if (val == ~0) {
+		dev_err(&dev->pdev->dev, "ddbreadl failure, adr=%08x\n", adr);
+		return 0;
+	}
+
+	return val;
+}
+
+#endif /* __DDBRIDGE_IO_H__ */
diff --git a/drivers/media/pci/ddbridge/ddbridge-main.c b/drivers/media/pci/ddbridge/ddbridge-main.c
index 8262979b6257..de9da6077ec6 100644
--- a/drivers/media/pci/ddbridge/ddbridge-main.c
+++ b/drivers/media/pci/ddbridge/ddbridge-main.c
@@ -34,6 +34,7 @@
 
 #include "ddbridge.h"
 #include "ddbridge-regs.h"
+#include "ddbridge-io.h"
 
 /****************************************************************************/
 /* module parameters */
diff --git a/drivers/media/pci/ddbridge/ddbridge.h b/drivers/media/pci/ddbridge/ddbridge.h
index 7fe5820a78ff..fa471481a572 100644
--- a/drivers/media/pci/ddbridge/ddbridge.h
+++ b/drivers/media/pci/ddbridge/ddbridge.h
@@ -353,49 +353,6 @@ struct ddb {
 	u8                     tsbuf[TS_CAPTURE_LEN];
 };
 
-static inline u32 ddblreadl(struct ddb_link *link, u32 adr)
-{
-	return readl((char *) (link->dev->regs + (adr)));
-}
-
-static inline void ddblwritel(struct ddb_link *link, u32 val, u32 adr)
-{
-	writel(val, (char *) (link->dev->regs + (adr)));
-}
-
-static inline u32 ddbreadl(struct ddb *dev, u32 adr)
-{
-	return readl((char *) (dev->regs + (adr)));
-}
-
-static inline void ddbwritel(struct ddb *dev, u32 val, u32 adr)
-{
-	writel(val, (char *) (dev->regs + (adr)));
-}
-
-static inline void ddbcpyto(struct ddb *dev, u32 adr, void *src, long count)
-{
-	return memcpy_toio((char *) (dev->regs + adr), src, count);
-}
-
-static inline void ddbcpyfrom(struct ddb *dev, void *dst, u32 adr, long count)
-{
-	return memcpy_fromio(dst, (char *) (dev->regs + adr), count);
-}
-
-static inline u32 safe_ddbreadl(struct ddb *dev, u32 adr)
-{
-	u32 val = ddbreadl(dev, adr);
-
-	/* (ddb)readl returns (uint)-1 (all bits set) on failure, catch that */
-	if (val == ~0) {
-		dev_err(&dev->pdev->dev, "ddbreadl failure, adr=%08x\n", adr);
-		return 0;
-	}
-
-	return val;
-}
-
 /****************************************************************************/
 /****************************************************************************/
 /****************************************************************************/
-- 
2.13.0

  parent reply	other threads:[~2017-07-09 19:42 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-09 19:42 [PATCH 00/14] ddbridge: bump to ddbridge-0.9.29 Daniel Scheller
2017-07-09 19:42 ` [PATCH 01/14] [media] ddbridge: move/reorder functions Daniel Scheller
2017-07-09 19:42 ` [PATCH 02/14] [media] ddbridge: split code into multiple files Daniel Scheller
2017-07-09 19:42 ` [PATCH 03/14] [media] ddbridge: bump ddbridge code to version 0.9.29 Daniel Scheller
2017-07-09 19:42 ` Daniel Scheller [this message]
2017-07-09 19:42 ` [PATCH 05/14] [media] ddbridge: split off IRQ handling Daniel Scheller
2017-07-09 19:42 ` [PATCH 06/14] [media] ddbridge: split off hardware definitions and mappings Daniel Scheller
2017-07-09 19:42 ` [PATCH 07/14] [media] ddbridge: check pointers before dereferencing Daniel Scheller
2017-07-09 19:42 ` [PATCH 08/14] [media] ddbridge: only register frontends in fe2 if fe is not NULL Daniel Scheller
2017-07-09 19:42 ` [PATCH 09/14] [media] ddbridge: fix possible buffer overflow in ddb_ports_init() Daniel Scheller
2017-07-10  8:21   ` Ralph Metzler
2017-07-10 15:32     ` Daniel Scheller
2017-07-09 19:42 ` [PATCH 10/14] [media] ddbridge: remove unreachable code Daniel Scheller
2017-07-10  8:24   ` Ralph Metzler
2017-07-10 15:34     ` Daniel Scheller
2017-07-09 19:42 ` [PATCH 11/14] [media] ddbridge: fix impossible condition warning Daniel Scheller
2017-07-09 19:42 ` [PATCH 12/14] [media] ddbridge: fix dereference before check Daniel Scheller
2017-07-09 19:42 ` [PATCH 13/14] [media] ddbridge: Kconfig option to control the MSI modparam default Daniel Scheller
2017-07-09 19:42 ` [PATCH 14/14] [media] MAINTAINERS: add entry for ddbridge Daniel Scheller
2017-07-10  8:11 ` [PATCH 00/14] ddbridge: bump to ddbridge-0.9.29 Ralph Metzler
2017-07-10 15:31   ` Daniel Scheller
2017-07-11  9:11     ` Ralph Metzler
2017-07-11 15:30       ` Daniel Scheller
2017-07-20 15:24         ` Mauro Carvalho Chehab
2017-07-20 18:25           ` Daniel Scheller
2017-07-20 21:16             ` Jasmin J.
2017-07-15 20:37 ` Richard Scobie
2017-07-23 12:16 ` Daniel Scheller

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=20170709194221.10255-5-d.scheller.oss@gmail.com \
    --to=d.scheller.oss@gmail.com \
    --cc=d_spingler@gmx.de \
    --cc=jasmin@anw.at \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mchehab@s-opensource.com \
    --cc=rjkm@metzlerbros.de \
    /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.