Re: [PATCH 1/3] drm/arcpgu: Make ARC PGU usable on simulation platforms

2016-06-06 Thread Daniel Vetter
On Mon, Jun 06, 2016 at 01:56:23PM +0300, Alexey Brodkin wrote:
> From: Ruud Derwig 
> 
> Initially ARC PGU required real encoder/trnasmitter to exist.
> That was fine for real HW such as ARC SDP boards.
> 
> But on some simulaiton platroms like ARC VDK or nSIM OSCI we have model
> of the same ARC PGU and ability to output video data in a virtual LCD.
> 
> To make ARC PGU driver usable in those virtual platforms we need to istantiate
> virtual encoder instead of a real one because in the model's virtual LCD
> we're rendering whatever appears in frame-buffer memory.
> 
> Signed-off-by: Ruud Derwig 
> Signed-off-by: Alexey Brodkin 
> ---
>  drivers/gpu/drm/arc/Makefile |   2 +-
>  drivers/gpu/drm/arc/arcpgu.h |   1 +
>  drivers/gpu/drm/arc/arcpgu_drv.c |  15 ++--
>  drivers/gpu/drm/arc/arcpgu_sim.c | 177 
> +++
>  4 files changed, 187 insertions(+), 8 deletions(-)
>  create mode 100644 drivers/gpu/drm/arc/arcpgu_sim.c
> 
> diff --git a/drivers/gpu/drm/arc/Makefile b/drivers/gpu/drm/arc/Makefile
> index d48fda7..73de56a 100644
> --- a/drivers/gpu/drm/arc/Makefile
> +++ b/drivers/gpu/drm/arc/Makefile
> @@ -1,2 +1,2 @@
> -arcpgu-y := arcpgu_crtc.o arcpgu_hdmi.o arcpgu_drv.o
> +arcpgu-y := arcpgu_crtc.o arcpgu_hdmi.o arcpgu_sim.o arcpgu_drv.o
>  obj-$(CONFIG_DRM_ARCPGU) += arcpgu.o
> diff --git a/drivers/gpu/drm/arc/arcpgu.h b/drivers/gpu/drm/arc/arcpgu.h
> index 86574b6..329ac75 100644
> --- a/drivers/gpu/drm/arc/arcpgu.h
> +++ b/drivers/gpu/drm/arc/arcpgu.h
> @@ -43,6 +43,7 @@ static inline u32 arc_pgu_read(struct arcpgu_drm_private 
> *arcpgu,
>  
>  int arc_pgu_setup_crtc(struct drm_device *dev);
>  int arcpgu_drm_hdmi_init(struct drm_device *drm, struct device_node *np);
> +int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np);
>  struct drm_fbdev_cma *arcpgu_fbdev_cma_init(struct drm_device *dev,
>   unsigned int preferred_bpp, unsigned int num_crtc,
>   unsigned int max_conn_count);
> diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c 
> b/drivers/gpu/drm/arc/arcpgu_drv.c
> index 69b5be0..5f1f303 100644
> --- a/drivers/gpu/drm/arc/arcpgu_drv.c
> +++ b/drivers/gpu/drm/arc/arcpgu_drv.c
> @@ -149,15 +149,16 @@ static int arcpgu_load(struct drm_device *drm)
>  
>   /* find the encoder node and initialize it */
>   encoder_node = of_parse_phandle(drm->dev->of_node, "encoder-slave", 0);
> - if (!encoder_node) {
> - dev_err(drm->dev, "failed to get an encoder slave node\n");
> - return -ENODEV;
> + if (encoder_node) {
> + ret = arcpgu_drm_hdmi_init(drm, encoder_node);
> + if (ret < 0)
> + return ret;
> + } else {
> + ret = arcpgu_drm_sim_init(drm, 0);
> + if (ret < 0)
> + return ret;
>   }
>  
> - ret = arcpgu_drm_hdmi_init(drm, encoder_node);
> - if (ret < 0)
> - return ret;
> -
>   drm_mode_config_reset(drm);
>   drm_kms_helper_poll_init(drm);
>  
> diff --git a/drivers/gpu/drm/arc/arcpgu_sim.c 
> b/drivers/gpu/drm/arc/arcpgu_sim.c
> new file mode 100644
> index 000..122e069
> --- /dev/null
> +++ b/drivers/gpu/drm/arc/arcpgu_sim.c
> @@ -0,0 +1,177 @@
> +/*
> + * ARC PGU DRM driver.
> + *
> + * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com)
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 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.
> + *
> + */
> +
> +#include 
> +#include 
> +#include 
> +
> +#include "arcpgu.h"
> +
> +#define XRES_DEF 640
> +#define YRES_DEF 480
> +
> +#define XRES_MAX 8192
> +#define YRES_MAX 8192
> +
> +
> +struct arcpgu_drm_connector {
> + struct drm_connector connector;
> + struct drm_encoder_slave *encoder_slave;
> +};
> +
> +static int arcpgu_drm_connector_get_modes(struct drm_connector *connector)
> +{
> + int count;
> +
> + count = drm_add_modes_noedid(connector, XRES_MAX, YRES_MAX);
> + drm_set_preferred_mode(connector, XRES_DEF, YRES_DEF);
> + return count;
> +}
> +
> +static struct drm_encoder *
> +arcpgu_drm_connector_best_encoder(struct drm_connector *connector)
> +{
> + struct drm_encoder_slave *slave;
> + struct arcpgu_drm_connector *con =
> + container_of(connector, struct arcpgu_drm_connector, connector);
> +
> + slave = con->encoder_slave;
> + if (slave == NULL) {
> + dev_err(connector->dev->dev,
> + "connector_best_encoder: cannot find slave encoder for 
> connector\n");
> + return NULL;
> + }

[PATCH 1/3] drm/arcpgu: Make ARC PGU usable on simulation platforms

2016-06-06 Thread Alexey Brodkin
From: Ruud Derwig 

Initially ARC PGU required real encoder/trnasmitter to exist.
That was fine for real HW such as ARC SDP boards.

But on some simulaiton platroms like ARC VDK or nSIM OSCI we have model
of the same ARC PGU and ability to output video data in a virtual LCD.

To make ARC PGU driver usable in those virtual platforms we need to istantiate
virtual encoder instead of a real one because in the model's virtual LCD
we're rendering whatever appears in frame-buffer memory.

Signed-off-by: Ruud Derwig 
Signed-off-by: Alexey Brodkin 
---
 drivers/gpu/drm/arc/Makefile |   2 +-
 drivers/gpu/drm/arc/arcpgu.h |   1 +
 drivers/gpu/drm/arc/arcpgu_drv.c |  15 ++--
 drivers/gpu/drm/arc/arcpgu_sim.c | 177 +++
 4 files changed, 187 insertions(+), 8 deletions(-)
 create mode 100644 drivers/gpu/drm/arc/arcpgu_sim.c

diff --git a/drivers/gpu/drm/arc/Makefile b/drivers/gpu/drm/arc/Makefile
index d48fda7..73de56a 100644
--- a/drivers/gpu/drm/arc/Makefile
+++ b/drivers/gpu/drm/arc/Makefile
@@ -1,2 +1,2 @@
-arcpgu-y := arcpgu_crtc.o arcpgu_hdmi.o arcpgu_drv.o
+arcpgu-y := arcpgu_crtc.o arcpgu_hdmi.o arcpgu_sim.o arcpgu_drv.o
 obj-$(CONFIG_DRM_ARCPGU) += arcpgu.o
diff --git a/drivers/gpu/drm/arc/arcpgu.h b/drivers/gpu/drm/arc/arcpgu.h
index 86574b6..329ac75 100644
--- a/drivers/gpu/drm/arc/arcpgu.h
+++ b/drivers/gpu/drm/arc/arcpgu.h
@@ -43,6 +43,7 @@ static inline u32 arc_pgu_read(struct arcpgu_drm_private 
*arcpgu,
 
 int arc_pgu_setup_crtc(struct drm_device *dev);
 int arcpgu_drm_hdmi_init(struct drm_device *drm, struct device_node *np);
+int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np);
 struct drm_fbdev_cma *arcpgu_fbdev_cma_init(struct drm_device *dev,
unsigned int preferred_bpp, unsigned int num_crtc,
unsigned int max_conn_count);
diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
index 69b5be0..5f1f303 100644
--- a/drivers/gpu/drm/arc/arcpgu_drv.c
+++ b/drivers/gpu/drm/arc/arcpgu_drv.c
@@ -149,15 +149,16 @@ static int arcpgu_load(struct drm_device *drm)
 
/* find the encoder node and initialize it */
encoder_node = of_parse_phandle(drm->dev->of_node, "encoder-slave", 0);
-   if (!encoder_node) {
-   dev_err(drm->dev, "failed to get an encoder slave node\n");
-   return -ENODEV;
+   if (encoder_node) {
+   ret = arcpgu_drm_hdmi_init(drm, encoder_node);
+   if (ret < 0)
+   return ret;
+   } else {
+   ret = arcpgu_drm_sim_init(drm, 0);
+   if (ret < 0)
+   return ret;
}
 
-   ret = arcpgu_drm_hdmi_init(drm, encoder_node);
-   if (ret < 0)
-   return ret;
-
drm_mode_config_reset(drm);
drm_kms_helper_poll_init(drm);
 
diff --git a/drivers/gpu/drm/arc/arcpgu_sim.c b/drivers/gpu/drm/arc/arcpgu_sim.c
new file mode 100644
index 000..122e069
--- /dev/null
+++ b/drivers/gpu/drm/arc/arcpgu_sim.c
@@ -0,0 +1,177 @@
+/*
+ * ARC PGU DRM driver.
+ *
+ * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 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.
+ *
+ */
+
+#include 
+#include 
+#include 
+
+#include "arcpgu.h"
+
+#define XRES_DEF   640
+#define YRES_DEF   480
+
+#define XRES_MAX   8192
+#define YRES_MAX   8192
+
+
+struct arcpgu_drm_connector {
+   struct drm_connector connector;
+   struct drm_encoder_slave *encoder_slave;
+};
+
+static int arcpgu_drm_connector_get_modes(struct drm_connector *connector)
+{
+   int count;
+
+   count = drm_add_modes_noedid(connector, XRES_MAX, YRES_MAX);
+   drm_set_preferred_mode(connector, XRES_DEF, YRES_DEF);
+   return count;
+}
+
+static struct drm_encoder *
+arcpgu_drm_connector_best_encoder(struct drm_connector *connector)
+{
+   struct drm_encoder_slave *slave;
+   struct arcpgu_drm_connector *con =
+   container_of(connector, struct arcpgu_drm_connector, connector);
+
+   slave = con->encoder_slave;
+   if (slave == NULL) {
+   dev_err(connector->dev->dev,
+   "connector_best_encoder: cannot find slave encoder for 
connector\n");
+   return NULL;
+   }
+
+   return >base;
+}
+
+static enum drm_connector_status
+arcpgu_drm_connector_detect(struct drm_connector *connector, bool force)
+{
+   return connector_status_connected;
+}
+
+static void arcpgu_drm_connector_destroy(struct drm_connector 

[PATCH 0/3] Make ARC PGU usable on sim platforms

2016-06-06 Thread Alexey Brodkin
Initially ARC PGU required real encoder/trnasmitter to exist.
That was fine for real HW such as ARC SDP boards.

But on some simulaiton platroms like ARC VDK or nSIM OSCI we have model
of the same ARC PGU and ability to output video data in a virtual LCD.

To make ARC PGU driver usable in those virtual platforms we need to istantiate
virtual encoder instead of a real one. And that all is done in the first patch
of the series.

Subsequent patches just update configs of both VDK and nSIM OSCI boards
with enabling ARC PGU driver and adding required fixups in their DT
descriptions.

Alexey Brodkin (2):
  ARCv2: [vdk] Enable ARC PGU on HS38 VDK
  ARC: [nsimosci] Enable ARC PGU on nSIM OSCI virtual platforms

Ruud Derwig (1):
  drm/arcpgu: Make ARC PGU usable on simulation platforms

 arch/arc/boot/dts/nsimosci.dts |  14 ++-
 arch/arc/boot/dts/nsimosci_hs.dts  |  14 ++-
 arch/arc/boot/dts/nsimosci_hs_idu.dts  |  14 ++-
 arch/arc/boot/dts/vdk_axs10x_mb.dtsi   |  13 ++-
 arch/arc/boot/dts/vdk_hs38_smp.dts |   2 +-
 arch/arc/configs/nsimosci_defconfig|   3 +-
 arch/arc/configs/nsimosci_hs_defconfig |   3 +-
 arch/arc/configs/nsimosci_hs_smp_defconfig |   3 +-
 arch/arc/configs/vdk_hs38_smp_defconfig|   7 +-
 drivers/gpu/drm/arc/Makefile   |   2 +-
 drivers/gpu/drm/arc/arcpgu.h   |   1 +
 drivers/gpu/drm/arc/arcpgu_drv.c   |  15 +--
 drivers/gpu/drm/arc/arcpgu_sim.c   | 177 +
 13 files changed, 238 insertions(+), 30 deletions(-)
 create mode 100644 drivers/gpu/drm/arc/arcpgu_sim.c

-- 
2.5.5


___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


[PATCH 2/3] ARCv2: [vdk] Enable ARC PGU on HS38 VDK

2016-06-06 Thread Alexey Brodkin
With required ARC PGU updates that allow it to be used on simulation
platforms we may finally utilize ARC PGU in HS38 VDK with modern
Linux kernels.

Signed-off-by: Alexey Brodkin 
---
 arch/arc/boot/dts/vdk_axs10x_mb.dtsi| 13 +
 arch/arc/boot/dts/vdk_hs38_smp.dts  |  2 +-
 arch/arc/configs/vdk_hs38_smp_defconfig |  7 ++-
 3 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/arch/arc/boot/dts/vdk_axs10x_mb.dtsi 
b/arch/arc/boot/dts/vdk_axs10x_mb.dtsi
index 45cd665..99498a4 100644
--- a/arch/arc/boot/dts/vdk_axs10x_mb.dtsi
+++ b/arch/arc/boot/dts/vdk_axs10x_mb.dtsi
@@ -23,6 +23,11 @@
#clock-cells = <0>;
};
 
+   pguclk: pguclk {
+   #clock-cells = <0>;
+   compatible = "fixed-clock";
+   clock-frequency = <25175000>;
+   };
};
 
ethernet@0x18000 {
@@ -75,11 +80,11 @@
};
 
 /* PGU output directly sent to virtual LCD screen; hdmi controller not 
modelled */
-   pgu@0x17000 {
-   compatible = "snps,arcpgufb";
+   pgu@17000 {
+   compatible = "snps,arcpgu";
reg = <0x17000 0x400>;
-   clock-frequency = <5100>; /* PGU'clock is initated 
in init function */
-   /* interrupts = <5>;   PGU interrupts not used, this 
vector is used for ps2 below */
+   clocks = <>;
+   clock-names = "pxlclk";
};
 
 /* VDK has additional ps2 keyboard/mouse interface integrated in LCD screen 
model */
diff --git a/arch/arc/boot/dts/vdk_hs38_smp.dts 
b/arch/arc/boot/dts/vdk_hs38_smp.dts
index 031a5bc..2ba60c39 100644
--- a/arch/arc/boot/dts/vdk_hs38_smp.dts
+++ b/arch/arc/boot/dts/vdk_hs38_smp.dts
@@ -16,6 +16,6 @@
compatible = "snps,axs103";
 
chosen {
-   bootargs = "earlycon=uart8250,mmio32,0xe0022000,115200n8 
console=tty0 console=ttyS3,115200n8 consoleblank=0";
+   bootargs = "earlycon=uart8250,mmio32,0xe0022000,115200n8 
console=tty0 console=ttyS3,115200n8 consoleblank=0 video=640x480-24";
};
 };
diff --git a/arch/arc/configs/vdk_hs38_smp_defconfig 
b/arch/arc/configs/vdk_hs38_smp_defconfig
index 52ec315..969b206 100644
--- a/arch/arc/configs/vdk_hs38_smp_defconfig
+++ b/arch/arc/configs/vdk_hs38_smp_defconfig
@@ -63,12 +63,9 @@ CONFIG_SERIAL_8250_DW=y
 CONFIG_SERIAL_OF_PLATFORM=y
 # CONFIG_HW_RANDOM is not set
 # CONFIG_HWMON is not set
-CONFIG_FB=y
-CONFIG_ARCPGU_RGB888=y
-CONFIG_ARCPGU_DISPTYPE=0
-# CONFIG_VGA_CONSOLE is not set
+CONFIG_DRM=y
+CONFIG_DRM_ARCPGU=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 CONFIG_LOGO=y
 # CONFIG_LOGO_LINUX_MONO is not set
 # CONFIG_LOGO_LINUX_VGA16 is not set
-- 
2.5.5


___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


[PATCH 3/3] ARC: [nsimosci] Enable ARC PGU on nSIM OSCI virtual platforms

2016-06-06 Thread Alexey Brodkin
With required ARC PGU updates that allow it to be used on simulation
platforms we may finally utilize ARC PGU in nSIM OSCI virtual platforms
with modern Linux kernels.

Signed-off-by: Alexey Brodkin 
---
 arch/arc/boot/dts/nsimosci.dts | 14 +++---
 arch/arc/boot/dts/nsimosci_hs.dts  | 14 +++---
 arch/arc/boot/dts/nsimosci_hs_idu.dts  | 14 +++---
 arch/arc/configs/nsimosci_defconfig|  3 ++-
 arch/arc/configs/nsimosci_hs_defconfig |  3 ++-
 arch/arc/configs/nsimosci_hs_smp_defconfig |  3 ++-
 6 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/arch/arc/boot/dts/nsimosci.dts b/arch/arc/boot/dts/nsimosci.dts
index 763d66c..e659a34 100644
--- a/arch/arc/boot/dts/nsimosci.dts
+++ b/arch/arc/boot/dts/nsimosci.dts
@@ -19,7 +19,7 @@
/* this is for console on PGU */
/* bootargs = "console=tty0 consoleblank=0"; */
/* this is for console on serial */
-   bootargs = "earlycon=uart8250,mmio32,0xf000,115200n8 
console=tty0 console=ttyS0,115200n8 consoleblank=0 debug";
+   bootargs = "earlycon=uart8250,mmio32,0xf000,115200n8 
console=tty0 console=ttyS0,115200n8 consoleblank=0 debug video=640x480-24";
};
 
aliases {
@@ -57,9 +57,17 @@
no-loopback-test = <1>;
};
 
-   pgu0: pgu@f900 {
-   compatible = "snps,arcpgufb";
+   pguclk: pguclk {
+   #clock-cells = <0>;
+   compatible = "fixed-clock";
+   clock-frequency = <25175000>;
+   };
+
+   pgu@f900 {
+   compatible = "snps,arcpgu";
reg = <0xf900 0x400>;
+   clocks = <>;
+   clock-names = "pxlclk";
};
 
ps2: ps2@f9001000 {
diff --git a/arch/arc/boot/dts/nsimosci_hs.dts 
b/arch/arc/boot/dts/nsimosci_hs.dts
index 4eb97c5..16ce5d6 100644
--- a/arch/arc/boot/dts/nsimosci_hs.dts
+++ b/arch/arc/boot/dts/nsimosci_hs.dts
@@ -19,7 +19,7 @@
/* this is for console on PGU */
/* bootargs = "console=tty0 consoleblank=0"; */
/* this is for console on serial */
-   bootargs = "earlycon=uart8250,mmio32,0xf000,115200n8 
console=tty0 console=ttyS0,115200n8 consoleblank=0 debug";
+   bootargs = "earlycon=uart8250,mmio32,0xf000,115200n8 
console=tty0 console=ttyS0,115200n8 consoleblank=0 debug video=640x480-24";
};
 
aliases {
@@ -57,9 +57,17 @@
no-loopback-test = <1>;
};
 
-   pgu0: pgu@f900 {
-   compatible = "snps,arcpgufb";
+   pguclk: pguclk {
+   #clock-cells = <0>;
+   compatible = "fixed-clock";
+   clock-frequency = <25175000>;
+   };
+
+   pgu@f900 {
+   compatible = "snps,arcpgu";
reg = <0xf900 0x400>;
+   clocks = <>;
+   clock-names = "pxlclk";
};
 
ps2: ps2@f9001000 {
diff --git a/arch/arc/boot/dts/nsimosci_hs_idu.dts 
b/arch/arc/boot/dts/nsimosci_hs_idu.dts
index 853f897..ce8dfbc 100644
--- a/arch/arc/boot/dts/nsimosci_hs_idu.dts
+++ b/arch/arc/boot/dts/nsimosci_hs_idu.dts
@@ -17,7 +17,7 @@
 
chosen {
/* this is for console on serial */
-   bootargs = "earlycon=uart8250,mmio32,0xf000,115200n8 
console=tty0 console=ttyS0,115200n8 consoleblan=0 debug";
+   bootargs = "earlycon=uart8250,mmio32,0xf000,115200n8 
console=tty0 console=ttyS0,115200n8 consoleblan=0 debug video=640x480-24";
};
 
aliases {
@@ -76,9 +76,17 @@
no-loopback-test = <1>;
};
 
-   pgu0: pgu@f900 {
-   compatible = "snps,arcpgufb";
+   pguclk: pguclk {
+   #clock-cells = <0>;
+   compatible = "fixed-clock";
+   clock-frequency = <25175000>;
+   };
+
+   pgu@f900 {
+   compatible = "snps,arcpgu";
reg = <0xf900 0x400>;
+   clocks = <>;
+   clock-names = "pxlclk";
};
 
ps2: ps2@f9001000 {
diff --git a/arch/arc/configs/nsimosci_defconfig 
b/arch/arc/configs/nsimosci_defconfig
index 42bafa5..98cf209 100644
--- a/arch/arc/configs/nsimosci_defconfig
+++ b/arch/arc/configs/nsimosci_defconfig
@@ -58,7 +58,8 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=1
 CONFIG_SERIAL_OF_PLATFORM=y
 # CONFIG_HW_RANDOM is not set
 # CONFIG_HWMON is not set
-CONFIG_FB=y
+CONFIG_DRM=y
+CONFIG_DRM_ARCPGU=y
 

Re: [RFC v3 44/45] dma-mapping: Remove dma_get_attr

2016-06-06 Thread Hans-Christian Noren Egtvedt
Around Thu 02 Jun 2016 17:39:46 +0200 or thereabout, Krzysztof Kozlowski wrote:
> After switching DMA attributes to unsigned long it is easier to just
> compare the bits.
> 
> Signed-off-by: Krzysztof Kozlowski 
> ---
>  Documentation/DMA-API.txt  |  4 +--
>  arch/arc/mm/dma.c  |  4 +--
>  arch/arm/mm/dma-mapping.c  | 36 
> --
>  arch/arm/xen/mm.c  |  4 +--
>  arch/arm64/mm/dma-mapping.c| 10 +++
>  arch/avr32/mm/dma-coherent.c   |  4 +--

For the AVR32 related change

Acked-by: Hans-Christian Noren Egtvedt 

>  arch/ia64/sn/pci/pci_dma.c | 10 ++-
>  arch/metag/kernel/dma.c|  2 +-
>  arch/mips/mm/dma-default.c |  6 ++---
>  arch/openrisc/kernel/dma.c |  4 +--
>  arch/parisc/kernel/pci-dma.c   |  2 +-
>  arch/powerpc/platforms/cell/iommu.c| 10 +++
>  drivers/gpu/drm/rockchip/rockchip_drm_gem.c|  2 +-
>  drivers/iommu/dma-iommu.c  |  2 +-
>  drivers/media/v4l2-core/videobuf2-dma-contig.c |  2 +-
>  include/linux/dma-mapping.h| 13 --
>  16 files changed, 46 insertions(+), 69 deletions(-)



> diff --git a/arch/avr32/mm/dma-coherent.c b/arch/avr32/mm/dma-coherent.c
> index fc51f4421933..58610d0df7ed 100644
> --- a/arch/avr32/mm/dma-coherent.c
> +++ b/arch/avr32/mm/dma-coherent.c
> @@ -109,7 +109,7 @@ static void *avr32_dma_alloc(struct device *dev, size_t 
> size,
>   return NULL;
>   phys = page_to_phys(page);
>  
> - if (dma_get_attr(DMA_ATTR_WRITE_COMBINE, attrs)) {
> + if (attrs & DMA_ATTR_WRITE_COMBINE) {
>   /* Now, map the page into P3 with write-combining turned on */
>   *handle = phys;
>   return __ioremap(phys, size, _PAGE_BUFFER);
> @@ -123,7 +123,7 @@ static void avr32_dma_free(struct device *dev, size_t 
> size,
>  {
>   struct page *page;
>  
> - if (dma_get_attr(DMA_ATTR_WRITE_COMBINE, attrs)) {
> + if (attrs & DMA_ATTR_WRITE_COMBINE) {
>   iounmap(cpu_addr);
>  
>   page = phys_to_page(handle);



-- 
mvh
Hans-Christian Noren Egtvedt

___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc


Re: [RFC v3 07/45] avr32: dma-mapping: Use unsigned long for dma_attrs

2016-06-06 Thread Hans-Christian Noren Egtvedt
Around Thu 02 Jun 2016 17:39:09 +0200 or thereabout, Krzysztof Kozlowski wrote:
> Split out subsystem specific changes for easier reviews. This will be
> squashed with main commit.
> 
> Signed-off-by: Krzysztof Kozlowski 

Acked-by: Hans-Christian Noren Egtvedt 

> ---
>  arch/avr32/mm/dma-coherent.c | 8 
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/avr32/mm/dma-coherent.c b/arch/avr32/mm/dma-coherent.c
> index 92cf1fb2b3e6..fc51f4421933 100644
> --- a/arch/avr32/mm/dma-coherent.c
> +++ b/arch/avr32/mm/dma-coherent.c
> @@ -99,7 +99,7 @@ static void __dma_free(struct device *dev, size_t size,
>  }
>  
>  static void *avr32_dma_alloc(struct device *dev, size_t size,
> - dma_addr_t *handle, gfp_t gfp, struct dma_attrs *attrs)
> + dma_addr_t *handle, gfp_t gfp, unsigned long attrs)
>  {
>   struct page *page;
>   dma_addr_t phys;
> @@ -119,7 +119,7 @@ static void *avr32_dma_alloc(struct device *dev, size_t 
> size,
>  }
>  
>  static void avr32_dma_free(struct device *dev, size_t size,
> - void *cpu_addr, dma_addr_t handle, struct dma_attrs *attrs)
> + void *cpu_addr, dma_addr_t handle, unsigned long attrs)
>  {
>   struct page *page;
>  
> @@ -142,7 +142,7 @@ static void avr32_dma_free(struct device *dev, size_t 
> size,
>  
>  static dma_addr_t avr32_dma_map_page(struct device *dev, struct page *page,
>   unsigned long offset, size_t size,
> - enum dma_data_direction direction, struct dma_attrs *attrs)
> + enum dma_data_direction direction, unsigned long attrs)
>  {
>   void *cpu_addr = page_address(page) + offset;
>  
> @@ -152,7 +152,7 @@ static dma_addr_t avr32_dma_map_page(struct device *dev, 
> struct page *page,
>  
>  static int avr32_dma_map_sg(struct device *dev, struct scatterlist *sglist,
>   int nents, enum dma_data_direction direction,
> - struct dma_attrs *attrs)
> + unsigned long attrs)
>  {
>   int i;
>   struct scatterlist *sg;
-- 
mvh
Hans-Christian Noren Egtvedt

___
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc