layerscape: add ls1088ardb device support
[openwrt/staging/lynxis/omap.git] / target / linux / layerscape / patches-4.4 / 7176-staging-fsl-mc-add-dpmcp-version-check.patch
1 From 035789ffb3b89b9764d7cc79d209a5795c18fa93 Mon Sep 17 00:00:00 2001
2 From: Itai Katz <itai.katz@nxp.com>
3 Date: Mon, 11 Apr 2016 11:56:11 -0500
4 Subject: [PATCH 176/226] staging: fsl-mc: add dpmcp version check
5
6 The dpmcp driver supports dpmcp version 3.0 and above.
7 This patch adds the code to check the version.
8
9 Signed-off-by: Itai Katz <itai.katz@nxp.com>
10 Signed-off-by: Stuart Yoder <stuart.yoder@nxp.com>
11 Acked-by: German Rivera <german.rivera@nxp.com>
12
13 drivers/staging/fsl-mc/bus/dpmcp-cmd.h | 6 +++---
14 drivers/staging/fsl-mc/bus/mc-allocator.c | 11 +++++++++++
15 2 files changed, 14 insertions(+), 3 deletions(-)
16 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
17 ---
18 drivers/staging/fsl-mc/bus/dpmcp-cmd.h | 6 +++---
19 drivers/staging/fsl-mc/bus/mc-allocator.c | 11 +++++++++++
20 2 files changed, 14 insertions(+), 3 deletions(-)
21
22 --- a/drivers/staging/fsl-mc/bus/dpmcp-cmd.h
23 +++ b/drivers/staging/fsl-mc/bus/dpmcp-cmd.h
24 @@ -32,9 +32,9 @@
25 #ifndef _FSL_DPMCP_CMD_H
26 #define _FSL_DPMCP_CMD_H
27
28 -/* DPMCP Version */
29 -#define DPMCP_VER_MAJOR 3
30 -#define DPMCP_VER_MINOR 0
31 +/* Minimal supported DPMCP Version */
32 +#define DPMCP_MIN_VER_MAJOR 3
33 +#define DPMCP_MIN_VER_MINOR 0
34
35 /* Command IDs */
36 #define DPMCP_CMDID_CLOSE 0x800
37 --- a/drivers/staging/fsl-mc/bus/mc-allocator.c
38 +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c
39 @@ -297,6 +297,17 @@ int __must_check fsl_mc_portal_allocate(
40 if (WARN_ON(!dpmcp_dev))
41 goto error_cleanup_resource;
42
43 + if (dpmcp_dev->obj_desc.ver_major < DPMCP_MIN_VER_MAJOR ||
44 + (dpmcp_dev->obj_desc.ver_major == DPMCP_MIN_VER_MAJOR &&
45 + dpmcp_dev->obj_desc.ver_minor < DPMCP_MIN_VER_MINOR)) {
46 + dev_err(&dpmcp_dev->dev,
47 + "ERROR: Version %d.%d of DPMCP not supported.\n",
48 + dpmcp_dev->obj_desc.ver_major,
49 + dpmcp_dev->obj_desc.ver_minor);
50 + error = -ENOTSUPP;
51 + goto error_cleanup_resource;
52 + }
53 +
54 if (WARN_ON(dpmcp_dev->obj_desc.region_count == 0))
55 goto error_cleanup_resource;
56