* [linux-sunxi] [PATCH v4 5/6] arm64: allwinner: a64: add simplefb for A64 SoC
From: Chen-Yu Tsai @ 2018-01-02 8:30 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171230113043.30237-6-icenowy@aosc.io>
On Sat, Dec 30, 2017 at 7:30 PM, Icenowy Zheng <icenowy@aosc.io> wrote:
> The A64 SoC features two display pipelines, one has a LCD output, the
> other has a HDMI output.
>
> Add support for simplefb for these pipelines on A64 SoC.
>
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> ---
> Changes in v4:
> - Dropped extra clocks.
> - Added labels to the SimpleFB device tree nodes as boards may have
> extra regulator for display pipeline.
>
> arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> index fb8ea7c414e1..d803c115d362 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> @@ -42,9 +42,11 @@
> * OTHER DEALINGS IN THE SOFTWARE.
> */
>
> +#include <dt-bindings/clock/sun8i-de2.h>
> #include <dt-bindings/clock/sun50i-a64-ccu.h>
> #include <dt-bindings/clock/sun8i-r-ccu.h>
> #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/reset/sun8i-de2.h>
Nit: This isn't used anywhere. Please add it when DE2 DRM support is added.
ChenYu
^ permalink raw reply
* [linux-sunxi] [PATCH v4 1/6] ARM: sunxi: h3/h5: add simplefb nodes
From: Jernej Škrabec @ 2018-01-02 8:31 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <2823749.lCJ0TQNemj@ice-x220i>
Hi,
Dne torek, 02. januar 2018 ob 09:14:37 CET je Icenowy Zheng napisal(a):
> ? 2018?1?2???? CST ??4:11:04?Chen-Yu Tsai ???
>
> > On Sat, Dec 30, 2017 at 7:30 PM, Icenowy Zheng <icenowy@aosc.io> wrote:
> > > The H3/H5 SoCs have a HDMI output and a TV Composite output.
> > >
> > > Add simplefb nodes for these outputs.
> > >
> > > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> > > ---
> > > Changes in v4:
> > > - Dropped extra clocks (bus clocks and HDMI DDC clocks), only keep the
> > >
> > > clocks that are needed to display framebuffer to the monitor.
> >
> > Looks good. I assume you've tested this? It does continue to work
> > with the bus and DDC clocks disabled, right?
>
> Yes. This patchset is tested in Orange Pi PC and SoPine w/ Baseboard "Model
> A".
I think DDC clock is misnamed and according to DW HDMI binding should be named
ISFR (clock for special function registers). I did few test tests when writing
U-Boot driver and it has to be enabled all the time for driver to work
correctly. I did few additional tests few days back - if only DDC clock is
enabled and PLL video/HDMI clock disabled, DW HDMI registers are accessible.
I guess DDC clock in your case is not needed because controller is already
configured correctly.
Best regards,
Jernej
^ permalink raw reply
* [PATCH] pinctrl: at91: Delete an error message for a failed memory allocation in at91_pinctrl_mux_mask()
From: Linus Walleij @ 2018-01-02 8:44 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <b5da388b-7fa2-ad77-7b64-26eadd55b41c@users.sourceforge.net>
On Sat, Dec 23, 2017 at 8:55 PM, SF Markus Elfring
<elfring@users.sourceforge.net> wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sat, 23 Dec 2017 20:44:27 +0100
>
> Omit an extra message for a memory allocation failure in this function.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH 1/3] pinctrl: rockchip: Delete error messages for a failed memory allocation in two functions
From: Linus Walleij @ 2018-01-02 8:46 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <7a067193-e0c3-c2b9-b85a-e05c8ff8860e@users.sourceforge.net>
On Sat, Dec 23, 2017 at 10:38 PM, SF Markus Elfring
<elfring@users.sourceforge.net> wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sat, 23 Dec 2017 22:02:47 +0100
>
> Omit extra messages for a memory allocation failure in these functions.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH 2/3] pinctrl: rockchip: Improve a size determination in rockchip_pinctrl_probe()
From: Linus Walleij @ 2018-01-02 8:47 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <e0bceb4a-bd46-5032-2ac9-d51aa46440a5@users.sourceforge.net>
On Sat, Dec 23, 2017 at 10:40 PM, SF Markus Elfring
<elfring@users.sourceforge.net> wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sat, 23 Dec 2017 22:07:30 +0100
>
> Replace the specification of a data structure by a pointer dereference
> as the parameter for the operator "sizeof" to make the corresponding size
> determination a bit safer according to the Linux coding style convention.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH 3/3] pinctrl: rockchip: Fix a typo in four comment lines
From: Linus Walleij @ 2018-01-02 8:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <989b7476-5e5e-d1ed-0d95-9dbdcec2382c@users.sourceforge.net>
On Sat, Dec 23, 2017 at 10:42 PM, SF Markus Elfring
<elfring@users.sourceforge.net> wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sat, 23 Dec 2017 22:22:54 +0100
>
> Adjust words in these descriptions.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH 1/2] pinctrl: single: Delete an error message for a failed memory allocation in pcs_probe()
From: Linus Walleij @ 2018-01-02 8:49 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <bc8e7af9-6dcb-6f08-388a-31fc1b88cd00@users.sourceforge.net>
On Mon, Dec 25, 2017 at 2:06 PM, SF Markus Elfring
<elfring@users.sourceforge.net> wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Mon, 25 Dec 2017 11:27:55 +0100
>
> Omit an extra message for a memory allocation failure in this function.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH 2/2] pinctrl: single: Delete an unnecessary return statement in pcs_irq_chain_handler()
From: Linus Walleij @ 2018-01-02 8:50 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <c736d14b-0293-82ac-27de-a673b62b61d7@users.sourceforge.net>
On Mon, Dec 25, 2017 at 2:07 PM, SF Markus Elfring
<elfring@users.sourceforge.net> wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Mon, 25 Dec 2017 11:35:44 +0100
>
> The script "checkpatch.pl" pointed information out like the following.
>
> WARNING: void function return statements are not generally useful
>
> Thus remove such a statement in the affected function.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH] pinctrl: samsung: Add SPDX license identifiers
From: Linus Walleij @ 2018-01-02 8:56 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1514311782-5187-1-git-send-email-krzk@kernel.org>
On Tue, Dec 26, 2017 at 7:09 PM, Krzysztof Kozlowski <krzk@kernel.org> wrote:
> Replace GPL license statements with SPDX GPL-2.0+ license identifiers.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Patch applied.
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH V2 2/7] arm64: mm: Flip kernel VA space
From: Steve Capper @ 2018-01-02 8:57 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171218214736.13761-3-steve.capper@arm.com>
On Mon, Dec 18, 2017 at 09:47:31PM +0000, Steve Capper wrote:
> Put the direct linear map in the lower addresses of the kernel VA range
> and everything else in the higher ranges.
>
> This allows us to make room for an inline KASAN shadow that operates
> under both 48 and 52 bit kernel VA sizes. For example with a 52-bit VA,
> if KASAN_SHADOW_END < 0xFFF8000000000000 (it is in the lower addresses
> of the kernel VA range), this will be below the start of the minimum
> 48-bit kernel VA address of 0xFFFF000000000000.
>
> We need to adjust:
> *) KASAN shadow region placement logic,
> *) KASAN_SHADOW_OFFSET computation logic,
> *) virt_to_phys, phys_to_virt checks,
> *) page table dumper.
>
> These are all small changes, that need to take place atomically, so they
> are bundled into this commit.
I need to tweak this to include changes to the HYP map logic
(specifically change the first AND to an EOR).
Cheers,
--
Steve
^ permalink raw reply
* [PATCH] pinctrl/spear/plgpio: Delete two error messages for a failed memory allocation in plgpio_probe()
From: Linus Walleij @ 2018-01-02 8:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <66c3f488-ffdf-e55d-e511-e4af35e670b4@users.sourceforge.net>
On Wed, Dec 27, 2017 at 10:39 PM, SF Markus Elfring
<elfring@users.sourceforge.net> wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Wed, 27 Dec 2017 22:34:28 +0100
>
> Omit extra messages for a memory allocation failure in this function.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Patch applied with Viresh's ACK.
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH] pinctrl: spear: Delete an error message for a failed memory allocation in spear_pinctrl_probe()
From: Linus Walleij @ 2018-01-02 8:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <3d936763-6a8a-edd3-3bcf-0075c9343e37@users.sourceforge.net>
On Wed, Dec 27, 2017 at 10:48 PM, SF Markus Elfring
<elfring@users.sourceforge.net> wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Wed, 27 Dec 2017 22:44:04 +0100
>
> Omit an extra message for a memory allocation failure in this function.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Patch applied with Viresh's ACK.
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH 1/5] drm/panel: simple: add support for Ampire AM-800480AYTZQW-00H
From: Jagan Teki @ 2018-01-02 9:02 UTC (permalink / raw)
To: linux-arm-kernel
This adds support for the Ampire AM-800480AYTZQW-00H 7.0" WGA LCD,
which can be supported by the simple panel driver.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
.../display/panel/ampire,am-800480aytzqw-00h.txt | 7 ++++++
drivers/gpu/drm/panel/panel-simple.c | 27 ++++++++++++++++++++++
2 files changed, 34 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/panel/ampire,am-800480aytzqw-00h.txt
diff --git a/Documentation/devicetree/bindings/display/panel/ampire,am-800480aytzqw-00h.txt b/Documentation/devicetree/bindings/display/panel/ampire,am-800480aytzqw-00h.txt
new file mode 100644
index 0000000..bfa7a70
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/ampire,am-800480aytzqw-00h.txt
@@ -0,0 +1,7 @@
+Ampire AM-800480AYTZQW-00H 7.0" WVGA TFT LCD panel
+
+Required properties:
+- compatible: should be "ampire,am-800480aytzqw-00h"
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 5591984..2ecc14b 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -412,6 +412,30 @@ static const struct panel_desc ampire_am_480272h3tmqw_t01h = {
.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
};
+static const struct display_timing ampire_am_800480aytzqw_00h_timing = {
+ .pixelclock = { 27700000, 29200000, 39600000 },
+ .hactive = { 800, 800, 800 },
+ .hfront_porch = { 12, 40, 212 },
+ .hback_porch = { 88, 88, 88 },
+ .hsync_len = { 1, 2, 40 },
+ .vactive = { 480, 480, 480 },
+ .vfront_porch = { 1, 13, 88 },
+ .vback_porch = { 32, 32, 32 },
+ .vsync_len = { 1, 2, 3 },
+ .flags = DISPLAY_FLAGS_DE_HIGH,
+};
+
+static const struct panel_desc ampire_am_800480aytzqw_00h = {
+ .timings = &ire_am_800480aytzqw_00h_timing,
+ .num_timings = 1,
+ .bpc = 6,
+ .size = {
+ .width = 154,
+ .height = 86,
+ },
+ .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+};
+
static const struct drm_display_mode ampire_am800480r3tmqwa1h_mode = {
.clock = 33333,
.hdisplay = 800,
@@ -2028,6 +2052,9 @@ static const struct of_device_id platform_of_match[] = {
.compatible = "ampire,am-480272h3tmqw-t01h",
.data = &ire_am_480272h3tmqw_t01h,
}, {
+ .compatible = "ampire,am-800480aytzqw-00h",
+ .data = &ire_am_800480aytzqw_00h,
+ }, {
.compatible = "ampire,am800480r3tmqwa1h",
.data = &ire_am800480r3tmqwa1h,
}, {
--
2.7.4
^ permalink raw reply related
* [PATCH 2/5] ARM: dts: imx6q-icore: Switch LVDS timings from panel-simple
From: Jagan Teki @ 2018-01-02 9:02 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1514883738-16297-1-git-send-email-jagan@amarulasolutions.com>
Switch to use ampire,am-800480aytzqw-00h LVDS timings from
panel-simple instead hard coding the same in dts.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/boot/dts/imx6q-icore.dts | 31 +++++++++++++++++--------------
arch/arm/boot/dts/imx6qdl-icore.dtsi | 2 +-
2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/arch/arm/boot/dts/imx6q-icore.dts b/arch/arm/boot/dts/imx6q-icore.dts
index 5613dd9..c8e464e 100644
--- a/arch/arm/boot/dts/imx6q-icore.dts
+++ b/arch/arm/boot/dts/imx6q-icore.dts
@@ -48,6 +48,17 @@
/ {
model = "Engicam i.CoreM6 Quad/Dual Starter Kit";
compatible = "engicam,imx6-icore", "fsl,imx6q";
+
+ panel {
+ compatible = "ampire,am-800480aytzqw-00h";
+ backlight = <&backlight_lvds>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&lvds0_out>;
+ };
+ };
+ };
};
&can1 {
@@ -71,22 +82,14 @@
status = "okay";
lvds-channel at 0 {
- fsl,data-mapping = "spwg";
- fsl,data-width = <18>;
+ reg = <0>;
status = "okay";
- display-timings {
- native-mode = <&timing0>;
- timing0: timing0 {
- clock-frequency = <60000000>;
- hactive = <800>;
- vactive = <480>;
- hback-porch = <30>;
- hfront-porch = <30>;
- vback-porch = <5>;
- vfront-porch = <5>;
- hsync-len = <64>;
- vsync-len = <20>;
+ port at 4 {
+ reg = <4>;
+
+ lvds0_out: endpoint {
+ remote-endpoint = <&panel_in>;
};
};
};
diff --git a/arch/arm/boot/dts/imx6qdl-icore.dtsi b/arch/arm/boot/dts/imx6qdl-icore.dtsi
index a1b469c..5fd9e00 100644
--- a/arch/arm/boot/dts/imx6qdl-icore.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore.dtsi
@@ -49,7 +49,7 @@
reg = <0x10000000 0x80000000>;
};
- backlight {
+ backlight_lvds: backlight-lvds {
compatible = "pwm-backlight";
pwms = <&pwm3 0 100000>;
brightness-levels = <0 4 8 16 32 64 128 255>;
--
2.7.4
^ permalink raw reply related
* [PATCH 3/5] ARM: dts: imx6dl-icore: Add LVDS node
From: Jagan Teki @ 2018-01-02 9:02 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1514883738-16297-1-git-send-email-jagan@amarulasolutions.com>
Add ampire,am-800480aytzqw-00h LVDS support by using
timings from panel-simple.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/boot/dts/imx6dl-icore.dts | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/arch/arm/boot/dts/imx6dl-icore.dts b/arch/arm/boot/dts/imx6dl-icore.dts
index 971f9fc..74bff84 100644
--- a/arch/arm/boot/dts/imx6dl-icore.dts
+++ b/arch/arm/boot/dts/imx6dl-icore.dts
@@ -48,6 +48,17 @@
/ {
model = "Engicam i.CoreM6 DualLite/Solo Starter Kit";
compatible = "engicam,imx6-icore", "fsl,imx6dl";
+
+ panel {
+ compatible = "ampire,am-800480aytzqw-00h";
+ backlight = <&backlight_lvds>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&lvds0_out>;
+ };
+ };
+ };
};
&can1 {
@@ -66,3 +77,20 @@
interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
};
};
+
+&ldb {
+ status = "okay";
+
+ lvds-channel at 0 {
+ reg = <0>;
+ status = "okay";
+
+ port at 4 {
+ reg = <4>;
+
+ lvds0_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+};
--
2.7.4
^ permalink raw reply related
* [PATCH 4/5] drm/panel: simple: Add support for KEO TX31D200VM0BAA
From: Jagan Teki @ 2018-01-02 9:02 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1514883738-16297-1-git-send-email-jagan@amarulasolutions.com>
This adds support for the Kaohsiung Opto-Electronics.,
TX31D200VM0BAA 12.3" HSXGA LVDS panel, which can be
supported by the simple panel driver.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
.../bindings/display/panel/koe,tx31d200vm0baa.txt | 7 ++++++
drivers/gpu/drm/panel/panel-simple.c | 27 ++++++++++++++++++++++
2 files changed, 34 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/panel/koe,tx31d200vm0baa.txt
diff --git a/Documentation/devicetree/bindings/display/panel/koe,tx31d200vm0baa.txt b/Documentation/devicetree/bindings/display/panel/koe,tx31d200vm0baa.txt
new file mode 100644
index 0000000..a51db2c
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/koe,tx31d200vm0baa.txt
@@ -0,0 +1,7 @@
+Kaohsiung Opto-Electronics. TX31D200VM0BAA 12.3" HSXGA LVDS panel
+
+Required properties:
+- compatible: should be "koe,tx31d200vm0baa"
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 2ecc14b..8a0e4a8 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1241,6 +1241,30 @@ static const struct panel_desc innolux_zj070na_01p = {
},
};
+static const struct display_timing koe_tx31d200vm0baa_timing = {
+ .pixelclock = { 39600000, 43200000, 48000000 },
+ .hactive = { 1280, 1280, 1280 },
+ .hfront_porch = { 16, 36, 56 },
+ .hback_porch = { 16, 36, 56 },
+ .hsync_len = { 8, 8, 8 },
+ .vactive = { 480, 480, 480 },
+ .vfront_porch = { 6, 21, 33.5 },
+ .vback_porch = { 6, 21, 33.5 },
+ .vsync_len = { 8, 8, 8 },
+ .flags = DISPLAY_FLAGS_DE_HIGH,
+};
+
+static const struct panel_desc koe_tx31d200vm0baa = {
+ .timings = &koe_tx31d200vm0baa_timing,
+ .num_timings = 1,
+ .bpc = 6,
+ .size = {
+ .width = 292,
+ .height = 109,
+ },
+ .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+};
+
static const struct display_timing kyo_tcg121xglp_timing = {
.pixelclock = { 52000000, 65000000, 71000000 },
.hactive = { 1024, 1024, 1024 },
@@ -2151,6 +2175,9 @@ static const struct of_device_id platform_of_match[] = {
.compatible = "innolux,zj070na-01p",
.data = &innolux_zj070na_01p,
}, {
+ .compatible = "koe,tx31d200vm0baa",
+ .data = &koe_tx31d200vm0baa,
+ }, {
.compatible = "kyo,tcg121xglp",
.data = &kyo_tcg121xglp,
}, {
--
2.7.4
^ permalink raw reply related
* [PATCH 5/5] ARM: dts: imx6q-icore-ofcap12: Switch LVDS timings from panel-simple
From: Jagan Teki @ 2018-01-02 9:02 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1514883738-16297-1-git-send-email-jagan@amarulasolutions.com>
Switch to use koe_tx31d200vm0baa LVDS timings from
panel-simple instead hard coding the same in dts.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/boot/dts/imx6q-icore-ofcap12.dts | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/arch/arm/boot/dts/imx6q-icore-ofcap12.dts b/arch/arm/boot/dts/imx6q-icore-ofcap12.dts
index 9e230f5..6e27c81 100644
--- a/arch/arm/boot/dts/imx6q-icore-ofcap12.dts
+++ b/arch/arm/boot/dts/imx6q-icore-ofcap12.dts
@@ -48,28 +48,31 @@
/ {
model = "Engicam i.CoreM6 Quad/Dual OpenFrame Capacitive touch 12 Kit";
compatible = "engicam,imx6-icore", "fsl,imx6q";
+
+ panel {
+ compatible = "koe,tx31d200vm0baa";
+ backlight = <&backlight_lvds>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&lvds0_out>;
+ };
+ };
+ };
};
&ldb {
status = "okay";
lvds-channel at 0 {
- fsl,data-mapping = "spwg";
- fsl,data-width = <18>;
+ reg = <0>;
status = "okay";
- display-timings {
- native-mode = <&timing0>;
- timing0: timing0 {
- clock-frequency = <46800000>;
- hactive = <1280>;
- vactive = <480>;
- hback-porch = <353>;
- hfront-porch = <47>;
- vback-porch = <39>;
- vfront-porch = <4>;
- hsync-len = <8>;
- vsync-len = <2>;
+ port at 4 {
+ reg = <4>;
+
+ lvds0_out: endpoint {
+ remote-endpoint = <&panel_in>;
};
};
};
--
2.7.4
^ permalink raw reply related
* [PATCH v9 8/9] KVM: arm/arm64: Avoid work when userspace iqchips are not used
From: Christoffer Dall @ 2018-01-02 9:09 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <86d130qgaz.wl-marc.zyngier@arm.com>
On Wed, Dec 27, 2017 at 04:36:04PM +0000, Marc Zyngier wrote:
> On Wed, 20 Dec 2017 11:36:05 +0000,
> Christoffer Dall wrote:
> >
> > We currently check if the VM has a userspace irqchip in several places
> > along the critical path, and if so, we do some work which is only
> > required for having an irqchip in userspace. This is unfortunate, as we
> > could avoid doing any work entirely, if we didn't have to support
> > irqchip in userspace.
> >
> > Realizing the userspace irqchip on ARM is mostly a developer or hobby
> > feature, and is unlikely to be used in servers or other scenarios where
> > performance is a priority, we can use a refcounted static key to only
> > check the irqchip configuration when we have at least one VM that uses
> > an irqchip in userspace.
> >
> > Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
> > ---
> > arch/arm/include/asm/kvm_host.h | 2 ++
> > arch/arm64/include/asm/kvm_host.h | 2 ++
> > virt/kvm/arm/arch_timer.c | 6 ++--
> > virt/kvm/arm/arm.c | 59 ++++++++++++++++++++++++++++-----------
> > 4 files changed, 50 insertions(+), 19 deletions(-)
> >
> > diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h
> > index a9f7d3f47134..6394fb99da7f 100644
> > --- a/arch/arm/include/asm/kvm_host.h
> > +++ b/arch/arm/include/asm/kvm_host.h
> > @@ -48,6 +48,8 @@
> > KVM_ARCH_REQ_FLAGS(0, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP)
> > #define KVM_REQ_IRQ_PENDING KVM_ARCH_REQ(1)
> >
> > +DECLARE_STATIC_KEY_FALSE(userspace_irqchip_in_use);
> > +
> > u32 *kvm_vcpu_reg(struct kvm_vcpu *vcpu, u8 reg_num, u32 mode);
> > int __attribute_const__ kvm_target_cpu(void);
> > int kvm_reset_vcpu(struct kvm_vcpu *vcpu);
> > diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
> > index ea6cb5b24258..e7218cf7df2a 100644
> > --- a/arch/arm64/include/asm/kvm_host.h
> > +++ b/arch/arm64/include/asm/kvm_host.h
> > @@ -47,6 +47,8 @@
> > KVM_ARCH_REQ_FLAGS(0, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP)
> > #define KVM_REQ_IRQ_PENDING KVM_ARCH_REQ(1)
> >
> > +DECLARE_STATIC_KEY_FALSE(userspace_irqchip_in_use);
> > +
> > int __attribute_const__ kvm_target_cpu(void);
> > int kvm_reset_vcpu(struct kvm_vcpu *vcpu);
> > int kvm_arch_dev_ioctl_check_extension(struct kvm *kvm, long ext);
> > diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c
> > index d845d67b7062..cfcd0323deab 100644
> > --- a/virt/kvm/arm/arch_timer.c
> > +++ b/virt/kvm/arm/arch_timer.c
> > @@ -103,7 +103,8 @@ static irqreturn_t kvm_arch_timer_handler(int irq, void *dev_id)
> > if (kvm_timer_irq_can_fire(vtimer))
> > kvm_timer_update_irq(vcpu, true, vtimer);
> >
> > - if (unlikely(!irqchip_in_kernel(vcpu->kvm)))
> > + if (static_branch_unlikely(&userspace_irqchip_in_use) &&
> > + unlikely(!irqchip_in_kernel(vcpu->kvm)))
> > kvm_vtimer_update_mask_user(vcpu);
> >
> > return IRQ_HANDLED;
> > @@ -284,7 +285,8 @@ static void kvm_timer_update_irq(struct kvm_vcpu *vcpu, bool new_level,
> > trace_kvm_timer_update_irq(vcpu->vcpu_id, timer_ctx->irq.irq,
> > timer_ctx->irq.level);
> >
> > - if (likely(irqchip_in_kernel(vcpu->kvm))) {
> > + if (!static_branch_unlikely(&userspace_irqchip_in_use) &&
> > + likely(irqchip_in_kernel(vcpu->kvm))) {
> > ret = kvm_vgic_inject_irq(vcpu->kvm, vcpu->vcpu_id,
> > timer_ctx->irq.irq,
> > timer_ctx->irq.level,
> > diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c
> > index 3610e132df8b..0cf0459134ff 100644
> > --- a/virt/kvm/arm/arm.c
> > +++ b/virt/kvm/arm/arm.c
> > @@ -74,6 +74,8 @@ static void kvm_arm_set_running_vcpu(struct kvm_vcpu *vcpu)
> > __this_cpu_write(kvm_arm_running_vcpu, vcpu);
> > }
> >
> > +DEFINE_STATIC_KEY_FALSE(userspace_irqchip_in_use);
> > +
> > /**
> > * kvm_arm_get_running_vcpu - get the vcpu running on the current CPU.
> > * Must be called from non-preemptible context
> > @@ -302,6 +304,8 @@ void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu)
> >
> > void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu)
> > {
> > + if (vcpu->arch.has_run_once && unlikely(!irqchip_in_kernel(vcpu->kvm)))
> > + static_branch_dec(&userspace_irqchip_in_use);
> > kvm_arch_vcpu_free(vcpu);
> > }
> >
> > @@ -522,14 +526,22 @@ static int kvm_vcpu_first_run_init(struct kvm_vcpu *vcpu)
> >
> > vcpu->arch.has_run_once = true;
> >
> > - /*
> > - * Map the VGIC hardware resources before running a vcpu the first
> > - * time on this VM.
> > - */
> > - if (unlikely(irqchip_in_kernel(kvm) && !vgic_ready(kvm))) {
> > - ret = kvm_vgic_map_resources(kvm);
> > - if (ret)
> > - return ret;
> > + if (likely(irqchip_in_kernel(kvm))) {
> > + /*
> > + * Map the VGIC hardware resources before running a vcpu the
> > + * first time on this VM.
> > + */
> > + if (unlikely(!vgic_ready(kvm))) {
> > + ret = kvm_vgic_map_resources(kvm);
> > + if (ret)
> > + return ret;
> > + }
> > + } else {
> > + /*
> > + * Tell the rest of the code that there are userspace irqchip
> > + * VMs in the wild.
> > + */
> > + static_branch_inc(&userspace_irqchip_in_use);
> > }
> >
> > ret = kvm_timer_enable(vcpu);
> > @@ -664,18 +676,29 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
> > kvm_vgic_flush_hwstate(vcpu);
> >
> > /*
> > - * If we have a singal pending, or need to notify a userspace
> > - * irqchip about timer or PMU level changes, then we exit (and
> > - * update the timer level state in kvm_timer_update_run
> > - * below).
> > + * Exit if we have a singal pending so that we can deliver the
>
> nit: s/singal/signal/
>
dang, one more.
> > + * signal to user space.
> > */
> > - if (signal_pending(current) ||
> > - kvm_timer_should_notify_user(vcpu) ||
> > - kvm_pmu_should_notify_user(vcpu)) {
> > + if (signal_pending(current)) {
> > ret = -EINTR;
> > run->exit_reason = KVM_EXIT_INTR;
> > }
> >
> > + /*
> > + * If we're using a userspace irqchip, then check if we need
> > + * to tell a userspace irqchip about timer or PMU level
> > + * changes and if so, exit to userspace (the actual level
> > + * state gets updated in kvm_timer_update_run and
> > + * kvm_pmu_update_run below.
>
> nit: missing closing parenthesis.
>
> > + */
> > + if (static_branch_unlikely(&userspace_irqchip_in_use)) {
> > + if (kvm_timer_should_notify_user(vcpu) ||
> > + kvm_pmu_should_notify_user(vcpu)) {
> > + ret = -EINTR;
> > + run->exit_reason = KVM_EXIT_INTR;
> > + }
> > + }
> > +
> > /*
> > * Ensure we set mode to IN_GUEST_MODE after we disable
> > * interrupts and before the final VCPU requests check.
> > @@ -688,7 +711,8 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
> > kvm_request_pending(vcpu)) {
> > vcpu->mode = OUTSIDE_GUEST_MODE;
> > kvm_pmu_sync_hwstate(vcpu);
> > - kvm_timer_sync_hwstate(vcpu);
> > + if (static_branch_unlikely(&userspace_irqchip_in_use))
> > + kvm_timer_sync_hwstate(vcpu);
> > kvm_vgic_sync_hwstate(vcpu);
> > local_irq_enable();
> > preempt_enable();
> > @@ -732,7 +756,8 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
> > * we don't want vtimer interrupts to race with syncing the
> > * timer virtual interrupt state.
> > */
> > - kvm_timer_sync_hwstate(vcpu);
> > + if (static_branch_unlikely(&userspace_irqchip_in_use))
> > + kvm_timer_sync_hwstate(vcpu);
> >
> > /*
> > * We may have taken a host interrupt in HYP mode (ie
> > --
> > 2.14.2
> >
>
> Other than the trivial nits above:
>
> Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
>
Thanks for this.
I've now queued this series and pushed it to kvmarm/next.
-Christoffer
^ permalink raw reply
* [PATCH 0/3] [v11] pinctrl: qcom: add support for sparse GPIOs
From: Linus Walleij @ 2018-01-02 9:16 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171228161556.GG7997@codeaurora.org>
On Thu, Dec 28, 2017 at 5:15 PM, Stephen Boyd <sboyd@codeaurora.org> wrote:
> Patch 1 is still needed. Without that patch, we'll be poking each
> GPIO to figure out the direction at boot without checking any
> valid mask or calling the request APIs.
Aha, I just thought you'd augment that code to take valid GPIOs
into account.
Anyways, I left the patch in, so no worries.
> I don't see the part in
> debugfs where we show the direction of a GPIO if it hasn't been
> requested. Don't we skip over the unrequested GPIOs because of
> this code in gpiolib_dbg_show()?
>
> if (!test_bit(FLAG_REQUESTED, &gdesc->flags)) {
> ...
> continue;
> }
Yes you're right. This is more for lsgpio and the chardev side
of things for inspecting lines really.
Yours,
Linus Walleij
^ permalink raw reply
* [GIT PULL] Reset controller changes for v4.16
From: Philipp Zabel @ 2018-01-02 9:16 UTC (permalink / raw)
To: linux-arm-kernel
Dear arm-soc maintainers,
Happy New Year! Please consider merging this tag for v4.16. It adds
Meson-AXG?reset support and fixes a few issues with the reset include
header:?device_reset_optional is fixed to be really optional, unused
headers are pruned, and useless warnings and deprecated API calls are
removed.
regards
Philipp
The following changes since commit 4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323:
Linux 4.15-rc1 (2017-11-26 16:01:47 -0800)
are available in the git repository at:
git://git.pengutronix.de/git/pza/linux.git tags/reset-for-4.16
for you to fetch changes up to 0e5721f76252d69d424ec87a391d5ea37414b641:
reset: meson-axg: add compatible string for Meson-AXG SoC (2017-11-27 09:16:40 +0100)
----------------------------------------------------------------
Reset controller changes for v4.16
- Fix device_reset_optional to be really optional
- Header clean up: includes, warnings, and deprecated calls.
- Add driver and bindings for the Meson-AXG SoC reset controller
----------------------------------------------------------------
Masahiro Yamada (4):
reset: make device_reset_optional() really optional
reset: remove remaining WARN_ON() in <linux/reset.h>
reset: minimize the number of headers included from <linux/reset.h>
reset: remove reset_control_get(_optional)
Yixun Lan (2):
dt-bindings: reset: Add bindings for the Meson-AXG SoC Reset Controller
reset: meson-axg: add compatible string for Meson-AXG SoC
.../bindings/reset/amlogic,meson-reset.txt | 3 +-
drivers/reset/core.c | 9 +-
drivers/reset/reset-meson.c | 2 +
.../dt-bindings/reset/amlogic,meson-axg-reset.h | 124 +++++++++++++++++++++
include/linux/reset.h | 50 +++------
5 files changed, 149 insertions(+), 39 deletions(-)
create mode 100644 include/dt-bindings/reset/amlogic,meson-axg-reset.h
^ permalink raw reply
* [PATCH v2] ARM: dts: Add TVE/TVC and ILI9322 panel to DIR-685
From: Linus Walleij @ 2018-01-02 9:23 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <b929dd94-44e8-517a-7934-e0deb035faf5@lechnology.com>
On Mon, Jan 1, 2018 at 8:14 PM, David Lechner <david@lechnology.com> wrote:
> On 12/22/2017 02:51 AM, Linus Walleij wrote:
>> @@ -115,7 +156,16 @@
>> soc {
>> flash at 30000000 {
>> - status = "okay";
>> + /*
>> + * Flash access is by default disabled, because it
>> + * collides with the Chip Enable signal for the
>> display
>> + * panel, that reuse the parallel flash Chip
>> Select 1
>> + * (CS1). Enabling flash makes graphics stop
>> working.
>> + *
>> + * We might be able to hack around this by letting
>> + * GPIO poke around in the flash controller
>> registers.
>> + */
>> + /* status = "okay"; */
>
>
> Isn't the default status = "okay"? So you would need to explicitly say
> status = "disabled".
This file includes gemini.dtsi where this node is defined, and there it
is set to status = "disabled", so we used to activate the dormant node
here with an explicit status = "okay".
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH v2 1/2] arm64: dts: renesas: salvator-x: Remove renesas,no-ether-link property
From: Simon Horman @ 2018-01-02 9:38 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <a002072f-dbe4-0b6a-a19f-08dd1ed3a8d2@mentor.com>
Hi Vladimir,
Happy New Year!
On Fri, Dec 22, 2017 at 12:22:09PM +0200, Vladimir Zapolskiy wrote:
> Hi Simon,
>
> On 12/22/2017 10:40 AM, Simon Horman wrote:
> > On Fri, Dec 22, 2017 at 09:32:03AM +0100, Simon Horman wrote:
> >> On Thu, Dec 21, 2017 at 05:18:58PM +0200, Vladimir Zapolskiy wrote:
> >>> From: Bogdan Mirea <Bogdan-Stefan_Mirea@mentor.com>
> >>>
> >>> The present change is a bug fix for AVB link iteratively up/down.
> >>>
> >>> Steps to reproduce:
> >>> - start AVB TX stream (Using aplay via MSE),
> >>> - disconnect+reconnect the eth cable,
> >>> - after a reconnection the eth connection goes iteratively up/down
> >>> without user interaction,
> >>> - this may heal after some seconds or even stay for minutes.
> >>>
> >>> As the documentation specifies, the "renesas,no-ether-link" option
> >>> should be used when a board does not provide a proper AVB_LINK signal.
> >>> There is no need for this option enabled on RCAR H3/M3 Salvator-X/XS
> >>> and ULCB starter kits since the AVB_LINK is correctly handled by HW.
> >>>
> >>> Choosing to keep or remove the "renesas,no-ether-link" option will
> >>> have impact on the code flow in the following ways:
> >>> - keeping this option enabled may lead to unexpected behavior since
> >>> the RX & TX are enabled/disabled directly from adjust_link function
> >>> without any HW interrogation,
> >>> - removing this option, the RX & TX will only be enabled/disabled after
> >>> HW interrogation. The HW check is made through the LMON pin in PSR
> >>> register which specifies AVB_LINK signal value (0 - at low level;
> >>> 1 - at high level).
> >>>
> >>> In conclusion, the present change is also a safety improvement because
> >>> it removes the "renesas,no-ether-link" option leading to a proper way
> >>> of detecting the link state based on HW interrogation and not on
> >>> software heuristic.
> >>>
> >>> Fixes: d25e8ff0d5aa ("arm64: dts: renesas: Extract common Salvator-X board support")
> >>
> >> The above shuffles the code around but does not introduce the problem
> >> as far as I can see. Instead I think we should use:
> >>
> >> Fixes: dc36965a8905 ("arm64: dts: r8a7796: salvator-x: Enable EthernetAVB")
> >> Fixes: 6fa501c549aa ("arm64: dts: r8a7795: enable EthernetAVB on Salvator-X")
> >>
> >>> Signed-off-by: Bogdan Mirea <Bogdan-Stefan_Mirea@mentor.com>
> >>> Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
> >
> > I have applied this a fix for v4.15 with the updated Fixes tags above.
> >
>
> thank you, I was unsure if you expected to get changes which can be used
> as a base without patch application conflicts (my done choice) or changes,
> which originally intorduced the bug, but formally require slightly
> different fixes due to code changes in the middle. If it would be needed,
> hopefully linux-stable maintainers can resolve the trivial conflicts.
>
> Also you may find this information from the cover letter useful,
> someone may want to check the relevant board schematics and send
> similar fixes (if applicable after schematics review and testing):
>
> Note that DTS files for V3M Starter Kit, Draak and Eagle boards
> contain the same property, the files are untouched due to unavailable
> schematics to verify if the fix applies to these boards as well.
Thanks. I took a quick look and my findings so far are:
* Eagle: This approach seems applicable as AVB_LINK appears to be hooked up
* V3M Starter Kit: This approach seems applicable as AVB0_LINK appears to be
hooked up
* Draak: I don't seem to be able to locate documentation at this time
Are you interested in creating follow-up patches?
^ permalink raw reply
* [PATCH 16/67] powerpc: rename dma_direct_ to dma_nommu_
From: Michael Ellerman @ 2018-01-02 9:45 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171229081911.2802-17-hch@lst.de>
Christoph Hellwig <hch@lst.de> writes:
> We want to use the dma_direct_ namespace for a generic implementation,
> so rename powerpc to the second best choice: dma_nommu_.
I'm not a fan of "nommu". Some of the users of direct ops *are* using an
IOMMU, they're just setting up a 1:1 mapping once at init time, rather
than mapping dynamically.
Though I don't have a good idea for a better name, maybe "1to1",
"linear", "premapped" ?
cheers
^ permalink raw reply
* [PATCH v6 00/10] omap: dmtimer: Move driver out of plat-omap
From: Keerthy @ 2018-01-02 10:09 UTC (permalink / raw)
To: linux-arm-kernel
The series moves dmtimer out of plat-omap to drivers/clocksource.
The series also does a bunch of changes to pwm-omap-dmtimer code
to adapt to the driver migration and clean up plat specific
pdata-quirks and use the dmtimer platform data.
Boot tested on DRA7-EVM and AM437X-GP-EVM.
Compile tested omap1_defconfig.
This is based on top of linux-next branch.
This is tested on on IGEPv2 (OMAP3430 based) by Ladis.
Changes from V5:
* Added couple of fixes from Ladis for pwm-dmtimer.
Changes from v4:
* Made OMAP_DM_TIMER config option silent.
* Changed the driver name to timer-dm.c
Changes from v3:
* Reverted to v2 approach of using dev_get_platdata to fetch dmtimer ops.
Changes from V2:
* Wrapped the inline functions in header file under OMAP2PLUS
* Added a new of helper function to fetch plat_data from of node.
Keerthy (8):
clocksource: dmtimer: Remove all the exports
arm: omap: timer: Wrap the inline functions under OMAP2PLUS define
arm: omap: Move dmtimer.h out of plat-omap
arm: OMAP: Move dmtimer driver out of plat-omap to drivers under
clocksource
dmtimer: Add timer ops to the platform data structure
clocksource: dmtimer: Populate the timer ops to the pdata
pwm: pwm-omap-dmtimer: Adapt driver to utilize dmtimer pdata ops
arm: omap: pdata-quirks: Remove unused timer pdata
Ladislav Michl (2):
clocksource: timer-dm: Hook device platform data if not already
assigned
clocksource: timer-dm: Check prescaler value
arch/arm/mach-omap1/pm.c | 2 +-
arch/arm/mach-omap1/timer.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_2420_data.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_2430_data.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 2 +-
arch/arm/mach-omap2/pdata-quirks.c | 32 -----------
arch/arm/mach-omap2/timer.c | 2 +-
arch/arm/plat-omap/Kconfig | 6 --
arch/arm/plat-omap/Makefile | 1 -
drivers/clocksource/Kconfig | 3 +
drivers/clocksource/Makefile | 1 +
.../dmtimer.c => drivers/clocksource/timer-dm.c | 67 +++++++++++-----------
drivers/pwm/pwm-omap-dmtimer.c | 39 +++++++------
.../include/plat => include/clocksource}/dmtimer.h | 8 ++-
include/linux/platform_data/dmtimer-omap.h | 38 ++++++++++++
20 files changed, 117 insertions(+), 100 deletions(-)
rename arch/arm/plat-omap/dmtimer.c => drivers/clocksource/timer-dm.c (94%)
rename {arch/arm/plat-omap/include/plat => include/clocksource}/dmtimer.h (97%)
--
1.9.1
^ permalink raw reply
* [PATCH v6 01/10] clocksource: dmtimer: Remove all the exports
From: Keerthy @ 2018-01-02 10:09 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1514887799-24605-1-git-send-email-j-keerthy@ti.com>
Remove all the unwanted exports from the driver
Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Tested-by: Ladislav Michl <ladis@linux-mips.org>
---
arch/arm/plat-omap/dmtimer.c | 27 ---------------------------
1 file changed, 27 deletions(-)
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
index d443e48..72565fc 100644
--- a/arch/arm/plat-omap/dmtimer.c
+++ b/arch/arm/plat-omap/dmtimer.c
@@ -302,7 +302,6 @@ struct omap_dm_timer *omap_dm_timer_request(void)
{
return _omap_dm_timer_request(REQUEST_ANY, NULL);
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_request);
struct omap_dm_timer *omap_dm_timer_request_specific(int id)
{
@@ -315,7 +314,6 @@ struct omap_dm_timer *omap_dm_timer_request_specific(int id)
return _omap_dm_timer_request(REQUEST_BY_ID, &id);
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_request_specific);
/**
* omap_dm_timer_request_by_cap - Request a timer by capability
@@ -330,7 +328,6 @@ struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap)
{
return _omap_dm_timer_request(REQUEST_BY_CAP, &cap);
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_cap);
/**
* omap_dm_timer_request_by_node - Request a timer by device-tree node
@@ -346,7 +343,6 @@ struct omap_dm_timer *omap_dm_timer_request_by_node(struct device_node *np)
return _omap_dm_timer_request(REQUEST_BY_NODE, np);
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_node);
int omap_dm_timer_free(struct omap_dm_timer *timer)
{
@@ -359,7 +355,6 @@ int omap_dm_timer_free(struct omap_dm_timer *timer)
timer->reserved = 0;
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_free);
void omap_dm_timer_enable(struct omap_dm_timer *timer)
{
@@ -379,13 +374,11 @@ void omap_dm_timer_enable(struct omap_dm_timer *timer)
}
}
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_enable);
void omap_dm_timer_disable(struct omap_dm_timer *timer)
{
pm_runtime_put_sync(&timer->pdev->dev);
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_disable);
int omap_dm_timer_get_irq(struct omap_dm_timer *timer)
{
@@ -393,7 +386,6 @@ int omap_dm_timer_get_irq(struct omap_dm_timer *timer)
return timer->irq;
return -EINVAL;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_get_irq);
#if defined(CONFIG_ARCH_OMAP1)
#include <mach/hardware.h>
@@ -429,7 +421,6 @@ __u32 omap_dm_timer_modify_idlect_mask(__u32 inputmask)
return inputmask;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_modify_idlect_mask);
#else
@@ -439,7 +430,6 @@ struct clk *omap_dm_timer_get_fclk(struct omap_dm_timer *timer)
return timer->fclk;
return NULL;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_get_fclk);
__u32 omap_dm_timer_modify_idlect_mask(__u32 inputmask)
{
@@ -447,7 +437,6 @@ __u32 omap_dm_timer_modify_idlect_mask(__u32 inputmask)
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_modify_idlect_mask);
#endif
@@ -461,7 +450,6 @@ int omap_dm_timer_trigger(struct omap_dm_timer *timer)
omap_dm_timer_write_reg(timer, OMAP_TIMER_TRIGGER_REG, 0);
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_trigger);
int omap_dm_timer_start(struct omap_dm_timer *timer)
{
@@ -482,7 +470,6 @@ int omap_dm_timer_start(struct omap_dm_timer *timer)
timer->context.tclr = l;
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_start);
int omap_dm_timer_stop(struct omap_dm_timer *timer)
{
@@ -506,7 +493,6 @@ int omap_dm_timer_stop(struct omap_dm_timer *timer)
omap_dm_timer_disable(timer);
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_stop);
int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source)
{
@@ -569,7 +555,6 @@ int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source)
return ret;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_set_source);
int omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload,
unsigned int load)
@@ -595,7 +580,6 @@ int omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload,
omap_dm_timer_disable(timer);
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_set_load);
/* Optimized set_load which removes costly spin wait in timer_start */
int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload,
@@ -625,7 +609,6 @@ int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload,
timer->context.tcrr = load;
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_set_load_start);
int omap_dm_timer_set_match(struct omap_dm_timer *timer, int enable,
unsigned int match)
@@ -650,7 +633,6 @@ int omap_dm_timer_set_match(struct omap_dm_timer *timer, int enable,
omap_dm_timer_disable(timer);
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_set_match);
int omap_dm_timer_set_pwm(struct omap_dm_timer *timer, int def_on,
int toggle, int trigger)
@@ -676,7 +658,6 @@ int omap_dm_timer_set_pwm(struct omap_dm_timer *timer, int def_on,
omap_dm_timer_disable(timer);
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_set_pwm);
int omap_dm_timer_set_prescaler(struct omap_dm_timer *timer, int prescaler)
{
@@ -699,7 +680,6 @@ int omap_dm_timer_set_prescaler(struct omap_dm_timer *timer, int prescaler)
omap_dm_timer_disable(timer);
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_set_prescaler);
int omap_dm_timer_set_int_enable(struct omap_dm_timer *timer,
unsigned int value)
@@ -716,7 +696,6 @@ int omap_dm_timer_set_int_enable(struct omap_dm_timer *timer,
omap_dm_timer_disable(timer);
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_set_int_enable);
/**
* omap_dm_timer_set_int_disable - disable timer interrupts
@@ -747,7 +726,6 @@ int omap_dm_timer_set_int_disable(struct omap_dm_timer *timer, u32 mask)
omap_dm_timer_disable(timer);
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_set_int_disable);
unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer)
{
@@ -762,7 +740,6 @@ unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer)
return l;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_read_status);
int omap_dm_timer_write_status(struct omap_dm_timer *timer, unsigned int value)
{
@@ -773,7 +750,6 @@ int omap_dm_timer_write_status(struct omap_dm_timer *timer, unsigned int value)
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_write_status);
unsigned int omap_dm_timer_read_counter(struct omap_dm_timer *timer)
{
@@ -784,7 +760,6 @@ unsigned int omap_dm_timer_read_counter(struct omap_dm_timer *timer)
return __omap_dm_timer_read_counter(timer, timer->posted);
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_read_counter);
int omap_dm_timer_write_counter(struct omap_dm_timer *timer, unsigned int value)
{
@@ -799,7 +774,6 @@ int omap_dm_timer_write_counter(struct omap_dm_timer *timer, unsigned int value)
timer->context.tcrr = value;
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timer_write_counter);
int omap_dm_timers_active(void)
{
@@ -816,7 +790,6 @@ int omap_dm_timers_active(void)
}
return 0;
}
-EXPORT_SYMBOL_GPL(omap_dm_timers_active);
static const struct of_device_id omap_timer_match[];
--
1.9.1
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox