* Re: [PATCH v12 0/7] Introduce on-chip interconnect API
From: Georgi Djakov @ 2018-12-09 5:15 UTC (permalink / raw)
To: Olof Johansson
Cc: Mark Rutland, sanjayc, Maxime Ripard, Michael Turquette,
daidavid1, Bjorn Andersson, Saravana Kannan, Alexandre Bailon,
Lorenzo Pieralisi, Vincent Guittot, seansw, Kevin Hilman, evgreen,
ksitaraman, DTML, Arnd Bergmann, linux-pm, linux-arm-msm,
Andy Gross, Rob Herring, linux-tegra, Linux ARM Mailing List,
Greg Kroah-Hartman, Rafael J. Wysocki, Doug Anderson,
Amit Kucheria, Linux Kernel Mailing List, Thierry Reding
In-Reply-To: <CAOesGMgZYheG77L_nuNtTA8xY-PtDpseHOKf8kCjusiYsv5Mmw@mail.gmail.com>
Hi Olof,
On 9.12.18 2:33, Olof Johansson wrote:
> Hi Georgi,
>
> On Sat, Dec 8, 2018 at 9:02 AM Georgi Djakov <georgi.djakov@linaro.org> wrote:
>>
>> Modern SoCs have multiple processors and various dedicated cores (video, gpu,
>> graphics, modem). These cores are talking to each other and can generate a
>> lot of data flowing through the on-chip interconnects. These interconnect
>> buses could form different topologies such as crossbar, point to point buses,
>> hierarchical buses or use the network-on-chip concept.
>>
>> These buses have been sized usually to handle use cases with high data
>> throughput but it is not necessary all the time and consume a lot of power.
>> Furthermore, the priority between masters can vary depending on the running
>> use case like video playback or CPU intensive tasks.
>>
>> Having an API to control the requirement of the system in terms of bandwidth
>> and QoS, so we can adapt the interconnect configuration to match those by
>> scaling the frequencies, setting link priority and tuning QoS parameters.
>> This configuration can be a static, one-time operation done at boot for some
>> platforms or a dynamic set of operations that happen at run-time.
>>
>> This patchset introduce a new API to get the requirement and configure the
>> interconnect buses across the entire chipset to fit with the current demand.
>> The API is NOT for changing the performance of the endpoint devices, but only
>> the interconnect path in between them.
>>
>> The API is using a consumer/provider-based model, where the providers are
>> the interconnect buses and the consumers could be various drivers.
>> The consumers request interconnect resources (path) to an endpoint and set
>> the desired constraints on this data flow path. The provider(s) receive
>> requests from consumers and aggregate these requests for all master-slave
>> pairs on that path. Then the providers configure each participating in the
>> topology node according to the requested data flow path, physical links and
>> constraints. The topology could be complicated and multi-tiered and is SoC
>> specific.
>
> This patch series description fails to describe why you need a brand
> new subsystem for this instead of either using one of the current
> ones, or adapting it to fit the needs you have.
>
> Primarily, I'm wondering what's missing from drivers/devfreq to fit your needs?
The devfreq subsystem seems to be more oriented towards a device (like GPU or CPU) that controls the power/performance characteristics by itself and not the performance of other devices. The main problem of using it is that it's using a reactive approach - for example monitor some performance counters and then reconfigure bandwidth after some bottleneck has already occurred. This is suboptimal and might not work well. The new solution does the opposite by allowing drivers to express their needs in advance and be proactive. Devfreq also does not seem suitable for configuring complex, multi-tiered bus topologies and aggregating constraints provided by drivers.
> The series also doesn't seem to provide any kind of indication how
> this will be used by end points. You have one driver for one SoC that
> just contains large tables that are parsed at probe time, but no
> driver hooks anywhere that will actually change any settings depending
> on use cases. Also, the bindings as posted don't seem to include any
> of this kind of information. So it's hard to get a picture of how this
> is going to be used in reality, which makes it hard to judge whether
> it is a good solution or not.
Here are links to some of the examples that are on the mailing list already. I really should have included them in the cover letter.
https://lkml.org/lkml/2018/12/7/584
https://lkml.org/lkml/2018/10/11/499
https://lkml.org/lkml/2018/9/20/986
https://lkml.org/lkml/2018/11/22/772
Platforms drivers for different SoCs are available:
https://lkml.org/lkml/2018/11/17/368
https://lkml.org/lkml/2018/8/10/380
There is a discussion on linux-pm about supporting also Tegra platforms in addition to NXP and Qualcomm.
> Overall, exposing all of this to software is obviously a nightmare
> from a complexity point of view, and one in which it will surely be
> very very hard to make the system behave properly for generic
> workloads beyond benchmark tuning.
It allows the consumer drivers to dynamically express their performance needs in the system in a more fine grained way (if they want/need to) and this helps the system to keep the lowest power profile. This has already been done for a long time in various different kernels shipping with Android devices, for example, and basically every vendor uses a different custom approach. So I believe that this is doing the generalization that was needed.
> Having more information about the above would definitely help tell if
> this whole effort is a step in the right direction, or if it is
> needless complexity that is better solved in other ways.
Sure, hope that this answers your questions.
Thanks,
Georgi
>
> -Olof
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 6/6] sparc: merge 32-bit and 64-bit version of pci.h
From: David Miller @ 2018-12-09 4:58 UTC (permalink / raw)
To: hch
Cc: linux-parisc, ezequiel, vgupta, linux-mips, dri-devel, matwey,
iommu, openrisc, laurent.pinchart, sparclinux, linux-snps-arc,
robin.murphy, linux-arm-kernel, linux-media
In-Reply-To: <20181208174115.16237-7-hch@lst.de>
From: Christoph Hellwig <hch@lst.de>
Date: Sat, 8 Dec 2018 09:41:15 -0800
> There are enough common defintions that a single header seems nicer.
>
> Also drop the pointless <linux/dma-mapping.h> include.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> Acked-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: David S. Miller <davem@davemloft.net>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 5/6] sparc: move the leon PCI memory space comment to <asm/leon.h>
From: David Miller @ 2018-12-09 4:58 UTC (permalink / raw)
To: hch
Cc: linux-parisc, ezequiel, vgupta, linux-mips, dri-devel, matwey,
iommu, openrisc, laurent.pinchart, sparclinux, linux-snps-arc,
robin.murphy, linux-arm-kernel, linux-media
In-Reply-To: <20181208174115.16237-6-hch@lst.de>
From: Christoph Hellwig <hch@lst.de>
Date: Sat, 8 Dec 2018 09:41:14 -0800
> It has nothing to do with the content of the pci.h header.
>
> Suggested by: Sam Ravnborg <sam@ravnborg.org>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: David S. Miller <davem@davemloft.net>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH v3 1/2] dmaengine: 8250_mtk_dma: add Mediatek uart DMA support
From: kbuild test robot @ 2018-12-09 5:07 UTC (permalink / raw)
To: Long Cheng
Cc: Mark Rutland, devicetree, Sean Wang, srv_heupstream,
Greg Kroah-Hartman, Sean Wang, linux-kernel, YT Shen, dmaengine,
Vinod Koul, Rob Herring, linux-mediatek, kbuild-all, linux-serial,
Jiri Slaby, Matthias Brugger, Yingjoe Chen, Dan Williams,
Long Cheng, linux-arm-kernel
In-Reply-To: <1544168842-13860-2-git-send-email-long.cheng@mediatek.com>
[-- Attachment #1: Type: text/plain, Size: 2530 bytes --]
Hi Long,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v4.20-rc5 next-20181207]
[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/Long-Cheng/add-uart-DMA-function/20181208-201933
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=sh
All errors (new ones prefixed by >>):
In file included from include/linux/device.h:23:0,
from include/linux/dmaengine.h:20,
from drivers/dma/mediatek/8250_mtk_dma.c:10:
>> drivers/dma/mediatek/8250_mtk_dma.c:828:21: error: 'mtk_dma_runtime_suspend' undeclared here (not in a function); did you mean '__pm_runtime_suspend'?
SET_RUNTIME_PM_OPS(mtk_dma_runtime_suspend,
^
include/linux/pm.h:354:21: note: in definition of macro 'SET_RUNTIME_PM_OPS'
.runtime_suspend = suspend_fn, \
^~~~~~~~~~
>> drivers/dma/mediatek/8250_mtk_dma.c:829:7: error: 'mtk_dma_runtime_resume' undeclared here (not in a function); did you mean 'mtk_dma_device_resume'?
mtk_dma_runtime_resume, NULL)
^
include/linux/pm.h:355:20: note: in definition of macro 'SET_RUNTIME_PM_OPS'
.runtime_resume = resume_fn, \
^~~~~~~~~
drivers/dma/mediatek/8250_mtk_dma.c:164:13: warning: 'mtk_dma_clk_disable' defined but not used [-Wunused-function]
static void mtk_dma_clk_disable(struct mtk_dmadev *mtkd)
^~~~~~~~~~~~~~~~~~~
drivers/dma/mediatek/8250_mtk_dma.c:151:12: warning: 'mtk_dma_clk_enable' defined but not used [-Wunused-function]
static int mtk_dma_clk_enable(struct mtk_dmadev *mtkd)
^~~~~~~~~~~~~~~~~~
vim +828 drivers/dma/mediatek/8250_mtk_dma.c
825
826 static const struct dev_pm_ops mtk_dma_pm_ops = {
827 SET_SYSTEM_SLEEP_PM_OPS(mtk_dma_suspend, mtk_dma_resume)
> 828 SET_RUNTIME_PM_OPS(mtk_dma_runtime_suspend,
> 829 mtk_dma_runtime_resume, NULL)
830 };
831
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 50415 bytes --]
[-- Attachment #3: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 4/6] sparc: remove not required includes from dma-mapping.h
From: David Miller @ 2018-12-09 4:57 UTC (permalink / raw)
To: hch
Cc: linux-parisc, ezequiel, vgupta, linux-mips, dri-devel, matwey,
iommu, openrisc, laurent.pinchart, sparclinux, linux-snps-arc,
robin.murphy, linux-arm-kernel, linux-media
In-Reply-To: <20181208174115.16237-5-hch@lst.de>
From: Christoph Hellwig <hch@lst.de>
Date: Sat, 8 Dec 2018 09:41:13 -0800
> The only thing we need to explicitly pull in is the defines for the
> CPU type.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: David S. Miller <davem@davemloft.net>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 2/6] sparc: factor the dma coherent mapping into helper
From: David Miller @ 2018-12-09 4:57 UTC (permalink / raw)
To: hch
Cc: linux-parisc, ezequiel, vgupta, linux-mips, dri-devel, matwey,
iommu, openrisc, laurent.pinchart, sparclinux, linux-snps-arc,
robin.murphy, linux-arm-kernel, linux-media
In-Reply-To: <20181208174115.16237-3-hch@lst.de>
From: Christoph Hellwig <hch@lst.de>
Date: Sat, 8 Dec 2018 09:41:11 -0800
> Factor the code to remap memory returned from the DMA coherent allocator
> into two helpers that can be shared by the IOMMU and direct mapping code.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: David S. Miller <davem@davemloft.net>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 1/6] sparc: remove no needed sbus_dma_ops methods
From: David Miller @ 2018-12-09 4:57 UTC (permalink / raw)
To: hch
Cc: linux-parisc, ezequiel, vgupta, linux-mips, dri-devel, matwey,
iommu, openrisc, laurent.pinchart, sparclinux, linux-snps-arc,
robin.murphy, linux-arm-kernel, linux-media
In-Reply-To: <20181208174115.16237-2-hch@lst.de>
From: Christoph Hellwig <hch@lst.de>
Date: Sat, 8 Dec 2018 09:41:10 -0800
> No need to BUG_ON() on the cache maintainance ops - they are no-ops
> by default, and there is nothing in the DMA API contract that prohibits
> calling them on sbus devices (even if such drivers are unlikely to
> ever appear).
>
> Similarly a dma_supported method that always returns 0 is rather
> pointless. The only thing that indicates is that no one ever calls
> the method on sbus devices.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: David S. Miller <davem@davemloft.net>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 3/6] sparc: remove the sparc32_dma_ops indirection
From: David Miller @ 2018-12-09 4:57 UTC (permalink / raw)
To: hch
Cc: linux-parisc, ezequiel, vgupta, linux-mips, dri-devel, matwey,
iommu, openrisc, laurent.pinchart, sparclinux, linux-snps-arc,
robin.murphy, linux-arm-kernel, linux-media
In-Reply-To: <20181208174115.16237-4-hch@lst.de>
From: Christoph Hellwig <hch@lst.de>
Date: Sat, 8 Dec 2018 09:41:12 -0800
> There is no good reason to have a double indirection for the sparc32
> dma ops, so remove the sparc32_dma_ops and define separate dma_map_ops
> instance for the different IOMMU types.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: David S. Miller <davem@davemloft.net>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH v3 1/4] mfd: stmpe: Move ADC related defines to header of mfd
From: Dmitry Torokhov @ 2018-12-09 4:52 UTC (permalink / raw)
To: Lee Jones
Cc: Maxime Coquelin, Alexandre Torgue, marcel.ziswiler, linux-kernel,
stefan, linux-stm32, Philippe Schenker, linux-arm-kernel,
Max Krummenacher, linux-input, Philippe Schenker, jic23
In-Reply-To: <20181128091532.GU4272@dell>
On Wed, Nov 28, 2018 at 09:15:32AM +0000, Lee Jones wrote:
> On Fri, 23 Nov 2018, Philippe Schenker wrote:
>
> > Move defines that are ADC related to the header of the overlying mfd,
> > so they can be used from multiple sub-devices.
> >
> > Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
> > ---
> >
> > Changes in v3:
> > - None
> >
> > Changes in v2:
> > - This is a new added commit. Separate commit for moving the defines out of
> > drivers/input/touchscreen/stmpe-ts.c to overlying mfd-device drivers/mfd/stmpe.c
> > - Pre-fix defines with STMPE_
> >
> > drivers/input/touchscreen/stmpe-ts.c | 34 +++++++++++-----------------
> > include/linux/mfd/stmpe.h | 11 +++++++++
>
> Acked-by: Lee Jones <lee.jones@linaro.org>
The series seem to be heading towards MFD or IIO, so I assume this patch
will be merged through one of these trees.
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Thanks.
--
Dmitry
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH v3 10/10] drm/bridge: cdns: Convert to phy framework
From: kbuild test robot @ 2018-12-09 4:37 UTC (permalink / raw)
To: Maxime Ripard
Cc: Archit Taneja, Krzysztof Witos, Rafal Ciepiela, Andrzej Hajda,
Maxime Ripard, linux-kernel, dri-devel, kbuild-all,
Boris Brezillon, Chen-Yu Tsai, Laurent Pinchart, Thomas Petazzoni,
Kishon Vijay Abraham I, linux-arm-kernel, linux-media
In-Reply-To: <64bda0631842bf10ca140cd562b71feea2f98ff2.1544190837.git-series.maxime.ripard@bootlin.com>
[-- Attachment #1: Type: text/plain, Size: 2711 bytes --]
Hi Maxime,
I love your patch! Yet something to improve:
[auto build test ERROR on phy/next]
[cannot apply to v4.20-rc5]
[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/Maxime-Ripard/phy-Add-MIPI-D-PHY-mode/20181208-034527
base: https://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git next
config: i386-randconfig-s0-12051035 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All errors (new ones prefixed by >>):
drivers/gpu/drm/bridge/cdns-dsi.o: In function `cdns_dsi_check_conf':
>> drivers/gpu/drm/bridge/cdns-dsi.c:612: undefined reference to `phy_mipi_dphy_get_default_config'
vim +612 drivers/gpu/drm/bridge/cdns-dsi.c
596
597 static int cdns_dsi_check_conf(struct cdns_dsi *dsi,
598 const struct drm_display_mode *mode,
599 struct cdns_dsi_cfg *dsi_cfg,
600 bool mode_valid_check)
601 {
602 struct cdns_dsi_output *output = &dsi->output;
603 struct phy_configure_opts_mipi_dphy *phy_cfg = &output->phy_opts.mipi_dphy;
604 unsigned long dsi_hss_hsa_hse_hbp;
605 unsigned int nlanes = output->dev->lanes;
606 int ret;
607
608 ret = cdns_dsi_mode2cfg(dsi, mode, dsi_cfg, mode_valid_check);
609 if (ret)
610 return ret;
611
> 612 phy_mipi_dphy_get_default_config(mode->crtc_clock * 1000,
613 mipi_dsi_pixel_format_to_bpp(output->dev->format),
614 nlanes, phy_cfg);
615
616 ret = cdns_dsi_adjust_phy_config(dsi, dsi_cfg, phy_cfg, mode, mode_valid_check);
617 if (ret)
618 return ret;
619
620 ret = phy_validate(dsi->dphy, PHY_MODE_MIPI_DPHY, 0, &output->phy_opts);
621 if (ret)
622 return ret;
623
624 dsi_hss_hsa_hse_hbp = dsi_cfg->hbp + DSI_HBP_FRAME_OVERHEAD;
625 if (output->dev->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE)
626 dsi_hss_hsa_hse_hbp += dsi_cfg->hsa + DSI_HSA_FRAME_OVERHEAD;
627
628 /*
629 * Make sure DPI(HFP) > DSI(HSS+HSA+HSE+HBP) to guarantee that the FIFO
630 * is empty before we start a receiving a new line on the DPI
631 * interface.
632 */
633 if ((u64)phy_cfg->hs_clk_rate * mode_to_dpi_hfp(mode) * nlanes <
634 (u64)dsi_hss_hsa_hse_hbp *
635 (mode_valid_check ? mode->clock : mode->crtc_clock) * 1000)
636 return -EINVAL;
637
638 return 0;
639 }
640
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30580 bytes --]
[-- Attachment #3: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH] firmware: ti_sci: Change to use DEFINE_SHOW_ATTRIBUTE macro
From: Santosh Shilimkar @ 2018-12-09 4:26 UTC (permalink / raw)
To: Nishanth Menon, Yangtao Li
Cc: t-kristo, linux-kernel, linux-arm-kernel, ssantosh
In-Reply-To: <20181208160404.h7cuuq6jvafoxa32@akan>
On 12/8/2018 8:04 AM, Nishanth Menon wrote:
> On 09:05-20181122, Yangtao Li wrote:
>> Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code.
>>
>> Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
>
> Thanks for the same and sorry for responding so late.
>
> [...]
>
> Santosh,
> could you pick this up? maybe for next rev or so?
>
> Reviewed-by: Nishanth Menon <nm@ti.com>
>
Sure !!
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH v4 1/3] Input: atmel_mxt_ts: Add support for optional regulators
From: Dmitry Torokhov @ 2018-12-09 4:26 UTC (permalink / raw)
To: Paweł Chmiel
Cc: mark.rutland, devicetree, alexandre.belloni, nick, linux-kernel,
robh+dt, linux-input, linux-arm-kernel
In-Reply-To: <20181207142857.15818-2-pawel.mikolaj.chmiel@gmail.com>
On Fri, Dec 07, 2018 at 03:28:55PM +0100, Paweł Chmiel wrote:
> This patch adds optional regulators, which can be used to power
> up touchscreen. After enabling regulators, we need to wait 150msec.
> This value is taken from official driver.
>
> It was tested on Samsung Galaxy i9000 (based on Samsung S5PV210 SOC).
>
> Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
> ---
> Changes from v3:
> - Fix checkpatch issues
> - Drop sentence punctuation from subject of one of patches
>
> Changes from v2:
> - Move code enabling regulators into separate method,
> to make code more readable.
>
> Changes from v1:
> - Enable regulators only if reset_gpio is present.
> - Switch from devm_regulator_get_optional to devm_regulator_get
> ---
> drivers/input/touchscreen/atmel_mxt_ts.c | 65 +++++++++++++++++++++---
> 1 file changed, 59 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
> index d3aacd534e9c..1dc8ad0da5af 100644
> --- a/drivers/input/touchscreen/atmel_mxt_ts.c
> +++ b/drivers/input/touchscreen/atmel_mxt_ts.c
> @@ -27,6 +27,7 @@
> #include <linux/interrupt.h>
> #include <linux/of.h>
> #include <linux/property.h>
> +#include <linux/regulator/consumer.h>
> #include <linux/slab.h>
> #include <linux/gpio/consumer.h>
> #include <asm/unaligned.h>
> @@ -194,10 +195,10 @@ enum t100_type {
>
> /* Delay times */
> #define MXT_BACKUP_TIME 50 /* msec */
> -#define MXT_RESET_GPIO_TIME 20 /* msec */
> #define MXT_RESET_INVALID_CHG 100 /* msec */
> #define MXT_RESET_TIME 200 /* msec */
> #define MXT_RESET_TIMEOUT 3000 /* msec */
> +#define MXT_REGULATOR_DELAY 150 /* msec */
> #define MXT_CRC_TIMEOUT 1000 /* msec */
> #define MXT_FW_RESET_TIME 3000 /* msec */
> #define MXT_FW_CHG_TIMEOUT 300 /* msec */
> @@ -323,6 +324,8 @@ struct mxt_data {
> struct t7_config t7_cfg;
> struct mxt_dbg dbg;
> struct gpio_desc *reset_gpio;
> + struct regulator *vdd_reg;
> + struct regulator *avdd_reg;
>
> /* Cached parameters from object table */
> u16 T5_address;
> @@ -3038,6 +3041,38 @@ static const struct dmi_system_id chromebook_T9_suspend_dmi[] = {
> { }
> };
>
> +static int mxt_regulator_enable(struct mxt_data *data)
> +{
> + int error;
> +
> + if (data->reset_gpio) {
> + error = regulator_enable(data->vdd_reg);
> + if (error) {
> + dev_err(&data->client->dev,
> + "Failed to enable vdd regulator: %d\n", error);
> + return error;
> + }
> +
> + error = regulator_enable(data->avdd_reg);
> + if (error) {
> + dev_err(&data->client->dev,
> + "Failed to enable avdd regulator: %d\n", error);
This leaves vdd regulator enabled.
Thanks.
--
Dmitry
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH v2 01/10] mailbox: Support blocking transfers in atomic context
From: Jassi Brar @ 2018-12-09 1:20 UTC (permalink / raw)
To: Greg KH
Cc: Devicetree List, Mikko Perttunen, mliljeberg, Mikko Perttunen,
talho, Thierry Reding, linux-serial, jslaby, linux-tegra, ppessi,
Jon Hunter, linux-arm-kernel
In-Reply-To: <20181208085016.GA20795@kroah.com>
On Sat, Dec 8, 2018 at 2:50 AM Greg KH <gregkh@linuxfoundation.org> wrote:
>
> On Sat, Dec 08, 2018 at 11:21:41AM +0530, Jassi Brar wrote:
> > On Fri, Dec 7, 2018 at 11:50 AM Mikko Perttunen <cyndis@kapsi.fi> wrote:
> > >
> > > On 07/12/2018 11.26, Jassi Brar wrote:
> > > >> I thought that I could also mitigate 2) by busy looping in the TCU driver,
> > > >> but it turns out that that doesn't work. The reason is that since we are
> > > >> in atomic context with all interrupts disabled, the mailbox won't ever
> > > >> consume any new characters, so the read pointer in the circular buffer
> > > >> won't increment, leaving me with no condition upon which to loop that
> > > >> would work.
> > > >>
> > > > So you want to be able to rely on an emulated console (running on a
> > > > totally different subsystem) to dump development-phase early-boot
> > > > logs? At the cost of legitimizing busy looping in atomic context - one
> > > > random driver messing up the api for ever. Maybe you could have the
> > > > ring buffer in some shmem and only pass the number of valid characters
> > > > in it, to the remote?
> > > >
> > >
> > > I would like to note that this is the one and only console interface
> > > that exists on these systems, for both development phase and production.
> > > Other UARTs are not externally accessible on the systems, or they are
> > > comparatively difficult to access as they aren't intended to be used as
> > > consoles in the system design.
> >
> > > The combination of hardware and firmware
> > > implementing the console is black box from software's point of view
> > > (similarly to any other UART HW). The interface has also been fixed at
> > > an early system design phase, as there are many operating systems
> > > running on these boards, each with their own drivers.
> > >
> > That is the saddest part - someone, who writes test cases for the h/w
> > team and with almost no knowledge of how OSes work, decides how the
> > firmware is going to work and calls it done. Then the Linux is left to
> > deal with the mess as we "can't do anything about it".
>
> That is totally normal, and is how hardware has been almost _always_
> been designed and implemented. Nothing new here at all, it's just the
> life us kernel developers get used to very quickly as it is our job to
> make that hardware work and appear to userspace as something sane and
> universal.
>
Hardware yes, we can't really change much after the fact.
In this case the issue arises from the firmware - TCU's mailbox
protocol implementation. Which usually is just another image loaded
onto the remote master during cold-boot, and should actually be not
that hard to fix/change. Even if other OSes (really?) have adapted, a
pushback right now will help fix atleast the next version, otherwise
the api designer will never know what s/he is doing wrong.
Anyways, thanks for chiming in. I will pull the patchset.
Thanks.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 1/3] arm: Convert arm boot_lock to raw
From: Russell King - ARM Linux @ 2018-12-09 0:41 UTC (permalink / raw)
To: Linus Walleij
Cc: ext Tony Lindgren, viresh kumar, Sebastian Andrzej Siewior,
David Brown, Xu Wei, Manivannan Sadhasivam, linux-samsung-soc,
Viresh Kumar, Krzysztof Kozlowski, Maxime Ripard, Chen-Yu Tsai,
Kukjin Kim, Andy Gross, Arnd Bergmann, linux-arm-msm,
Thomas Gleixner, Linux-OMAP, Linux ARM, Barry Song, Frank Rowand,
Patrice CHOTARD, shiraz hashim, Andreas Färber
In-Reply-To: <CACRpkdbvyimBfCCBOEr84P+_y6+sBkqz0+nmFyYeOJ4cXjsA6A@mail.gmail.com>
On Sun, Dec 09, 2018 at 12:15:35AM +0100, Linus Walleij wrote:
> On Fri, Dec 7, 2018 at 2:00 PM Russell King - ARM Linux
> <linux@armlinux.org.uk> wrote:
>
> > I think the bigger question is why are all these platforms using this.
> > For the ARM development platforms, it's fair as they have no way to
> > power down the CPUs or reset the other CPUs, and the "boot lock" was
> > there originally to prevent the delay calibration going awry. (I've
> > been saying this for years but obviously people like to stuff their
> > fingers in their ears.)
> >
> > It annoys me when people cargo-cult copy code and don't bother trying
> > to understand it, which is shown clearly in your diffstat.
>
> It's a very good point.
>
> I did away with "my" culprit at one point in
> commit c00def71efd9
> "ARM: ux500: simplify secondary CPU boot"
> so people could look at that for an example to see how pointless
> this "pen holding" (what does it even mean, I never figured it
> out?) and boot_lock is.
It's a "holding pen" - in normal parlence, it's a place where livestock
are temporarily confined.
In this case, our livestock are CPUs, and they are temporarily confined
in a tight loop. Early ARM development boards did not have a way to
wake individual secondary CPUs from the boot loader, so the only way to
boot them as Linux wanted was to direct the boot loader to release all
CPUs into a "holding pen" and then release them from the holding pen
one at a time when Linux wanted a secondary CPU to come online.
The early systems also did not have very good bandwidth between the
CPUs and memory, which meant that the CPU requesting another core to
be plugged in would perturb the secondary core's delay calibration to
a noticable amount, and trapping the requesting core in a spinlock
would prevent the delay calibration going awry.
So, really _both_ these things are really really specific to ARM
development platforms, and have nothing to do with modern production
hardware.
No one should _ever_ copy the ARM reference platform SMP hotplug
code. Needing that code is quite simply a sign that the platform is
quite simply not production hardware.
I really don't get how we've ended up with so many copies of this.
Maybe the code isn't being properly reviewed? Maybe the process for
merging new platforms is way too lenient? Whatever, the fact that
we're ending up with new copies of the pen release and boot lock
stuff demonstrably illustrates that the review process for new
platforms is very broken.
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH v12 0/7] Introduce on-chip interconnect API
From: Olof Johansson @ 2018-12-09 0:33 UTC (permalink / raw)
To: Georgi Djakov
Cc: Mark Rutland, sanjayc, Maxime Ripard, Michael Turquette,
daidavid1, Bjorn Andersson, Saravana Kannan, Alexandre Bailon,
Lorenzo Pieralisi, Vincent Guittot, seansw, Kevin Hilman, evgreen,
ksitaraman, DTML, Arnd Bergmann, linux-pm, linux-arm-msm,
Andy Gross, Rob Herring, linux-tegra, Linux ARM Mailing List,
Greg Kroah-Hartman, Rafael J. Wysocki, Doug Anderson,
Amit Kucheria, Linux Kernel Mailing List, Thierry Reding
In-Reply-To: <20181208170216.32555-1-georgi.djakov@linaro.org>
Hi Georgi,
On Sat, Dec 8, 2018 at 9:02 AM Georgi Djakov <georgi.djakov@linaro.org> wrote:
>
> Modern SoCs have multiple processors and various dedicated cores (video, gpu,
> graphics, modem). These cores are talking to each other and can generate a
> lot of data flowing through the on-chip interconnects. These interconnect
> buses could form different topologies such as crossbar, point to point buses,
> hierarchical buses or use the network-on-chip concept.
>
> These buses have been sized usually to handle use cases with high data
> throughput but it is not necessary all the time and consume a lot of power.
> Furthermore, the priority between masters can vary depending on the running
> use case like video playback or CPU intensive tasks.
>
> Having an API to control the requirement of the system in terms of bandwidth
> and QoS, so we can adapt the interconnect configuration to match those by
> scaling the frequencies, setting link priority and tuning QoS parameters.
> This configuration can be a static, one-time operation done at boot for some
> platforms or a dynamic set of operations that happen at run-time.
>
> This patchset introduce a new API to get the requirement and configure the
> interconnect buses across the entire chipset to fit with the current demand.
> The API is NOT for changing the performance of the endpoint devices, but only
> the interconnect path in between them.
>
> The API is using a consumer/provider-based model, where the providers are
> the interconnect buses and the consumers could be various drivers.
> The consumers request interconnect resources (path) to an endpoint and set
> the desired constraints on this data flow path. The provider(s) receive
> requests from consumers and aggregate these requests for all master-slave
> pairs on that path. Then the providers configure each participating in the
> topology node according to the requested data flow path, physical links and
> constraints. The topology could be complicated and multi-tiered and is SoC
> specific.
This patch series description fails to describe why you need a brand
new subsystem for this instead of either using one of the current
ones, or adapting it to fit the needs you have.
Primarily, I'm wondering what's missing from drivers/devfreq to fit your needs?
The series also doesn't seem to provide any kind of indication how
this will be used by end points. You have one driver for one SoC that
just contains large tables that are parsed at probe time, but no
driver hooks anywhere that will actually change any settings depending
on use cases. Also, the bindings as posted don't seem to include any
of this kind of information. So it's hard to get a picture of how this
is going to be used in reality, which makes it hard to judge whether
it is a good solution or not.
Overall, exposing all of this to software is obviously a nightmare
from a complexity point of view, and one in which it will surely be
very very hard to make the system behave properly for generic
workloads beyond benchmark tuning.
Having more information about the above would definitely help tell if
this whole effort is a step in the right direction, or if it is
needless complexity that is better solved in other ways.
-Olof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 1/3] arm: Convert arm boot_lock to raw
From: Linus Walleij @ 2018-12-08 23:15 UTC (permalink / raw)
To: Russell King
Cc: ext Tony Lindgren, viresh kumar, Sebastian Andrzej Siewior,
David Brown, Xu Wei, Manivannan Sadhasivam, linux-samsung-soc,
Viresh Kumar, Krzysztof Kozlowski, Maxime Ripard, Chen-Yu Tsai,
Kukjin Kim, Andy Gross, Arnd Bergmann, linux-arm-msm,
Thomas Gleixner, Linux-OMAP, Linux ARM, Barry Song, Frank Rowand,
Patrice CHOTARD, shiraz hashim, Andreas Färber
In-Reply-To: <20181207130012.GX6920@n2100.armlinux.org.uk>
On Fri, Dec 7, 2018 at 2:00 PM Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> I think the bigger question is why are all these platforms using this.
> For the ARM development platforms, it's fair as they have no way to
> power down the CPUs or reset the other CPUs, and the "boot lock" was
> there originally to prevent the delay calibration going awry. (I've
> been saying this for years but obviously people like to stuff their
> fingers in their ears.)
>
> It annoys me when people cargo-cult copy code and don't bother trying
> to understand it, which is shown clearly in your diffstat.
It's a very good point.
I did away with "my" culprit at one point in
commit c00def71efd9
"ARM: ux500: simplify secondary CPU boot"
so people could look at that for an example to see how pointless
this "pen holding" (what does it even mean, I never figured it
out?) and boot_lock is.
I thought it was just a few platforms around the time the first
SMP systems were arriving that were doing this but as you point
out, recent newcomers are doing this, such as sti, actions,
qcom, hisi, sunxi.
I would encourage other platforms that have this "write some
magic stuff in some register to boot cpu n" to look at
arch/arm/mach-ux500/platsmp.c, something like that should be
all you need, no special assembly, no "pen", no "boot lock".
Look up resources etc in .smp_prepare_cpus(), make sure to
call set_cpu_possible() for each available CPU, then just
kick in the CPU n in .smp_boot_secondary() by doing your platform
magic. Optionally cpu_die()
if you need special code or just put in a wfi() for that. That's all.
Yours,
Linus Walleij
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: Moving ARM dts files
From: Linus Walleij @ 2018-12-08 22:40 UTC (permalink / raw)
To: Rob Herring
Cc: Andrew Lunn, Alexandre Belloni, ext Tony Lindgren, Liviu Dudau,
Masahiro Yamada, thierry.reding@gmail.com, Florian Fainelli,
Kevin Hilman, Gregory Clement, Michal Simek, Krzysztof Kozlowski,
arm-soc, Joel Stanley, Andy Gross,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
Jason Cooper, Simon Horman, Linux ARM, Maxime Coquelin, Shawn Guo,
Andreas Färber, Daniel Mack
In-Reply-To: <CAL_JsqKK4F7QX=B-CcQkMsgN--r3xv6PS4JabzOb4kqfATwtsQ@mail.gmail.com>
On Fri, Dec 7, 2018 at 11:33 PM Rob Herring <robh@kernel.org> wrote:
> Here's an updated mapping filled out with the rest of the platforms
> and using SoC family names in some cases as discussed.
This looks really good to me!
Acked-by: Linus Walleij <linus.walleij@linaro.org>
>The move is
> completely scripted now including include fixups (though any new
> includes could break things). So mainly just need to bikeshed the
> directory mapping.
I did have a serious minute to think over whether this was a
bikeshedding type discussion and the outcome is as unimportant
as the color of some bikeshed. Went as far as to re-read Parsons
(hilarious!) original essay and the first chapter of Wittgensteins
Tractatus. I concluded it was more profound than that for several
reasons.
Yours,
Linus Walleij
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [GIT PULL] Gemini changes for v4.21
From: Linus Walleij @ 2018-12-08 22:33 UTC (permalink / raw)
To: arm-soc; +Cc: Hans Ulli Kroll, Linux ARM
Hi ARM SoC folks,
here are some Gemini patches for v4.21, mostly
related to me getting flash to alternate properly on
two routers and the USB bindings being in place so
we can at least register the blocks. Then some additional
flash-related partitioning and parsing fix-up.
Please pull it in on some appropriate DTS branch!
Yours,
Linus Walleij
The following changes since commit 651022382c7f8da46cb4872a545ee1da6d097d2a:
Linux 4.20-rc1 (2018-11-04 15:37:52 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
tags/gemini-dts
for you to fetch changes up to f18fd0f560eb3b798f9835fbd09fad1a27235e13:
ARM: dts: Bump Gemini platforms to use 100ms debounce (2018-12-08
23:21:49 +0100)
----------------------------------------------------------------
Gemini DTS updates for v4.21:
- Fix the erroneous partition table on D-Link DIR-685
- Multiplex flash usage with other usage using pin control
handling (merged to the MTD tree)
- Use the RedBoot partition parser on SQ201
- Add the USB blocks (DT bindings merged in the last merge
window)
- Bump the debounce times a bit to avoid bouncing
----------------------------------------------------------------
Linus Walleij (5):
ARM: dts: Fix up the D-Link DIR-685 MTD partition info
ARM: dts: Enable Gemini flash access
ARM: dts: Fix up SQ201 flash access
ARM: dts: Add the FOTG210 USB host to Gemini boards
ARM: dts: Bump Gemini platforms to use 100ms debounce
arch/arm/boot/dts/gemini-dlink-dir-685.dts | 63 +++++++++++++++---------
arch/arm/boot/dts/gemini-dlink-dns-313.dts | 2 +-
arch/arm/boot/dts/gemini-nas4220b.dts | 12 ++++-
arch/arm/boot/dts/gemini-rut1xx.dts | 22 ++++++++-
arch/arm/boot/dts/gemini-sl93512r.dts | 8 +++
arch/arm/boot/dts/gemini-sq201.dts | 78 ++++++++++++------------------
arch/arm/boot/dts/gemini-wbd111.dts | 10 +++-
arch/arm/boot/dts/gemini-wbd222.dts | 10 +++-
arch/arm/boot/dts/gemini.dtsi | 32 ++++++++++++
9 files changed, 161 insertions(+), 76 deletions(-)
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [PATCH 2/5] ARM: dts: Enable Gemini flash access
From: Linus Walleij @ 2018-12-08 22:22 UTC (permalink / raw)
To: linux-arm-kernel, Hans Ulli Kroll, Florian Fainelli
Cc: Andrew Lunn, Linus Walleij, LEDE Development List
In-Reply-To: <20181208222301.5303-1-linus.walleij@linaro.org>
Some Gemini platforms have a parallel NOR flash which conflicts
with use cases reusing some of the flash lines (such as CE1)
for GPIO.
Fix this on the D-Link DIR-685 and Itian SQ201 by creating
"enabled" and "disabled" states for the flash pin control
handle, and rely on the flash handling code to switch this
in and out when accessed so these lines can be used
for GPIO when flash is not accessed, and enable flash
access.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/boot/dts/gemini-dlink-dir-685.dts | 35 +++++++++++++++-------
arch/arm/boot/dts/gemini-sq201.dts | 31 ++++++++++---------
2 files changed, 41 insertions(+), 25 deletions(-)
diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
index 502a361d1fe9..318e9b2ba7dc 100644
--- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
+++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
@@ -64,7 +64,6 @@
gpio-sck = <&gpio1 5 GPIO_ACTIVE_HIGH>;
gpio-miso = <&gpio1 8 GPIO_ACTIVE_HIGH>;
gpio-mosi = <&gpio1 7 GPIO_ACTIVE_HIGH>;
- /* Collides with pflash CE1, not so cool */
cs-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
num-chipselects = <1>;
@@ -253,15 +252,18 @@
soc {
flash@30000000 {
/*
- * 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.
+ * Flash access collides with the Chip Enable signal for
+ * the display panel, that reuse the parallel flash Chip
+ * Select 1 (CS1). We switch the pin control state so we
+ * enable these pins for flash access only when we need
+ * then, and when disabled they can be used for GPIO which
+ * is what the display panel needs.
*/
- /* status = "okay"; */
+ status = "okay";
+ pinctrl-names = "enabled", "disabled";
+ pinctrl-0 = <&pflash_default_pins>;
+ pinctrl-1 = <&pflash_disabled_pins>;
+
/* 32MB of flash */
reg = <0x30000000 0x02000000>;
@@ -327,7 +329,6 @@
"gpio0cgrp",
"gpio0egrp",
"gpio0fgrp",
- "gpio0ggrp",
"gpio0hgrp";
};
};
@@ -342,6 +343,18 @@
groups = "gpio1bgrp";
};
};
+ /*
+ * These GPIO groups will be mapped in over some
+ * of the flash pins when the flash is not in
+ * active use.
+ */
+ pflash_disabled_pins: pinctrl-pflash-disabled {
+ mux {
+ function = "gpio0";
+ groups = "gpio0ggrp", "gpio0igrp", "gpio0jgrp",
+ "gpio0kgrp";
+ };
+ };
pinctrl-gmii {
mux {
function = "gmii";
@@ -430,7 +443,7 @@
};
display-controller@6a000000 {
- status = "okay";
+ status = "disabled";
port@0 {
reg = <0>;
diff --git a/arch/arm/boot/dts/gemini-sq201.dts b/arch/arm/boot/dts/gemini-sq201.dts
index 3787cf3763c4..af4be6ecb02c 100644
--- a/arch/arm/boot/dts/gemini-sq201.dts
+++ b/arch/arm/boot/dts/gemini-sq201.dts
@@ -41,14 +41,12 @@
compatible = "gpio-leds";
led-green-info {
label = "sq201:green:info";
- /* Conflict with parallel flash */
gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
default-state = "on";
linux,default-trigger = "heartbeat";
};
led-green-usb {
label = "sq201:green:usb";
- /* Conflict with parallel and NAND flash */
gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
default-state = "off";
linux,default-trigger = "usb-host";
@@ -126,15 +124,10 @@
soc {
flash@30000000 {
- /*
- * Flash access can be enabled, with the side effect
- * of disabling access to GPIO LED on GPIO0[20] which
- * reuse one of the parallel flash chip select lines.
- * Also the default firmware on the machine has the
- * problem that since it uses the flash, the two LEDS
- * on the right become numb.
- */
- /* status = "okay"; */
+ status = "okay";
+ pinctrl-names = "enabled", "disabled";
+ pinctrl-0 = <&pflash_default_pins>;
+ pinctrl-1 = <&pflash_disabled_pins>;
/* 16MB of flash */
reg = <0x30000000 0x01000000>;
@@ -184,9 +177,7 @@
mux {
function = "gpio0";
groups = "gpio0fgrp",
- "gpio0ggrp",
- "gpio0hgrp",
- "gpio0kgrp";
+ "gpio0hgrp";
};
};
/*
@@ -199,6 +190,18 @@
groups = "gpio1dgrp";
};
};
+ /*
+ * These GPIO groups will be mapped in over some
+ * of the flash pins when the flash is not in
+ * active use.
+ */
+ pflash_disabled_pins: pinctrl-pflash-disabled {
+ mux {
+ function = "gpio0";
+ groups = "gpio0ggrp", "gpio0igrp", "gpio0jgrp",
+ "gpio0kgrp";
+ };
+ };
pinctrl-gmii {
mux {
function = "gmii";
--
2.19.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH 4/5] ARM: dts: Add the FOTG210 USB host to Gemini boards
From: Linus Walleij @ 2018-12-08 22:23 UTC (permalink / raw)
To: linux-arm-kernel, Hans Ulli Kroll, Florian Fainelli
Cc: Andrew Lunn, Linus Walleij, LEDE Development List
In-Reply-To: <20181208222301.5303-1-linus.walleij@linaro.org>
This adds the FOTG210 USB host controller to the Gemini
device trees. In the main SoC DTSI it is flagged as disabled
and then it is selectively enabled on the devices that utilize
it.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/boot/dts/gemini-dlink-dir-685.dts | 8 ++++++
arch/arm/boot/dts/gemini-nas4220b.dts | 8 ++++++
arch/arm/boot/dts/gemini-rut1xx.dts | 20 ++++++++++++++
arch/arm/boot/dts/gemini-sl93512r.dts | 8 ++++++
arch/arm/boot/dts/gemini-sq201.dts | 8 ++++++
arch/arm/boot/dts/gemini-wbd111.dts | 8 ++++++
arch/arm/boot/dts/gemini-wbd222.dts | 8 ++++++
arch/arm/boot/dts/gemini.dtsi | 32 ++++++++++++++++++++++
8 files changed, 100 insertions(+)
diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
index 318e9b2ba7dc..5e8e96458903 100644
--- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
+++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
@@ -452,5 +452,13 @@
};
};
};
+
+ usb@68000000 {
+ status = "okay";
+ };
+
+ usb@69000000 {
+ status = "okay";
+ };
};
};
diff --git a/arch/arm/boot/dts/gemini-nas4220b.dts b/arch/arm/boot/dts/gemini-nas4220b.dts
index 963ea890c87f..53b65ebe8454 100644
--- a/arch/arm/boot/dts/gemini-nas4220b.dts
+++ b/arch/arm/boot/dts/gemini-nas4220b.dts
@@ -204,5 +204,13 @@
ata@63400000 {
status = "okay";
};
+
+ usb@68000000 {
+ status = "okay";
+ };
+
+ usb@69000000 {
+ status = "okay";
+ };
};
};
diff --git a/arch/arm/boot/dts/gemini-rut1xx.dts b/arch/arm/boot/dts/gemini-rut1xx.dts
index eb4f0bf074da..b2354c215a84 100644
--- a/arch/arm/boot/dts/gemini-rut1xx.dts
+++ b/arch/arm/boot/dts/gemini-rut1xx.dts
@@ -124,5 +124,25 @@
/* Not used in this platform */
};
};
+
+ ethernet@60000000 {
+ status = "okay";
+
+ ethernet-port@0 {
+ phy-mode = "rgmii";
+ phy-handle = <&phy0>;
+ };
+ ethernet-port@1 {
+ /* Not used in this platform */
+ };
+ };
+
+ usb@68000000 {
+ status = "okay";
+ };
+
+ usb@69000000 {
+ status = "okay";
+ };
};
};
diff --git a/arch/arm/boot/dts/gemini-sl93512r.dts b/arch/arm/boot/dts/gemini-sl93512r.dts
index ebefb7297379..2bb953440793 100644
--- a/arch/arm/boot/dts/gemini-sl93512r.dts
+++ b/arch/arm/boot/dts/gemini-sl93512r.dts
@@ -324,5 +324,13 @@
ata@63400000 {
status = "okay";
};
+
+ usb@68000000 {
+ status = "okay";
+ };
+
+ usb@69000000 {
+ status = "okay";
+ };
};
};
diff --git a/arch/arm/boot/dts/gemini-sq201.dts b/arch/arm/boot/dts/gemini-sq201.dts
index c5bb24102b75..ecbc27d93b2d 100644
--- a/arch/arm/boot/dts/gemini-sq201.dts
+++ b/arch/arm/boot/dts/gemini-sq201.dts
@@ -292,5 +292,13 @@
ata@63000000 {
status = "okay";
};
+
+ usb@68000000 {
+ status = "okay";
+ };
+
+ usb@69000000 {
+ status = "okay";
+ };
};
};
diff --git a/arch/arm/boot/dts/gemini-wbd111.dts b/arch/arm/boot/dts/gemini-wbd111.dts
index 29af86cd10f7..6831d2aed17a 100644
--- a/arch/arm/boot/dts/gemini-wbd111.dts
+++ b/arch/arm/boot/dts/gemini-wbd111.dts
@@ -171,5 +171,13 @@
/* Not used in this platform */
};
};
+
+ usb@68000000 {
+ status = "okay";
+ };
+
+ usb@69000000 {
+ status = "okay";
+ };
};
};
diff --git a/arch/arm/boot/dts/gemini-wbd222.dts b/arch/arm/boot/dts/gemini-wbd222.dts
index 24e6ae3616f7..ed38d48ef5f6 100644
--- a/arch/arm/boot/dts/gemini-wbd222.dts
+++ b/arch/arm/boot/dts/gemini-wbd222.dts
@@ -183,5 +183,13 @@
phy-handle = <&phy1>;
};
};
+
+ usb@68000000 {
+ status = "okay";
+ };
+
+ usb@69000000 {
+ status = "okay";
+ };
};
};
diff --git a/arch/arm/boot/dts/gemini.dtsi b/arch/arm/boot/dts/gemini.dtsi
index eb752e9495de..8cf67b11751f 100644
--- a/arch/arm/boot/dts/gemini.dtsi
+++ b/arch/arm/boot/dts/gemini.dtsi
@@ -409,5 +409,37 @@
#size-cells = <0>;
status = "disabled";
};
+
+ usb@68000000 {
+ compatible = "cortina,gemini-usb", "faraday,fotg210";
+ reg = <0x68000000 0x1000>;
+ interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
+ resets = <&syscon GEMINI_RESET_USB0>;
+ clocks = <&syscon GEMINI_CLK_GATE_USB0>;
+ clock-names = "PCLK";
+ /*
+ * This will claim pins for USB0 and USB1 at the same
+ * time as they are using some common pins. If you for
+ * some reason have a system using USB1 at 96000000 but
+ * NOT using USB0 at 68000000 you wll have to add the
+ * usb_default_pins to the USB controller at 96000000
+ * in your .dts for the board.
+ */
+ pinctrl-names = "default";
+ pinctrl-0 = <&usb_default_pins>;
+ syscon = <&syscon>;
+ status = "disabled";
+ };
+
+ usb@69000000 {
+ compatible = "cortina,gemini-usb", "faraday,fotg210";
+ reg = <0x69000000 0x1000>;
+ interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
+ resets = <&syscon GEMINI_RESET_USB1>;
+ clocks = <&syscon GEMINI_CLK_GATE_USB1>;
+ clock-names = "PCLK";
+ syscon = <&syscon>;
+ status = "disabled";
+ };
};
};
--
2.19.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH 3/5] ARM: dts: Fix up SQ201 flash access
From: Linus Walleij @ 2018-12-08 22:22 UTC (permalink / raw)
To: linux-arm-kernel, Hans Ulli Kroll, Florian Fainelli
Cc: Andrew Lunn, Linus Walleij, LEDE Development List
In-Reply-To: <20181208222301.5303-1-linus.walleij@linaro.org>
This sets the partition information on the SQ201 to be read
out from the RedBoot partition table, removes the static
partition table and sets our boot options to mount root from
/dev/mtdblock2 where the squashfs+JFFS2 resides.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/boot/dts/gemini-sq201.dts | 37 ++++--------------------------
1 file changed, 5 insertions(+), 32 deletions(-)
diff --git a/arch/arm/boot/dts/gemini-sq201.dts b/arch/arm/boot/dts/gemini-sq201.dts
index af4be6ecb02c..c5bb24102b75 100644
--- a/arch/arm/boot/dts/gemini-sq201.dts
+++ b/arch/arm/boot/dts/gemini-sq201.dts
@@ -20,7 +20,7 @@
};
chosen {
- bootargs = "console=ttyS0,115200n8";
+ bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=squashfs,jffs2 rootwait";
stdout-path = &uart0;
};
@@ -131,37 +131,10 @@
/* 16MB of flash */
reg = <0x30000000 0x01000000>;
- partition@0 {
- label = "RedBoot";
- reg = <0x00000000 0x00120000>;
- read-only;
- };
- partition@120000 {
- label = "Kernel";
- reg = <0x00120000 0x00200000>;
- };
- partition@320000 {
- label = "Ramdisk";
- reg = <0x00320000 0x00600000>;
- };
- partition@920000 {
- label = "Application";
- reg = <0x00920000 0x00600000>;
- };
- partition@f20000 {
- label = "VCTL";
- reg = <0x00f20000 0x00020000>;
- read-only;
- };
- partition@f40000 {
- label = "CurConf";
- reg = <0x00f40000 0x000a0000>;
- read-only;
- };
- partition@fe0000 {
- label = "FIS directory";
- reg = <0x00fe0000 0x00020000>;
- read-only;
+ partitions {
+ compatible = "redboot-fis";
+ /* Eraseblock at 0xfe0000 */
+ fis-index-block = <0x1fc>;
};
};
--
2.19.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH 5/5] ARM: dts: Bump Gemini platforms to use 100ms debounce
From: Linus Walleij @ 2018-12-08 22:23 UTC (permalink / raw)
To: linux-arm-kernel, Hans Ulli Kroll, Florian Fainelli
Cc: Andrew Lunn, Linus Walleij, LEDE Development List
In-Reply-To: <20181208222301.5303-1-linus.walleij@linaro.org>
The 50ms debounce is too low and give ghost bounces on some
platforms. Bump it to 100ms to make it stable.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/boot/dts/gemini-dlink-dir-685.dts | 4 ++--
arch/arm/boot/dts/gemini-dlink-dns-313.dts | 2 +-
arch/arm/boot/dts/gemini-nas4220b.dts | 4 ++--
arch/arm/boot/dts/gemini-rut1xx.dts | 2 +-
arch/arm/boot/dts/gemini-sq201.dts | 2 +-
arch/arm/boot/dts/gemini-wbd111.dts | 2 +-
arch/arm/boot/dts/gemini-wbd222.dts | 2 +-
7 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
index 5e8e96458903..cc0c3cf89eaa 100644
--- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
+++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
@@ -28,7 +28,7 @@
compatible = "gpio-keys";
button-esc {
- debounce-interval = <50>;
+ debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_ESC>;
label = "reset";
@@ -36,7 +36,7 @@
gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
};
button-eject {
- debounce-interval = <50>;
+ debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_EJECTCD>;
label = "unmount";
diff --git a/arch/arm/boot/dts/gemini-dlink-dns-313.dts b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
index d1329322b968..b12504e10f0b 100644
--- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts
+++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
@@ -34,7 +34,7 @@
compatible = "gpio-keys";
button-esc {
- debounce-interval = <50>;
+ debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_ESC>;
label = "reset";
diff --git a/arch/arm/boot/dts/gemini-nas4220b.dts b/arch/arm/boot/dts/gemini-nas4220b.dts
index 53b65ebe8454..f4535d635f3b 100644
--- a/arch/arm/boot/dts/gemini-nas4220b.dts
+++ b/arch/arm/boot/dts/gemini-nas4220b.dts
@@ -28,7 +28,7 @@
compatible = "gpio-keys";
button-setup {
- debounce-interval = <50>;
+ debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_SETUP>;
label = "Backup button";
@@ -36,7 +36,7 @@
gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
};
button-restart {
- debounce-interval = <50>;
+ debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_RESTART>;
label = "Softreset button";
diff --git a/arch/arm/boot/dts/gemini-rut1xx.dts b/arch/arm/boot/dts/gemini-rut1xx.dts
index b2354c215a84..9611ddf06792 100644
--- a/arch/arm/boot/dts/gemini-rut1xx.dts
+++ b/arch/arm/boot/dts/gemini-rut1xx.dts
@@ -28,7 +28,7 @@
compatible = "gpio-keys";
button-setup {
- debounce-interval = <50>;
+ debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_SETUP>;
label = "Reset to defaults";
diff --git a/arch/arm/boot/dts/gemini-sq201.dts b/arch/arm/boot/dts/gemini-sq201.dts
index ecbc27d93b2d..239dfacaae4d 100644
--- a/arch/arm/boot/dts/gemini-sq201.dts
+++ b/arch/arm/boot/dts/gemini-sq201.dts
@@ -28,7 +28,7 @@
compatible = "gpio-keys";
button-setup {
- debounce-interval = <50>;
+ debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_SETUP>;
label = "factory reset";
diff --git a/arch/arm/boot/dts/gemini-wbd111.dts b/arch/arm/boot/dts/gemini-wbd111.dts
index 6831d2aed17a..3a2761dd460f 100644
--- a/arch/arm/boot/dts/gemini-wbd111.dts
+++ b/arch/arm/boot/dts/gemini-wbd111.dts
@@ -29,7 +29,7 @@
compatible = "gpio-keys";
button-setup {
- debounce-interval = <50>;
+ debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_SETUP>;
label = "reset";
diff --git a/arch/arm/boot/dts/gemini-wbd222.dts b/arch/arm/boot/dts/gemini-wbd222.dts
index ed38d48ef5f6..52b4dbc0c072 100644
--- a/arch/arm/boot/dts/gemini-wbd222.dts
+++ b/arch/arm/boot/dts/gemini-wbd222.dts
@@ -28,7 +28,7 @@
compatible = "gpio-keys";
button-setup {
- debounce-interval = <50>;
+ debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_SETUP>;
label = "reset";
--
2.19.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH 1/5] ARM: dts: Fix up the D-Link DIR-685 MTD partition info
From: Linus Walleij @ 2018-12-08 22:22 UTC (permalink / raw)
To: linux-arm-kernel, Hans Ulli Kroll, Florian Fainelli
Cc: Andrew Lunn, Linus Walleij, LEDE Development List
The vendor firmware was analyzed to get the right idea about
this flash layout. /proc/mtd contains:
dev: size erasesize name
mtd0: 01e7ff40 00020000 "rootfs"
mtd1: 01f40000 00020000 "upgrade"
mtd2: 00040000 00020000 "rgdb"
mtd3: 00020000 00020000 "nvram"
mtd4: 00040000 00020000 "RedBoot"
mtd5: 00020000 00020000 "LangPack"
mtd6: 02000000 00020000 "flash"
Here "flash" is obviously the whole device and we know "rootfs"
is a bogus hack to point to a squashfs rootfs inside of the main
"upgrade partition". We know "RedBoot" is the first 0x40000 of
the flash and the "upgrade" partition follows from 0x40000 to
0x1f8000. So we have mtd0, 1, 4 and 6 covered.
Remains:
mtd2: 00040000 00020000 "rgdb"
mtd3: 00020000 00020000 "nvram"
mtd5: 00020000 00020000 "LangPack"
Inspecting the flash at 0x1f8000 and 0x1fa000 reveals each of
these starting with "RGCFG1" so we assume 0x1f8000-1fbfff is
"rgdb" of 0x40000.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/boot/dts/gemini-dlink-dir-685.dts | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
index 6f258b50eb44..502a361d1fe9 100644
--- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
+++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
@@ -274,20 +274,16 @@
read-only;
};
/*
- * Between the boot loader and the rootfs is the kernel
- * in a custom Storlink format flashed from the boot
- * menu. The rootfs is in squashfs format.
+ * This firmware image contains the kernel catenated
+ * with the squashfs root filesystem. For some reason
+ * this is called "upgrade" on the vendor system.
*/
- partition@1800c0 {
- label = "rootfs";
- reg = <0x001800c0 0x01dbff40>;
- read-only;
- };
- partition@1f40000 {
+ partition@40000 {
label = "upgrade";
- reg = <0x01f40000 0x00040000>;
+ reg = <0x00040000 0x01f40000>;
read-only;
};
+ /* RGDB, Residental Gateway Database? */
partition@1f80000 {
label = "rgdb";
reg = <0x01f80000 0x00040000>;
--
2.19.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* Re: dma_declare_coherent_memory on main memory
From: Rob Landley @ 2018-12-08 21:25 UTC (permalink / raw)
To: Christoph Hellwig, Shawn Guo, Sascha Hauer, Fabio Estevam
Cc: iommu, linux-sh, linux-imx, linux-arm-kernel, linux-kernel
In-Reply-To: <20181207153432.GA24917@lst.de>
On 12/7/18 9:34 AM, Christoph Hellwig wrote:
> Hi all,
>
> the ARM imx27/31 ports and various sh boards use
> dma_declare_coherent_memory on main memory taken from the memblock
> allocator.
>
> Is there any good reason these couldn't be switched to CMA areas?
> Getting rid of these magic dma_declare_coherent_memory area would
> help making the dma allocator a lot simpler.
Not that I know of?
Rob
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [PATCH] ARM: dts: exynos: Add all CPUs in cooling maps for odroid-X2.
From: Markus Reichl @ 2018-12-08 20:56 UTC (permalink / raw)
To: krzk
Cc: mark.rutland, devicetree, linux-samsung-soc, Markus Reichl,
robh+dt, kgene, linux-arm-kernel
Patch [1] ARM: dts: exynos: Add all CPUs in cooling maps did not
update exynos4412-prime.dtsi. This is not a problem with odroid-U3
using own map (with fan) but with odroid-X2 relying only on
exynos4412-prime.dtsi.
[1] https://patchwork.kernel.org/patch/10685765/
Signed-off-by: Markus Reichl <m.reichl@fivetechno.de>
---
arch/arm/boot/dts/exynos4412-prime.dtsi | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/exynos4412-prime.dtsi b/arch/arm/boot/dts/exynos4412-prime.dtsi
index 8e7a7fb98124..d83fbd4e434c 100644
--- a/arch/arm/boot/dts/exynos4412-prime.dtsi
+++ b/arch/arm/boot/dts/exynos4412-prime.dtsi
@@ -30,9 +30,11 @@
};
&cooling_map0 {
- cooling-device = <&cpu0 9 9>;
+ cooling-device = <&cpu0 9 9>, <&cpu1 9 9>,
+ <&cpu2 9 9>, <&cpu3 9 9>;
};
&cooling_map1 {
- cooling-device = <&cpu0 15 15>;
+ cooling-device = <&cpu0 15 15>, <&cpu1 15 15>,
+ <&cpu2 15 15>, <&cpu3 15 15>;
};
--
2.11.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ 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