From: Aleksandar Markovic <[email protected]>
v2->v3:
- fixed configuration dependency for VIRTIO_NET and
RTC_DRV_GOLDFISH
- fixed frequency calculation in ranchu_measure_hpt_freq()
- use DT info instead of hard-coding RTC base in
ranchu_measure_hpt_freq()
- Goldfish PIC reworked to follow legacy irq domain paradigm
- Goldfish RTC reimplemented to support alarm functionality
- added COMPILE_TEST to Goldfish PIC & RTC to extend compile
test coverage
- corrected location of documentation for Goldfish FB
- added a patch on unselecting ARCH_MIGHT_HAVE_PC_SERIO
- removed two patches on i8042 as not needed in new organization
- removed the patch on separate Mips Android config as not needed
- rebased to the latest code
v1->v2:
- patch on RTC driver cleaned up
- added drivers for virtio console and net to the Ranchu board
- minor improvements in commit messages
- updated recipient lists using get_maintainer.pl
- rebased to the latest code
This series adds Mips Ranchu virtual machine used by Android emulator.
The board relies on the concept of Mips generic boards, and utilizes
generic board framework for build and device organization.
The Ranchu board is intended to be used by Android emulator.The name
"Ranchu" originates from Android development community. "Goldfish" and
"Ranchu" are names for two generations of virtual boards used by
Android emulator. "Ranchu" is a newer one among the two, and this
series deals with Ranchu. However, for historical reasons, some file,
device, and variable names in this series still contain the word
"Goldfish".
Mips Ranchu machine includes a number of Goldfish devices. The
support for Virtio devices is also included. Ranchu board supports
up to 16 virtio devices which can be attached using virtio MMIO Bus.
This is summarized in the following picture:
ABUS
||----MIPS CPU
|| | IRQs
||----Goldfish PIC------------(32)--------
|| | | | | | | | | |
||----Goldfish TTY------ | | | | | | | |
|| | | | | | | | |
||----Goldfish RTC-------- | | | | | | |
|| | | | | | | |
||----Goldfish FB----------- | | | | | |
|| | | | | | |
||----Goldfish Events--------- | | | | |
|| | | | | |
||----Goldfish Audio------------ | | | |
|| | | | |
||----Goldfish Battery------------ | | |
|| | | |
||----Android PIPE------------------ | |
|| | |
||----Virtio MMIO Bus | |
|| | | | | |
|| | | (virtio-block)--------- |
|| (16) | |
|| | (virtio-net)------------------
Device Tree is created on the QEMU side based on the information about
devices IO map and IRQ numbers. Kernel will load this DTB using UHI
boot protocol.
Checkpatch script outputs a small number of warnings if applied to
this series. We did not correct the code, since we think the code is
correct for those particular cases of checkpatch warnings.
Aleksandar Markovic (4):
Documentation: Add device tree binding for Goldfish RTC driver
Documentation: Add device tree binding for Goldfish PIC driver
Documentation: Add device tree binding for Goldfish FB driver
video: goldfishfb: Add support for device tree bindings
Miodrag Dinic (4):
MIPS: ranchu: Add Goldfish RTC driver
MIPS: ranchu: Add Goldfish PIC driver
MIPS: ranchu: Add Ranchu as a new generic-based board
MIPS: Unselect ARCH_MIGHT_HAVE_PC_SERIO if MIPS_GENERIC
.../bindings/display/google,goldfish-fb.txt | 18 ++
.../interrupt-controller/google,goldfish-pic.txt | 18 ++
.../bindings/rtc/google,goldfish-rtc.txt | 17 ++
MAINTAINERS | 18 ++
arch/mips/Kconfig | 2 +-
arch/mips/configs/generic/board-ranchu.config | 30 +++
arch/mips/generic/Kconfig | 11 +
arch/mips/generic/Makefile | 1 +
arch/mips/generic/board-ranchu.c | 76 +++++++
drivers/irqchip/Kconfig | 8 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-goldfish-pic.c | 142 +++++++++++++
drivers/rtc/Kconfig | 8 +
drivers/rtc/Makefile | 1 +
drivers/rtc/rtc-goldfish.c | 233 +++++++++++++++++++++
drivers/video/fbdev/goldfishfb.c | 8 +-
16 files changed, 590 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/google,goldfish-fb.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/google,goldfish-pic.txt
create mode 100644 Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt
create mode 100644 arch/mips/configs/generic/board-ranchu.config
create mode 100644 arch/mips/generic/board-ranchu.c
create mode 100644 drivers/irqchip/irq-goldfish-pic.c
create mode 100644 drivers/rtc/rtc-goldfish.c
--
2.7.4
From: Miodrag Dinic <[email protected]>
Add device driver for a virtual Goldfish RTC clock.
The driver can be built only if CONFIG_MIPS and CONFIG_GOLDFISH are
set. The compatible string used by OS for binding the driver is
defined as "google,goldfish-rtc".
Signed-off-by: Miodrag Dinic <[email protected]>
Signed-off-by: Goran Ferenc <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
---
MAINTAINERS | 1 +
drivers/rtc/Kconfig | 8 ++
drivers/rtc/Makefile | 1 +
drivers/rtc/rtc-goldfish.c | 233 +++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 243 insertions(+)
create mode 100644 drivers/rtc/rtc-goldfish.c
diff --git a/MAINTAINERS b/MAINTAINERS
index 847da3f..768426d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -845,6 +845,7 @@ ANDROID GOLDFISH RTC DRIVER
M: Miodrag Dinic <[email protected]>
S: Supported
F: Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt
+F: drivers/rtc/rtc-goldfish.c
ANDROID ION DRIVER
M: Laura Abbott <[email protected]>
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 72419ac..7cd27d3 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -1780,5 +1780,13 @@ config RTC_DRV_HID_SENSOR_TIME
If this driver is compiled as a module, it will be named
rtc-hid-sensor-time.
+config RTC_DRV_GOLDFISH
+ tristate "Goldfish Real Time Clock"
+ depends on MIPS && GOLDFISH || COMPILE_TEST
+ help
+ Say yes to enable RTC driver for the Goldfish based virtual platform.
+
+ Goldfish is a code name for the virtual platform developed by Google
+ for Android emulation.
endif # RTC_CLASS
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index acd366b..d995d49 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -170,3 +170,4 @@ obj-$(CONFIG_RTC_DRV_WM8350) += rtc-wm8350.o
obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o
obj-$(CONFIG_RTC_DRV_XGENE) += rtc-xgene.o
obj-$(CONFIG_RTC_DRV_ZYNQMP) += rtc-zynqmp.o
+obj-$(CONFIG_RTC_DRV_GOLDFISH) += rtc-goldfish.o
diff --git a/drivers/rtc/rtc-goldfish.c b/drivers/rtc/rtc-goldfish.c
new file mode 100644
index 0000000..aa13062
--- /dev/null
+++ b/drivers/rtc/rtc-goldfish.c
@@ -0,0 +1,233 @@
+/* drivers/rtc/rtc-goldfish.c
+ *
+ * Copyright (C) 2007 Google, Inc.
+ * Copyright (C) 2017 Imagination Technologies Ltd.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * 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 <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/rtc.h>
+
+#define TIMER_TIME_LOW 0x00 /* get low bits of current time */
+ /* and update TIMER_TIME_HIGH */
+#define TIMER_TIME_HIGH 0x04 /* get high bits of time at last */
+ /* TIMER_TIME_LOW read */
+#define TIMER_ALARM_LOW 0x08 /* set low bits of alarm and */
+ /* activate it */
+#define TIMER_ALARM_HIGH 0x0c /* set high bits of next alarm */
+#define TIMER_IRQ_ENABLED 0x10
+#define TIMER_CLEAR_ALARM 0x14
+#define TIMER_ALARM_STATUS 0x18
+#define TIMER_CLEAR_INTERRUPT 0x1c
+
+struct goldfish_rtc {
+ void __iomem *base;
+ u32 irq;
+ struct rtc_device *rtc;
+};
+
+static int goldfish_rtc_read_alarm(struct device *dev,
+ struct rtc_wkalrm *alrm)
+{
+ u64 rtc_alarm;
+ u64 rtc_alarm_low;
+ u64 rtc_alarm_high;
+ void __iomem *base;
+ struct goldfish_rtc *rtcdrv;
+
+ rtcdrv = dev_get_drvdata(dev);
+ base = rtcdrv->base;
+
+ rtc_alarm_low = readl(base + TIMER_ALARM_LOW);
+ rtc_alarm_high = readl(base + TIMER_ALARM_HIGH);
+ rtc_alarm = (rtc_alarm_high << 32) | rtc_alarm_low;
+
+ do_div(rtc_alarm, NSEC_PER_SEC);
+ memset(alrm, 0, sizeof(struct rtc_wkalrm));
+
+ rtc_time_to_tm(rtc_alarm, &(alrm->time));
+
+ if (readl(base + TIMER_ALARM_STATUS))
+ alrm->enabled = 1;
+ else
+ alrm->enabled = 0;
+
+ return 0;
+}
+
+static int goldfish_rtc_set_alarm(struct device *dev,
+ struct rtc_wkalrm *alrm)
+{
+ struct goldfish_rtc *rtcdrv;
+ unsigned long rtc_alarm;
+ u64 rtc_status_reg;
+ void __iomem *base;
+ int ret = 0;
+
+ rtcdrv = dev_get_drvdata(dev);
+ base = rtcdrv->base;
+
+ if (alrm->enabled) {
+ ret = rtc_tm_to_time(&(alrm->time), &rtc_alarm);
+ if (ret != 0)
+ return ret;
+
+ rtc_alarm *= NSEC_PER_SEC;
+ writel((rtc_alarm >> 32), base + TIMER_ALARM_HIGH);
+ writel(rtc_alarm, base + TIMER_ALARM_LOW);
+ } else {
+ /*
+ * if this function was called with enabled=0
+ * then it could mean that the application is
+ * trying to cancel an ongoing alarm
+ */
+ rtc_status_reg = readl(base + TIMER_ALARM_STATUS);
+ if (rtc_status_reg)
+ writel(1, base + TIMER_CLEAR_ALARM);
+ }
+
+ return ret;
+}
+
+static int goldfish_rtc_alarm_irq_enable(struct device *dev,
+ unsigned int enabled)
+{
+ void __iomem *base;
+ struct goldfish_rtc *rtcdrv;
+
+ rtcdrv = dev_get_drvdata(dev);
+ base = rtcdrv->base;
+
+ if (enabled)
+ writel(1, base + TIMER_IRQ_ENABLED);
+ else
+ writel(0, base + TIMER_IRQ_ENABLED);
+
+ return 0;
+
+}
+
+static irqreturn_t goldfish_rtc_interrupt(int irq, void *dev_id)
+{
+ struct goldfish_rtc *rtcdrv = dev_id;
+ void __iomem *base = rtcdrv->base;
+
+ writel(1, base + TIMER_CLEAR_INTERRUPT);
+
+ rtc_update_irq(rtcdrv->rtc, 1, RTC_IRQF | RTC_AF);
+
+ return IRQ_HANDLED;
+}
+
+static int goldfish_rtc_read_time(struct device *dev, struct rtc_time *tm)
+{
+ struct goldfish_rtc *rtcdrv;
+ void __iomem *base;
+ u64 time_high;
+ u64 time_low;
+ u64 time;
+
+ rtcdrv = dev_get_drvdata(dev);
+ base = rtcdrv->base;
+
+ time_low = readl(base + TIMER_TIME_LOW);
+ time_high = readl(base + TIMER_TIME_HIGH);
+ time = (time_high << 32) | time_low;
+
+ do_div(time, NSEC_PER_SEC);
+
+ rtc_time_to_tm(time, tm);
+
+ return 0;
+}
+
+static int goldfish_rtc_set_time(struct device *dev, struct rtc_time *tm)
+{
+ struct goldfish_rtc *rtcdrv;
+ void __iomem *base;
+ unsigned long now;
+ int ret;
+
+ rtcdrv = dev_get_drvdata(dev);
+ base = rtcdrv->base;
+
+ ret = rtc_tm_to_time(tm, &now);
+ if (ret == 0) {
+ now *= NSEC_PER_SEC;
+ writel((now >> 32), base + TIMER_TIME_HIGH);
+ writel(now, base + TIMER_TIME_LOW);
+ }
+
+ return ret;
+}
+
+static const struct rtc_class_ops goldfish_rtc_ops = {
+ .read_time = goldfish_rtc_read_time,
+ .set_time = goldfish_rtc_set_time,
+ .read_alarm = goldfish_rtc_read_alarm,
+ .set_alarm = goldfish_rtc_set_alarm,
+ .alarm_irq_enable = goldfish_rtc_alarm_irq_enable
+};
+
+static int goldfish_rtc_probe(struct platform_device *pdev)
+{
+ struct resource *r;
+ struct goldfish_rtc *rtcdrv;
+ int err;
+
+ rtcdrv = devm_kzalloc(&pdev->dev, sizeof(*rtcdrv), GFP_KERNEL);
+ if (rtcdrv == NULL)
+ return -ENOMEM;
+
+ platform_set_drvdata(pdev, rtcdrv);
+
+ r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (r == NULL)
+ return -ENODEV;
+
+ rtcdrv->base = devm_ioremap_resource(&pdev->dev, r);
+ if (IS_ERR(rtcdrv->base))
+ return -ENODEV;
+
+ rtcdrv->irq = platform_get_irq(pdev, 0);
+ if (rtcdrv->irq < 0)
+ return -ENODEV;
+
+ rtcdrv->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
+ &goldfish_rtc_ops, THIS_MODULE);
+ if (IS_ERR(rtcdrv->rtc))
+ return PTR_ERR(rtcdrv->rtc);
+
+ err = devm_request_irq(&pdev->dev, rtcdrv->irq, goldfish_rtc_interrupt,
+ 0, pdev->name, rtcdrv);
+ if (err)
+ return err;
+
+ return 0;
+}
+
+static const struct of_device_id goldfish_rtc_of_match[] = {
+ { .compatible = "google,goldfish-rtc", },
+ {},
+};
+MODULE_DEVICE_TABLE(of, goldfish_rtc_of_match);
+
+static struct platform_driver goldfish_rtc = {
+ .probe = goldfish_rtc_probe,
+ .driver = {
+ .name = "goldfish_rtc",
+ .of_match_table = goldfish_rtc_of_match,
+ }
+};
+
+module_platform_driver(goldfish_rtc);
--
2.7.4
From: Miodrag Dinic <[email protected]>
Provide amendments to the Mips generic platform framework so that
the new generic-based board Ranchu can be chosen to be built.
Signed-off-by: Miodrag Dinic <[email protected]>
Signed-off-by: Goran Ferenc <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
---
MAINTAINERS | 6 +++
arch/mips/configs/generic/board-ranchu.config | 30 +++++++++++
arch/mips/generic/Kconfig | 11 ++++
arch/mips/generic/Makefile | 1 +
arch/mips/generic/board-ranchu.c | 76 +++++++++++++++++++++++++++
5 files changed, 124 insertions(+)
create mode 100644 arch/mips/configs/generic/board-ranchu.config
create mode 100644 arch/mips/generic/board-ranchu.c
diff --git a/MAINTAINERS b/MAINTAINERS
index 5476a52..933b9f5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11041,6 +11041,12 @@ S: Maintained
F: Documentation/blockdev/ramdisk.txt
F: drivers/block/brd.c
+RANCHU VIRTUAL BOARD FOR MIPS
+M: Miodrag Dinic <[email protected]>
+L: [email protected]
+S: Supported
+F: arch/mips/generic/board-ranchu.c
+
RANDOM NUMBER DRIVER
M: "Theodore Ts'o" <[email protected]>
S: Maintained
diff --git a/arch/mips/configs/generic/board-ranchu.config b/arch/mips/configs/generic/board-ranchu.config
new file mode 100644
index 0000000..fee9ad4
--- /dev/null
+++ b/arch/mips/configs/generic/board-ranchu.config
@@ -0,0 +1,30 @@
+CONFIG_VIRT_BOARD_RANCHU=y
+
+CONFIG_BATTERY_GOLDFISH=y
+CONFIG_FB=y
+CONFIG_FB_GOLDFISH=y
+CONFIG_GOLDFISH=y
+CONFIG_STAGING=y
+CONFIG_GOLDFISH_AUDIO=y
+CONFIG_GOLDFISH_PIC=y
+CONFIG_GOLDFISH_PIPE=y
+CONFIG_GOLDFISH_TTY=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_GOLDFISH=y
+
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_GOLDFISH_EVENTS=y
+
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_NETDEVICES=y
+CONFIG_VIRTIO_NET=y
diff --git a/arch/mips/generic/Kconfig b/arch/mips/generic/Kconfig
index 51ffbba..fe1231d 100644
--- a/arch/mips/generic/Kconfig
+++ b/arch/mips/generic/Kconfig
@@ -36,4 +36,15 @@ config FIT_IMAGE_FDT_BOSTON
enable this if you wish to boot on a MIPS Boston board, as it is
expected by the bootloader.
+config VIRT_BOARD_RANCHU
+ bool "Ranchu platform for Android emulator"
+ select LEGACY_BOARDS
+ help
+ This enables support for the platform used by Android emulator.
+
+ Ranchu platform consists of a set of virtual devices. This platform
+ enables emulation of variety of virtual configurations while using
+ Android emulator. Android emulator is based on Qemu, and contains
+ the support for the same set of virtual devices.
+
endif
diff --git a/arch/mips/generic/Makefile b/arch/mips/generic/Makefile
index 56b3ea5..14931f2 100644
--- a/arch/mips/generic/Makefile
+++ b/arch/mips/generic/Makefile
@@ -14,4 +14,5 @@ obj-y += proc.o
obj-$(CONFIG_YAMON_DT_SHIM) += yamon-dt.o
obj-$(CONFIG_LEGACY_BOARD_SEAD3) += board-sead3.o
+obj-$(CONFIG_VIRT_BOARD_RANCHU) += board-ranchu.o
obj-$(CONFIG_KEXEC) += kexec.o
diff --git a/arch/mips/generic/board-ranchu.c b/arch/mips/generic/board-ranchu.c
new file mode 100644
index 0000000..f972866
--- /dev/null
+++ b/arch/mips/generic/board-ranchu.c
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2017 Imagination Technologies Ltd.
+ * Author: Miodrag Dinic <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/of_address.h>
+
+#include <asm/machine.h>
+#include <asm/time.h>
+
+#define GOLDFISH_TIMER_LOW 0x00
+#define GOLDFISH_TIMER_HIGH 0x04
+
+static __init uint64_t read_rtc_time(void __iomem *base)
+{
+ uint64_t time_low;
+ uint64_t time_high;
+
+ time_low = readl(base + GOLDFISH_TIMER_LOW);
+ time_high = readl(base + GOLDFISH_TIMER_HIGH);
+
+ return (time_high << 32) | time_low;
+}
+
+static __init unsigned int ranchu_measure_hpt_freq(void)
+{
+ uint64_t rtc_start, rtc_current, rtc_delta;
+ unsigned int start, count;
+ struct device_node *np;
+ void __iomem *rtc_base;
+
+ if (!(np = of_find_compatible_node(NULL, NULL, "google,goldfish-rtc")))
+ panic("%s(): Failed to find 'google,goldfish-rtc' dt node!", __func__);
+
+ rtc_base = of_iomap(np, 0);
+ if (!rtc_base)
+ panic("%s(): Failed to ioremap Goldfish RTC base!", __func__);
+
+ /*
+ * poll the nanosecond resolution RTC for 1 second
+ * to calibrate the CPU frequency
+ */
+ rtc_start = read_rtc_time(rtc_base);
+ start = read_c0_count();
+
+ do {
+ rtc_current = read_rtc_time(rtc_base);
+ rtc_delta = rtc_current - rtc_start;
+ } while (rtc_delta < NSEC_PER_SEC);
+
+ count = read_c0_count() - start;
+
+ count += 5000; /* round */
+ count -= count % 10000;
+
+ return count;
+}
+
+static const struct of_device_id ranchu_of_match[];
+
+MIPS_MACHINE(ranchu) = {
+ .matches = ranchu_of_match,
+ .measure_hpt_freq = ranchu_measure_hpt_freq,
+};
+
+static const struct of_device_id ranchu_of_match[] = {
+ {
+ .compatible = "mti,ranchu",
+ .data = &__mips_mach_ranchu,
+ },
+};
--
2.7.4
From: Aleksandar Markovic <[email protected]>
Add documentation for DT binding of Goldfish FB driver. The compatible
string used by OS for binding the driver is "google,goldfish-fb".
Signed-off-by: Miodrag Dinic <[email protected]>
Signed-off-by: Goran Ferenc <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
---
.../devicetree/bindings/display/google,goldfish-fb.txt | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/google,goldfish-fb.txt
diff --git a/Documentation/devicetree/bindings/display/google,goldfish-fb.txt b/Documentation/devicetree/bindings/display/google,goldfish-fb.txt
new file mode 100644
index 0000000..9ce0615
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/google,goldfish-fb.txt
@@ -0,0 +1,18 @@
+Android Goldfish framebuffer
+
+Android Goldfish framebuffer device used by Android emulator.
+
+Required properties:
+
+- compatible : should contain "google,goldfish-fb"
+- reg : <registers mapping>
+- interrupts : <interrupt mapping>
+
+Example:
+
+ goldfish_fb@1f008000 {
+ compatible = "google,goldfish-fb";
+ interrupts = <0x10>;
+ reg = <0x1f008000 0x0 0x100>;
+ compatible = "google,goldfish-fb";
+ };
--
2.7.4
From: Miodrag Dinic <[email protected]>
This effectively disables i8042 driver for MIPS_GENERIC kernel platform.
Currently, only sead-3, boston and ranchu boards are supported by the
MIPS generic kernel and none of them require this driver.
More specifically, kernel would crash if it gets enabled, because
i8042 driver would try to read from an non-existent IO register.
Signed-off-by: Miodrag Dinic <[email protected]>
Signed-off-by: Goran Ferenc <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
---
arch/mips/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 8dd2035..97c9823 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -7,7 +7,7 @@ config MIPS
select ARCH_HAS_ELF_RANDOMIZE
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
select ARCH_MIGHT_HAVE_PC_PARPORT
- select ARCH_MIGHT_HAVE_PC_SERIO
+ select ARCH_MIGHT_HAVE_PC_SERIO if !MIPS_GENERIC
select ARCH_SUPPORTS_UPROBES
select ARCH_USE_BUILTIN_BSWAP
select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
--
2.7.4
From: Aleksandar Markovic <[email protected]>
Add ability to the Goldfish FB driver to be recognized by OS via DT.
Signed-off-by: Miodrag Dinic <[email protected]>
Signed-off-by: Goran Ferenc <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
---
drivers/video/fbdev/goldfishfb.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c
index 7f6c9e6..3b70044 100644
--- a/drivers/video/fbdev/goldfishfb.c
+++ b/drivers/video/fbdev/goldfishfb.c
@@ -304,12 +304,18 @@ static int goldfish_fb_remove(struct platform_device *pdev)
return 0;
}
+static const struct of_device_id goldfish_fb_of_match[] = {
+ { .compatible = "google,goldfish-fb", },
+ {},
+};
+MODULE_DEVICE_TABLE(of, goldfish_fb_of_match);
static struct platform_driver goldfish_fb_driver = {
.probe = goldfish_fb_probe,
.remove = goldfish_fb_remove,
.driver = {
- .name = "goldfish_fb"
+ .name = "goldfish_fb",
+ .of_match_table = goldfish_fb_of_match,
}
};
--
2.7.4
From: Aleksandar Markovic <[email protected]>
Add documentation for DT binding of Goldfish RTC driver. The compatible
string used by OS for binding the driver is "google,goldfish-rtc".
Signed-off-by: Miodrag Dinic <[email protected]>
Signed-off-by: Goran Ferenc <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
---
.../devicetree/bindings/rtc/google,goldfish-rtc.txt | 17 +++++++++++++++++
MAINTAINERS | 5 +++++
2 files changed, 22 insertions(+)
create mode 100644 Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt
diff --git a/Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt b/Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt
new file mode 100644
index 0000000..634312d
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt
@@ -0,0 +1,17 @@
+Android Goldfish RTC
+
+Android Goldfish RTC device used by Android emulator.
+
+Required properties:
+
+- compatible : should contain "google,goldfish-rtc"
+- reg : <registers mapping>
+- interrupts : <interrupt mapping>
+
+Example:
+
+ goldfish_timer@9020000 {
+ compatible = "google,goldfish-rtc";
+ reg = <0x9020000 0x1000>;
+ interrupts = <0x3>;
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 02994f4..847da3f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -841,6 +841,11 @@ S: Supported
F: drivers/android/
F: drivers/staging/android/
+ANDROID GOLDFISH RTC DRIVER
+M: Miodrag Dinic <[email protected]>
+S: Supported
+F: Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt
+
ANDROID ION DRIVER
M: Laura Abbott <[email protected]>
M: Sumit Semwal <[email protected]>
--
2.7.4
From: Miodrag Dinic <[email protected]>
Add device driver for a virtual programmable interrupt controller
The virtual PIC is designed as a device tree-based interrupt controller.
The compatible string used by OS for binding the driver is
"google,goldfish-pic".
Signed-off-by: Miodrag Dinic <[email protected]>
Signed-off-by: Goran Ferenc <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
---
MAINTAINERS | 1 +
drivers/irqchip/Kconfig | 8 +++
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-goldfish-pic.c | 142 +++++++++++++++++++++++++++++++++++++
4 files changed, 152 insertions(+)
create mode 100644 drivers/irqchip/irq-goldfish-pic.c
diff --git a/MAINTAINERS b/MAINTAINERS
index b4d74ab..5476a52 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -845,6 +845,7 @@ ANDROID GOLDFISH PIC DRIVER
M: Miodrag Dinic <[email protected]>
S: Supported
F: Documentation/devicetree/bindings/interrupt-controller/google,goldfish-pic.txt
+F: drivers/irqchip/irq-goldfish-pic.c
ANDROID GOLDFISH RTC DRIVER
M: Miodrag Dinic <[email protected]>
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
index f1fd5f4..21fab14 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -306,3 +306,11 @@ config QCOM_IRQ_COMBINER
help
Say yes here to add support for the IRQ combiner devices embedded
in Qualcomm Technologies chips.
+
+config GOLDFISH_PIC
+ bool "Goldfish programmable interrupt controller"
+ depends on MIPS && (GOLDFISH || COMPILE_TEST)
+ select IRQ_DOMAIN
+ help
+ Say yes here to enable Goldfish interrupt controller driver used
+ for Goldfish based virtual platforms.
diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
index e88d856..ade04a1 100644
--- a/drivers/irqchip/Makefile
+++ b/drivers/irqchip/Makefile
@@ -78,3 +78,4 @@ obj-$(CONFIG_EZNPS_GIC) += irq-eznps.o
obj-$(CONFIG_ARCH_ASPEED) += irq-aspeed-vic.o irq-aspeed-i2c-ic.o
obj-$(CONFIG_STM32_EXTI) += irq-stm32-exti.o
obj-$(CONFIG_QCOM_IRQ_COMBINER) += qcom-irq-combiner.o
+obj-$(CONFIG_GOLDFISH_PIC) += irq-goldfish-pic.o
diff --git a/drivers/irqchip/irq-goldfish-pic.c b/drivers/irqchip/irq-goldfish-pic.c
new file mode 100644
index 0000000..4dad03c
--- /dev/null
+++ b/drivers/irqchip/irq-goldfish-pic.c
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2017 Imagination Technologies Ltd. All rights reserved
+ * Author: Miodrag Dinic <[email protected]>
+ *
+ * This file implements interrupt controller driver for MIPS Goldfish PIC.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <linux/irq.h>
+#include <linux/irqchip.h>
+#include <linux/irqdomain.h>
+#include <linux/of_address.h>
+#include <linux/of_irq.h>
+
+#include <asm/setup.h>
+
+/* 0..7 MIPS CPU interrupts */
+#define GF_CPU_IRQ_PIC (MIPS_CPU_IRQ_BASE + 2)
+#define GF_CPU_IRQ_COMPARE (MIPS_CPU_IRQ_BASE + 7)
+
+#define GF_NR_IRQS 40
+/* 8..39 Cascaded Goldfish PIC interrupts */
+#define GF_IRQ_OFFSET 8
+
+#define GF_PIC_NUMBER 0x04
+#define GF_PIC_DISABLE_ALL 0x08
+#define GF_PIC_DISABLE 0x0c
+#define GF_PIC_ENABLE 0x10
+
+static struct irq_domain *irq_domain;
+static void __iomem *gf_pic_base;
+
+static inline void unmask_goldfish_irq(struct irq_data *d)
+{
+ writel(d->hwirq - GF_IRQ_OFFSET,
+ gf_pic_base + GF_PIC_ENABLE);
+ irq_enable_hazard();
+}
+
+static inline void mask_goldfish_irq(struct irq_data *d)
+{
+ writel(d->hwirq - GF_IRQ_OFFSET,
+ gf_pic_base + GF_PIC_DISABLE);
+ irq_disable_hazard();
+}
+
+static struct irq_chip goldfish_irq_controller = {
+ .name = "Goldfish PIC",
+ .irq_ack = mask_goldfish_irq,
+ .irq_mask = mask_goldfish_irq,
+ .irq_mask_ack = mask_goldfish_irq,
+ .irq_unmask = unmask_goldfish_irq,
+ .irq_eoi = unmask_goldfish_irq,
+ .irq_disable = mask_goldfish_irq,
+ .irq_enable = unmask_goldfish_irq,
+};
+
+static void goldfish_irq_dispatch(void)
+{
+ uint32_t irq;
+ uint32_t virq;
+
+ irq = readl(gf_pic_base + GF_PIC_NUMBER);
+ if (irq == 0) {
+ /* Timer interrupt */
+ do_IRQ(GF_CPU_IRQ_COMPARE);
+ return;
+ }
+
+ virq = irq_linear_revmap(irq_domain, irq);
+ virq += GF_IRQ_OFFSET;
+ do_IRQ(virq);
+}
+
+static void goldfish_ip2_irq_dispatch(struct irq_desc *desc)
+{
+ unsigned long pending = read_c0_cause() & read_c0_status() & ST0_IM;
+
+ if (pending & CAUSEF_IP2)
+ goldfish_irq_dispatch();
+ else
+ spurious_interrupt();
+}
+
+static int goldfish_pic_map(struct irq_domain *d, unsigned int irq,
+ irq_hw_number_t hw)
+{
+ if (cpu_has_vint)
+ set_vi_handler(hw, goldfish_irq_dispatch);
+
+ irq_set_chip_and_handler(irq, &goldfish_irq_controller,
+ handle_level_irq);
+
+ return 0;
+}
+
+static const struct irq_domain_ops gf_pic_irq_domain_ops = {
+ .map = goldfish_pic_map,
+ .xlate = irq_domain_xlate_onetwocell,
+};
+
+static struct irqaction cascade = {
+ .handler = no_action,
+ .flags = IRQF_PROBE_SHARED,
+ .name = "cascade",
+};
+
+static void __init __goldfish_pic_init(struct device_node *of_node)
+{
+ gf_pic_base = of_iomap(of_node, 0);
+ if (!gf_pic_base)
+ panic("Failed to map Goldfish PIC base : No such device!");
+
+ /* Mask interrupts. */
+ writel(1, gf_pic_base + GF_PIC_DISABLE_ALL);
+
+ if (!cpu_has_vint)
+ irq_set_chained_handler(GF_CPU_IRQ_PIC,
+ goldfish_ip2_irq_dispatch);
+
+ setup_irq(GF_CPU_IRQ_PIC, &cascade);
+
+ irq_domain = irq_domain_add_legacy(of_node, GF_NR_IRQS,
+ GF_IRQ_OFFSET, 0, &gf_pic_irq_domain_ops, NULL);
+ if (!irq_domain)
+ panic("Failed to add irqdomain for Goldfish PIC");
+}
+
+int __init goldfish_pic_of_init(struct device_node *of_node,
+ struct device_node *parent)
+{
+ __goldfish_pic_init(of_node);
+ return 0;
+}
+IRQCHIP_DECLARE(google_gf_pic, "google,goldfish-pic", goldfish_pic_of_init);
--
2.7.4
From: Aleksandar Markovic <[email protected]>
Add documentation for DT binding of Goldfish PIC driver. The compatible
string used by OS for binding the driver is "google,goldfish-pic".
Signed-off-by: Miodrag Dinic <[email protected]>
Signed-off-by: Goran Ferenc <[email protected]>
Signed-off-by: Aleksandar Markovic <[email protected]>
---
.../interrupt-controller/google,goldfish-pic.txt | 18 ++++++++++++++++++
MAINTAINERS | 5 +++++
2 files changed, 23 insertions(+)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/google,goldfish-pic.txt
diff --git a/Documentation/devicetree/bindings/interrupt-controller/google,goldfish-pic.txt b/Documentation/devicetree/bindings/interrupt-controller/google,goldfish-pic.txt
new file mode 100644
index 0000000..f198762
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/google,goldfish-pic.txt
@@ -0,0 +1,18 @@
+Android Goldfish PIC
+
+Android Goldfish programmable interrupt device used by Android
+emulator.
+
+Required properties:
+
+- compatible : should contain "google,goldfish-pic"
+- reg : <registers mapping>
+- interrupts : <interrupt mapping>
+
+Example:
+
+ goldfish_pic@9020000 {
+ compatible = "google,goldfish-pic";
+ reg = <0x9020000 0x1000>;
+ interrupts = <0x3>;
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 768426d..b4d74ab 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -841,6 +841,11 @@ S: Supported
F: drivers/android/
F: drivers/staging/android/
+ANDROID GOLDFISH PIC DRIVER
+M: Miodrag Dinic <[email protected]>
+S: Supported
+F: Documentation/devicetree/bindings/interrupt-controller/google,goldfish-pic.txt
+
ANDROID GOLDFISH RTC DRIVER
M: Miodrag Dinic <[email protected]>
S: Supported
--
2.7.4
Hi Miodrag,
[auto build test WARNING on linus/master]
[also build test WARNING on v4.13-rc1 next-20170721]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Aleksandar-Markovic/MIPS-Add-virtual-Ranchu-board-as-a-generic-based-board/20170724-062318
config: blackfin-allyesconfig (attached as .config)
compiler: bfin-uclinux-gcc (GCC) 6.2.0
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=blackfin
All warnings (new ones prefixed by >>):
drivers/rtc/rtc-goldfish.c: In function 'goldfish_rtc_set_alarm':
>> drivers/rtc/rtc-goldfish.c:86:21: warning: right shift count >= width of type [-Wshift-count-overflow]
writel((rtc_alarm >> 32), base + TIMER_ALARM_HIGH);
^~
drivers/rtc/rtc-goldfish.c: In function 'goldfish_rtc_set_time':
drivers/rtc/rtc-goldfish.c:167:15: warning: right shift count >= width of type [-Wshift-count-overflow]
writel((now >> 32), base + TIMER_TIME_HIGH);
^~
vim +86 drivers/rtc/rtc-goldfish.c
67
68 static int goldfish_rtc_set_alarm(struct device *dev,
69 struct rtc_wkalrm *alrm)
70 {
71 struct goldfish_rtc *rtcdrv;
72 unsigned long rtc_alarm;
73 u64 rtc_status_reg;
74 void __iomem *base;
75 int ret = 0;
76
77 rtcdrv = dev_get_drvdata(dev);
78 base = rtcdrv->base;
79
80 if (alrm->enabled) {
81 ret = rtc_tm_to_time(&(alrm->time), &rtc_alarm);
82 if (ret != 0)
83 return ret;
84
85 rtc_alarm *= NSEC_PER_SEC;
> 86 writel((rtc_alarm >> 32), base + TIMER_ALARM_HIGH);
87 writel(rtc_alarm, base + TIMER_ALARM_LOW);
88 } else {
89 /*
90 * if this function was called with enabled=0
91 * then it could mean that the application is
92 * trying to cancel an ongoing alarm
93 */
94 rtc_status_reg = readl(base + TIMER_ALARM_STATUS);
95 if (rtc_status_reg)
96 writel(1, base + TIMER_CLEAR_ALARM);
97 }
98
99 return ret;
100 }
101
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Miodrag,
[auto build test ERROR on linus/master]
[also build test ERROR on next-20170721]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Aleksandar-Markovic/MIPS-Add-virtual-Ranchu-board-as-a-generic-based-board/20170724-062318
config: sparc64-allmodconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 6.3.0-18) 6.3.0 20170516
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=sparc64
All errors (new ones prefixed by >>):
drivers/rtc/rtc-goldfish.c: In function 'goldfish_rtc_read_alarm':
>> drivers/rtc/rtc-goldfish.c:51:18: error: implicit declaration of function 'readl' [-Werror=implicit-function-declaration]
rtc_alarm_low = readl(base + TIMER_ALARM_LOW);
^~~~~
drivers/rtc/rtc-goldfish.c: In function 'goldfish_rtc_set_alarm':
>> drivers/rtc/rtc-goldfish.c:86:3: error: implicit declaration of function 'writel' [-Werror=implicit-function-declaration]
writel((rtc_alarm >> 32), base + TIMER_ALARM_HIGH);
^~~~~~
cc1: some warnings being treated as errors
vim +/readl +51 drivers/rtc/rtc-goldfish.c
38
39 static int goldfish_rtc_read_alarm(struct device *dev,
40 struct rtc_wkalrm *alrm)
41 {
42 u64 rtc_alarm;
43 u64 rtc_alarm_low;
44 u64 rtc_alarm_high;
45 void __iomem *base;
46 struct goldfish_rtc *rtcdrv;
47
48 rtcdrv = dev_get_drvdata(dev);
49 base = rtcdrv->base;
50
> 51 rtc_alarm_low = readl(base + TIMER_ALARM_LOW);
52 rtc_alarm_high = readl(base + TIMER_ALARM_HIGH);
53 rtc_alarm = (rtc_alarm_high << 32) | rtc_alarm_low;
54
55 do_div(rtc_alarm, NSEC_PER_SEC);
56 memset(alrm, 0, sizeof(struct rtc_wkalrm));
57
58 rtc_time_to_tm(rtc_alarm, &(alrm->time));
59
60 if (readl(base + TIMER_ALARM_STATUS))
61 alrm->enabled = 1;
62 else
63 alrm->enabled = 0;
64
65 return 0;
66 }
67
68 static int goldfish_rtc_set_alarm(struct device *dev,
69 struct rtc_wkalrm *alrm)
70 {
71 struct goldfish_rtc *rtcdrv;
72 unsigned long rtc_alarm;
73 u64 rtc_status_reg;
74 void __iomem *base;
75 int ret = 0;
76
77 rtcdrv = dev_get_drvdata(dev);
78 base = rtcdrv->base;
79
80 if (alrm->enabled) {
81 ret = rtc_tm_to_time(&(alrm->time), &rtc_alarm);
82 if (ret != 0)
83 return ret;
84
85 rtc_alarm *= NSEC_PER_SEC;
> 86 writel((rtc_alarm >> 32), base + TIMER_ALARM_HIGH);
87 writel(rtc_alarm, base + TIMER_ALARM_LOW);
88 } else {
89 /*
90 * if this function was called with enabled=0
91 * then it could mean that the application is
92 * trying to cancel an ongoing alarm
93 */
94 rtc_status_reg = readl(base + TIMER_ALARM_STATUS);
95 if (rtc_status_reg)
96 writel(1, base + TIMER_CLEAR_ALARM);
97 }
98
99 return ret;
100 }
101
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi,
On 21/07/2017 at 18:53:31 +0200, Aleksandar Markovic wrote:
> From: Miodrag Dinic <[email protected]>
>
> Add device driver for a virtual Goldfish RTC clock.
>
> The driver can be built only if CONFIG_MIPS and CONFIG_GOLDFISH are
> set. The compatible string used by OS for binding the driver is
> defined as "google,goldfish-rtc".
>
> Signed-off-by: Miodrag Dinic <[email protected]>
> Signed-off-by: Goran Ferenc <[email protected]>
> Signed-off-by: Aleksandar Markovic <[email protected]>
> ---
> MAINTAINERS | 1 +
> drivers/rtc/Kconfig | 8 ++
> drivers/rtc/Makefile | 1 +
> drivers/rtc/rtc-goldfish.c | 233 +++++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 243 insertions(+)
> create mode 100644 drivers/rtc/rtc-goldfish.c
>
Do you mind fixing the remaining checkpatch --strict issues, the two
kbuild errors and the warning reported by Julia?
Thanks!
--
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Hi Alexandre,
we have this sorted & plan to submit version 4 of this series next week.
Thank you.
Kind regards,
Miodrag
________________________________________
From: Alexandre Belloni [[email protected]]
Sent: Thursday, August 10, 2017 10:34 PM
To: Aleksandar Markovic
Cc: [email protected]; Miodrag Dinic; Goran Ferenc; Aleksandar Markovic; Alessandro Zummo; Bo Hu; David S. Miller; Douglas Leung; Greg Kroah-Hartman; James Hogan; Jin Qian; [email protected]; [email protected]; Mauro Carvalho Chehab; Paul Burton; Petar Jovanovic; Raghu Gandham
Subject: Re: [PATCH v3 2/8] MIPS: ranchu: Add Goldfish RTC driver
Hi,
On 21/07/2017 at 18:53:31 +0200, Aleksandar Markovic wrote:
> From: Miodrag Dinic <[email protected]>
>
> Add device driver for a virtual Goldfish RTC clock.
>
> The driver can be built only if CONFIG_MIPS and CONFIG_GOLDFISH are
> set. The compatible string used by OS for binding the driver is
> defined as "google,goldfish-rtc".
>
> Signed-off-by: Miodrag Dinic <[email protected]>
> Signed-off-by: Goran Ferenc <[email protected]>
> Signed-off-by: Aleksandar Markovic <[email protected]>
> ---
> MAINTAINERS | 1 +
> drivers/rtc/Kconfig | 8 ++
> drivers/rtc/Makefile | 1 +
> drivers/rtc/rtc-goldfish.c | 233 +++++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 243 insertions(+)
> create mode 100644 drivers/rtc/rtc-goldfish.c
>
Do you mind fixing the remaining checkpatch --strict issues, the two
kbuild errors and the warning reported by Julia?
Thanks!
--
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Hello, Alexandre,
In addition, if you, and everybody else, don't object, I plan to change the title of this patch form:
"MIPS: ranchu: Add Goldfish RTC driver"
to
"rtc: Add Goldfish RTC driver",
to be more consistent with all commit messages for this kernel source directory.
Regards,
Aleksandar
________________________________________
From: Miodrag Dinic
Sent: Friday, August 11, 2017 9:46 AM
To: Alexandre Belloni; Aleksandar Markovic
Cc: [email protected]; Goran Ferenc; Aleksandar Markovic; Alessandro Zummo; Bo Hu; David S. Miller; Douglas Leung; Greg Kroah-Hartman; James Hogan; Jin Qian; [email protected]; [email protected]; Mauro Carvalho Chehab; Paul Burton; Petar Jovanovic; Raghu Gandham
Subject: RE: [PATCH v3 2/8] MIPS: ranchu: Add Goldfish RTC driver
Hi Alexandre,
we have this sorted & plan to submit version 4 of this series next week.
Thank you.
Kind regards,
Miodrag
________________________________________
From: Alexandre Belloni [[email protected]]
Sent: Thursday, August 10, 2017 10:34 PM
To: Aleksandar Markovic
Cc: [email protected]; Miodrag Dinic; Goran Ferenc; Aleksandar Markovic; Alessandro Zummo; Bo Hu; David S. Miller; Douglas Leung; Greg Kroah-Hartman; James Hogan; Jin Qian; [email protected]; [email protected]; Mauro Carvalho Chehab; Paul Burton; Petar Jovanovic; Raghu Gandham
Subject: Re: [PATCH v3 2/8] MIPS: ranchu: Add Goldfish RTC driver
Hi,
On 21/07/2017 at 18:53:31 +0200, Aleksandar Markovic wrote:
> From: Miodrag Dinic <[email protected]>
>
> Add device driver for a virtual Goldfish RTC clock.
>
> The driver can be built only if CONFIG_MIPS and CONFIG_GOLDFISH are
> set. The compatible string used by OS for binding the driver is
> defined as "google,goldfish-rtc".
>
> Signed-off-by: Miodrag Dinic <[email protected]>
> Signed-off-by: Goran Ferenc <[email protected]>
> Signed-off-by: Aleksandar Markovic <[email protected]>
> ---
> MAINTAINERS | 1 +
> drivers/rtc/Kconfig | 8 ++
> drivers/rtc/Makefile | 1 +
> drivers/rtc/rtc-goldfish.c | 233 +++++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 243 insertions(+)
> create mode 100644 drivers/rtc/rtc-goldfish.c
>
Do you mind fixing the remaining checkpatch --strict issues, the two
kbuild errors and the warning reported by Julia?
Thanks!
--
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
On 14/08/2017 at 12:45:55 +0000, Aleksandar Markovic wrote:
> Hello, Alexandre,
>
> In addition, if you, and everybody else, don't object, I plan to change the title of this patch form:
>
> "MIPS: ranchu: Add Goldfish RTC driver"
>
> to
>
> "rtc: Add Goldfish RTC driver",
>
> to be more consistent with all commit messages for this kernel source directory.
>
Yes please, I would have changed it anyway.
> Regards,
> Aleksandar
>
> ________________________________________
> From: Miodrag Dinic
> Sent: Friday, August 11, 2017 9:46 AM
> To: Alexandre Belloni; Aleksandar Markovic
> Cc: [email protected]; Goran Ferenc; Aleksandar Markovic; Alessandro Zummo; Bo Hu; David S. Miller; Douglas Leung; Greg Kroah-Hartman; James Hogan; Jin Qian; [email protected]; [email protected]; Mauro Carvalho Chehab; Paul Burton; Petar Jovanovic; Raghu Gandham
> Subject: RE: [PATCH v3 2/8] MIPS: ranchu: Add Goldfish RTC driver
>
> Hi Alexandre,
>
> we have this sorted & plan to submit version 4 of this series next week.
>
> Thank you.
>
> Kind regards,
> Miodrag
> ________________________________________
> From: Alexandre Belloni [[email protected]]
> Sent: Thursday, August 10, 2017 10:34 PM
> To: Aleksandar Markovic
> Cc: [email protected]; Miodrag Dinic; Goran Ferenc; Aleksandar Markovic; Alessandro Zummo; Bo Hu; David S. Miller; Douglas Leung; Greg Kroah-Hartman; James Hogan; Jin Qian; [email protected]; [email protected]; Mauro Carvalho Chehab; Paul Burton; Petar Jovanovic; Raghu Gandham
> Subject: Re: [PATCH v3 2/8] MIPS: ranchu: Add Goldfish RTC driver
>
> Hi,
>
> On 21/07/2017 at 18:53:31 +0200, Aleksandar Markovic wrote:
> > From: Miodrag Dinic <[email protected]>
> >
> > Add device driver for a virtual Goldfish RTC clock.
> >
> > The driver can be built only if CONFIG_MIPS and CONFIG_GOLDFISH are
> > set. The compatible string used by OS for binding the driver is
> > defined as "google,goldfish-rtc".
> >
> > Signed-off-by: Miodrag Dinic <[email protected]>
> > Signed-off-by: Goran Ferenc <[email protected]>
> > Signed-off-by: Aleksandar Markovic <[email protected]>
> > ---
> > MAINTAINERS | 1 +
> > drivers/rtc/Kconfig | 8 ++
> > drivers/rtc/Makefile | 1 +
> > drivers/rtc/rtc-goldfish.c | 233 +++++++++++++++++++++++++++++++++++++++++++++
> > 4 files changed, 243 insertions(+)
> > create mode 100644 drivers/rtc/rtc-goldfish.c
> >
>
> Do you mind fixing the remaining checkpatch --strict issues, the two
> kbuild errors and the warning reported by Julia?
>
> Thanks!
>
>
> --
> Alexandre Belloni, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
--
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com