pollute the library and not really satisfy anyone?
I was also irritated re-inventing the wheel here, but the problem is --
millions of people out there have their startup scripts and uboot environments
for phram, who expect this just to work with the next kernel upgrade...
--
Best regards,
Alexan
de
array. Otherwise node will not be correctly assigned and i2c-mux will
have problems selecting right adapter for the multiplexed devices.
> Signed-off-by: Ionut Nicu
So, for the code itself
Acked-by: Alexander Sverdlin
> ---
> drivers/i2c/muxes/i2c-mux-gpio.c |4 ++--
> 1 fi
ll crash
> attempting to do so on the nodes from FDT -- they are not allocated via
> kzmalloc().
>
> Signed-off-by: Wladislav Wiebe
Acked-by: Alexander Sverdlin
> ---
> drivers/of/fdt.c |2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/o
it() to check for this flag in
> the same way regmap_bulk_read() does, but I think this is pretty ugly.
>
> What do you think about moving the check to use_single_rw inside
> _regmap_raw_read(), right where the bus accesses are done?
>
> Something like in the following patch:
Acke
earlycon implementation used "unsigned long" internally, but there are systems
(ARM with LPAE) where sizeof(unsigned long) == 4 and uart is mapped beyond 4GiB
address range.
Switch to resource_size_t internally and replace obsoleted simple_strtoul() with
kstrtoull().
Signed-off-by:
O IP block will need to "select HAS_RAPIDIO"
> in the platform-/machine-specific "config ARCH_*" Kconfig entry.
>
> Cc: Andrew Morton
> Cc: Alexander Sverdlin
> Cc: John Paul Walters
> Cc: linux-m...@linux-mips.org
> Cc: linux-kernel@vger.kernel.org
> S
#x27;ve only tested startup though. Therefore,
Tested-by: Alexander Sverdlin
I've noticed one positive effect I cannot explain -- with almost the same
physical memory map I observe almost 2 megabytes more available memory
after startup:
without patches:
root@(none):~ >free
On 01/02/18 17:24, SF Markus Elfring wrote:
> Omit an extra message for a memory allocation failure in this function.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring
Reviewed-by: Alexander Sverdlin
> ---
> drivers/i2c/mu
)
[] (load_module) from [] (SyS_finit_module+0x59/0x84)
[] (SyS_finit_module) from [] (ret_fast_syscall+0x1/0x18)
---[ end trace e1b64ced7a89adcd ]---
ftrace failed to modify [] 0xe9ef7006
actual: 02:f0:3b:fa
ftrace record flags: 0
(0) expected tramp: c0314265
Signed-off-by: Alexander Sverdlin
---
arch/arm
CE-related handling code
if ARRAY_SIZE(fixed_plts) == 0
v3:
* Only extend struct dyn_arch_ftrace when ARM_MODULE_PLTS is enabled
v2:
* As suggested by Steven Rostedt, refrain from tree-wide API modification,
save module pointer in struct dyn_arch_ftrace instead (PowerPC way)
Alexander Sverdlin
No functional change, later it will be re-used in several files.
Signed-off-by: Alexander Sverdlin
---
arch/arm/include/asm/module.h | 9 +
arch/arm/kernel/module-plts.c | 9 -
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/arch/arm/include/asm/module.h b/arch
igned-off-by: Alexander Sverdlin
---
scripts/recordmcount.c | 17 +
1 file changed, 17 insertions(+)
diff --git a/scripts/recordmcount.c b/scripts/recordmcount.c
index 16e086d..a4888e9 100644
--- a/scripts/recordmcount.c
+++ b/scripts/recordmcount.c
@@ -53,6 +53,10 @@
#define R_A
_dma_req structure members are initialized in
> rio_dma_transfer() immediately after the request structure gets
> allocated.
>
> Signed-off-by: Ioan Nicu
Tested-by: Alexander Sverdlin
> ---
> drivers/rapidio/devices/rio_mport_cdev.c | 19 +--
> 1 file changed,
Hello Ard,
On 13/03/18 18:32, Alexander Sverdlin wrote:
>>>>> u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val)
>>>>> {
>>>>> struct mod_plt_sec *
)
[] (load_module) from [] (SyS_finit_module+0x59/0x84)
[] (SyS_finit_module) from [] (ret_fast_syscall+0x1/0x18)
---[ end trace e1b64ced7a89adcd ]---
ftrace failed to modify [] 0xe9ef7006
actual: 02:f0:3b:fa
ftrace record flags: 0
(0) expected tramp: c0314265
Signed-off-by: Alexander Sverdlin
---
arch/arm
dyn_arch_ftrace when ARM_MODULE_PLTS is enabled
v2:
* As suggested by Steven Rostedt, refrain from tree-wide API modification,
save module pointer in struct dyn_arch_ftrace instead (PowerPC way)
Alexander Sverdlin (2):
ARM: PLT: Move struct plt_entries definition to header
ARM: ftrace: Add
No functional change, later it will be re-used in several files.
Change-Id: Icfa32669b3582d713b3ad680c25620d3d4844bdd
Signed-off-by: Alexander Sverdlin
---
arch/arm/include/asm/module.h | 9 +
arch/arm/kernel/module-plts.c | 9 -
2 files changed, 9 insertions(+), 9 deletions
}
>> + plt = pltsec->plt_ent;
>>
>> - struct plt_entries *plt = (struct plt_entries *)pltsec->plt->sh_addr;
>> - int idx = 0;
>> + idx = ARRAY_SIZE(fixed_plts);
>> + while (idx)
>> + if (plt->lit[--idx] == val)
>> + return (u32)&plt->ldr[idx];
>>
> Same here.
--
Best regards,
Alexander Sverdlin.
)
[] (load_module) from [] (SyS_finit_module+0x59/0x84)
[] (SyS_finit_module) from [] (ret_fast_syscall+0x1/0x18)
---[ end trace e1b64ced7a89adcd ]---
ftrace failed to modify [] 0xe9ef7006
actual: 02:f0:3b:fa
ftrace record flags: 0
(0) expected tramp: c0314265
Signed-off-by: Alexander Sverdlin
---
arch/arm
n from tree-wide API modification,
save module pointer in struct dyn_arch_ftrace instead (PowerPC way)
Alexander Sverdlin (2):
ARM: PLT: Move struct plt_entries definition to header
ARM: ftrace: Add MODULE_PLTS support
arch/arm/include/asm/ftrace.h | 3 +++
arch/arm/include/asm/module.h |
No functional change, later it will be re-used in several files.
Signed-off-by: Alexander Sverdlin
---
arch/arm/include/asm/module.h | 9 +
arch/arm/kernel/module-plts.c | 9 -
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/arch/arm/include/asm/module.h b/arch
life
time of the module.
>> + if (!pltsec->plt_count)
>> + prealloc_fixed(pltsec, plt);
I'll prepare v5 based on your other comments.
--
Best regards,
Alexander Sverdlin.
t's a problem.
>
> This means that you are relying on get_module_plt() being called at
> least once at module load time, which is not guaranteed.
This is indeed guaranteed. For FTRACE use case. If it's being called from
FTRACE in
run time, this would mean there were long calls in this module section, which in
turn means, get_module_plt() was called at least once for this module and this
section.
This doesn't hold in general, though.
In any case, if you insist, I can try to rework the whole stuff implementing
module_finalize().
--
Best regards,
Alexander Sverdlin.
On 13/03/18 18:39, Ard Biesheuvel wrote:
> if (IS_ENABLED(CONFIG_ARM_MODULE_PLTS))
> module_plt_alloc_fixed();
Do you consider this a legal C code if without module-plts.o the function would
not exist at all?
That's too much relying on optimizer I think...
--
Best regards
, symbol
references, etc). Thus, you still have to use an #ifdef if the code inside the
block references symbols that will not exist if the condition is not met."
But we can of course ignore it.
--
Best regards,
Alexander Sverdlin.
hold in general, though.
>>
>> In any case, if you insist, I can try to rework the whole stuff implementing
>> module_finalize().
>>
> I think it would be much better to use the module_finalize() hook for
> this, given that it is only called once already, and all the data you
> need is still available.
No problem, but some kind of (*) block would still be required, because
get_module_plt() has to work after module_finalize() as well as *before* it.
So before module_finalize() we would have to dereference pltsec->plt->sh_addr
conditionally.
> Note that ARM already has such a function, so you'll need to add a
> call there, i.e.,
>
> if (IS_ENABLED(CONFIG_ARM_MODULE_PLTS))
> module_plt_alloc_fixed();
>
> or something like that. The CONFIG_FTRACE dependency can be kept local
> to module-plts.c
>
--
Best regards,
Alexander Sverdlin.
Hi!
On 09/10/2018 02:54, Arnaldo Carvalho de Melo wrote:
> From: Arnaldo Carvalho de Melo
>
> The auxtrace.h header references BITS_PER_LONG without including the
> header where it is defined, getting it by luck from some other header,
> fix it.
>
> Cc: Adrian Hunter
>
and if any adjustment
> needs to be done to the tools/{include,arch}/ copies.
>
> Cc: Adrian Hunter
> Cc: Alexander Sverdlin
> Cc: David Ahern
> Cc: Jiri Olsa
> Cc: Namhyung Kim
> Cc: Wang Nan
> Link: https://lkml.kernel.org/n/tip-y1sqyydvfzo0bjjoj4zsl.
these error prints.
>
> This patch removes the error messages for these deferral cases.
>
> Signed-off-by: Ionut Nicu
Acked-by: Alexander Sverdlin
> ---
> drivers/i2c/muxes/i2c-mux-gpio.c | 10 +++---
> 1 files changed, 3 insertions(+), 7 deletions(-)
>
>
s and reimplemented ICPFUNC bus recovery using I2C
> bus recovery infrastructure]
> Signed-off-by: Grygorii Strashko
We have tested it on a custom Keystone2-based board, recovery seems to work
when SDA is held low externally.
Acked-by: Alexander Sverdlin
Tested-by: Michael Lawnick
> --
forgot to
> drop the signal handling case in the return handling. This just removes
> this dead code. While at it the return variable is adjusted to the type
> expected.
>
> Signed-off-by: Nicholas Mc Guire
Looks good,
Reviewed-by: Alexander Sverdlin
> ---
>
>
hink this MODULE_ALIAS() isn't
> needed, as I couldn't find such a corresponding platform_device.
You do not see the platform_device, because there are no users yet, put
this MODULE_ALIAS() is perfectly fine, it will allow automatic module loading
in non-DT case.
--
Best regards,
Alexande
uot;GPL");
> +MODULE_ALIAS("platform:i2c-mux-reg");
> diff --git a/drivers/i2c/muxes/i2c-mux-reg.h b/drivers/i2c/muxes/i2c-mux-reg.h
> new file mode 100644
> index 000..e213988
> --- /dev/null
> +++ b/drivers/i2c/muxes/i2c-mux-reg.h
> @@ -0,0 +1,38 @@
> +/*
> + * I2C multiplexer using a single register
> + *
> + * Copyright 2015 Freescale Semiconductor
> + * York Sun
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#ifndef __LINUX_I2C_MUX_REG_H
> +#define __LINUX_I2C_MUX_REG_H
> +
> +/* MUX has no specific idel mode */
> +#define I2C_MUX_REG_NO_IDLE ((unsigned)-1)
What if the idle state is exactly "all ones"? Quite important corner case
actually...
> +
> +/**
> + * struct i2c_mux_reg_platform_data - Platform-dependent data for i2c-mux-reg
> + * @parent: Parent I2C bus adapter number
> + * @base_nr: Base I2C bus number to number adapters from or zero for dynamic
> + * @values: Array of value for each channel
> + * @n_values: Number of multiplexer channels
> + * @classes: Optional I2C auto-detection classes
> + * @idle: Value to write to mux when idle
> + * @reg: Virtual address of the register to switch channel
> + */
> +struct i2c_mux_reg_platform_data {
> + int parent;
> + int base_nr;
> + const unsigned int *values;
> + int n_values;
> + const unsigned int *classes;
> + unsigned int idle;
> + unsigned int *reg;
Yeah, this is really bad idea. You maybe want something like
__iomem "cookie" here instead of this bare pointer.
> +};
> +
> +#endif /* __LINUX_I2C_MUX_REG_H */
>
Other than the mentioned above, this is a useful code.
--
Best regards,
Alexander Sverdlin.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
ow automatic module loading once the patch
> that adds a struct platform_device with a "i2c-mux-reg" name lands?
Any platform code which will register the platform_device will trigger uevent
and
udevd will be able to find the module with this macro. This is a legacy
alternative
to d
via additional DT property...
--
Best regards,
Alexander Sverdlin.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
of_node() instead) it became clear that the names
for the functions are too short and too generic for global scope.
Signed-off-by: Alexander Sverdlin
---
Compile-tested on x86_64 with ACPI and ARM with OF.
drivers/base/property.c | 26 +-
drivers/gpio/gpiolib.c | 4
ad (but modinfo) and make the module
"complete" in a
sense that it supports both types of binding. There is a legacy probe function
in it,
all the support for legacy binding with platform_data in it and this modalias
is simply
the last part of it.
--
Best regards,
Alexander Sverdlin.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
ist.
Most of the usual drivers in the Kernel have this line. Until now no animal
was hurt with it.
--
Best regards,
Alexander Sverdlin.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at
in the
Documentation/ file?),
that write will be little-Endian, therefore BE users must take care...
Other than that it looks good to me...
--
Best regards,
Alexander Sverdlin.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord
be specified in device
> tree if used, or in platform data.
>
> Signed-off-by: York Sun
> CC: Wolfram Sang
> CC: Paul Bolle
> CC: Peter Korsgaard
> CC: Alexander Sverdlin
I can think about external FPGA applications performing MUX function,
so the code looks useful to
)
[] (load_module) from [] (SyS_finit_module+0x59/0x84)
[] (SyS_finit_module) from [] (ret_fast_syscall+0x1/0x18)
---[ end trace e1b64ced7a89adcd ]---
ftrace failed to modify [] 0xe9ef7006
actual: 02:f0:3b:fa
ftrace record flags: 0
(0) expected tramp: c0314265
Signed-off-by: Alexander Sverdlin
---
arch/arm
ven Rostedt, refrain from tree-wide API modification,
save module pointer in dyn ftrace entry struct instead (PowerPC way)
Alexander Sverdlin (2):
ARM: PLT: Move struct plt_entries definition to header
ARM: ftrace: Add MODULE_PLTS support
arch/arm/include/asm/ftrace.h | 1 +
arch/arm/inclu
No functional change, later it will be re-used in several files.
Signed-off-by: Alexander Sverdlin
---
arch/arm/include/asm/module.h | 9 +
arch/arm/kernel/module-plts.c | 9 -
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/arch/arm/include/asm/module.h b/arch
ude/linux/soc/. This is far from great, but gets the job
> done here, without the need for a proper pinctrl driver.
Acked-by: Alexander Sverdlin
> Signed-off-by: Arnd Bergmann
> ---
> arch/arm/mach-ep93xx/clock.c | 1 +
> arch/arm/mach-ep93xx/core.c
On 15/04/2019 21:31, Arnd Bergmann wrote:
> gpio-ep93xx.h, hardware.h, and platform.h are only used in
> arch/arm/mach-ep93xx, so we can move them one there and no
> longer expose them to device drivers.
Acked-by: Alexander Sverdlin
> Signed-off-by: Arnd Bergmann
> ---
> ar
Hi!
On 15/04/2019 21:47, Arnd Bergmann wrote:
>>> We can communicate the clock rate using platform data rather than setting a
>>> flag to use a particular value in the driver, which is cleaner and avoids
>>> the dependency.
>>>
>>> No platform in the kernel currently defines the ep93xx keypad dev
board.
> + bool "Support Simplemachines Sim.One board"
> + help
> + Say 'Y' here if you want your kernel to support the
> + Simplemachines Sim.One board.
>
> config MACH_SNAPPER_CL15
> bool "Support Bluewater Systems Snapper CL15
This functionality is similar to heartbeat and activity triggers and
turns the timer-triggered LEDs off right before reboot. It's configurable
via new module parameter "reboot_off" to preserve original behaviour.
Signed-off-by: Alexander Sverdlin
---
drivers/leds/trigger/ledtr
yesterday. It just adds another
level on confusion into the code, which even the author got
wrong :)
Array with holes would be more obvious, but one can also embedd
the necessary values into struct ep93xx_gpio_bank.
--
Alexander Sverdlin.
Hi!
On Thu, 2021-01-28 at 15:21 +0300, Nikita Shubin wrote:
> - use predefined constants instead of plain numbers
> - use provided bank IRQ number instead of defined constant
> for port F
>
> Signed-off-by: Nikita Shubin
Acked-by: Alexander Sverdlin
> ---
> drivers/gp
lly on the fly"
>
> And that's not the thing we want.
>
> Signed-off-by: Nikita Shubin
Acked-by: Alexander Sverdlin
> ---
> drivers/gpio/gpio-ep93xx.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpi
setting handler's into single loop
>
> Signed-off-by: Nikita Shubin
Acked-by: Alexander Sverdlin
> ---
> v2->v3
> - use ->num_parents instead of ARRAY_SIZE()
> ---
> drivers/gpio/gpio-ep93xx.c | 9 -
> 1 file changed, 4 insertions(+), 5 deletions(-)
&
Hi!
On Thu, 2021-01-28 at 15:21 +0300, Nikita Shubin wrote:
> As ->to_irq is redefined in gpiochip_add_irqchip, having it defined
> in
> driver is useless, so let's drop it.
>
> Signed-off-by: Nikita Shubin
Acked-by: Alexander Sverdlin
> ---
> drivers/gpio/gpio-
_bank.
This option can probably simplify the handling of the names
for irq chips as well.
> 28.01.2021, 19:19, "Alexander Sverdlin" :
> > Hello Nikita,
> >
> > On Thu, 2021-01-28 at 18:11 +0200, Andy Shevchenko wrote:
> > > > +/*
> > > > + * F
ep93xx_gpio_chip gc[8];
> };
>
> static const u8 int_register_offset[8] = { 0x90, 0xac, [5] = 0x4c };
> #define EP93XX_INT_TYPE1_OFFSET 0x00
> #define EP93XX_INT_TYPE2_OFFSET 0x04
> #define EP93XX_INT_EOI_OFFSET 0x08
> #define EP93XX_INT_EN_OFFSET 0x0c
> #define EP93XX_INT_STATUS_OFFSET 0x10
> #define EP93XX_INT_RAW_STATUS_OFFSET 0x14
> #define EP93XX_INT_DEBOUNCE_OFFSET 0x18
Makes sense to me.
--
Alexander Sverdlin.
_BASE + offset;
> }
>
> +static void ep93xx_init_irq_chip(struct irq_chip *ic, const char *irq_name)
> +{
> + ic->name = irq_name;
Assuming you pass "label" here, you could do something like
ic->name = kasprintf(GFP_KERNEL, "gpio-irq-%s", irq_name);
> + ic->irq_ack = ep93xx_gpio_irq_ack;
> + ic->irq_mask_ack = ep93xx_gpio_irq_mask_ack;
> + ic->irq_mask = ep93xx_gpio_irq_mask;
> + ic->irq_unmask = ep93xx_gpio_irq_unmask;
> + ic->irq_set_type = ep93xx_gpio_irq_type;
> +}
--
Alexander Sverdlin.
set)
> return EP93XX_GPIO_F_IRQ_BASE + offset;
> }
>
> -static int ep93xx_gpio_add_bank(struct gpio_chip *gc,
> +static int ep93xx_gpio_add_bank(struct ep93xx_gpio_chip *egc,
> struct platform_device *pdev,
> struct ep93xx_gpio *epg,
> struct ep93xx_gpio_bank *bank)
> {
> void __iomem *data = epg->base + bank->data;
> void __iomem *dir = epg->base + bank->dir;
> + struct gpio_chip *gc = &egc->gc;
> struct device *dev = &pdev->dev;
> struct gpio_irq_chip *girq;
> int err;
> @@ -347,6 +353,12 @@ static int ep93xx_gpio_add_bank(struct gpio_chip *gc,
> girq = &gc->irq;
> if (bank->has_irq || bank->has_hierarchical_irq) {
> gc->set_config = ep93xx_gpio_set_config;
> + egc->eic = devm_kcalloc(dev, 1,
> + sizeof(*egc->eic),
> + GFP_KERNEL);
> + if (!egc->eic)
> + return -ENOMEM;
> + egc->eic->irq_offset = bank->irq;
> girq->chip = &ep93xx_gpio_irq_chip;
> }
>
> @@ -415,7 +427,7 @@ static int ep93xx_gpio_probe(struct platform_device *pdev)
> return PTR_ERR(epg->base);
>
> for (i = 0; i < ARRAY_SIZE(ep93xx_gpio_banks); i++) {
> - struct gpio_chip *gc = &epg->gc[i];
> + struct ep93xx_gpio_chip *gc = &epg->gc[i];
> struct ep93xx_gpio_bank *bank = &ep93xx_gpio_banks[i];
>
> if (ep93xx_gpio_add_bank(gc, pdev, epg, bank))
--
Alexander Sverdlin.
fd935fc421e74 ("gpio: ep93xx: Do not pingpong irq numbers")
> Signed-off-by: Nikita Shubin
I performed a bootup with the whole patch-series and
confirm that the BUG is gone.
Reviewed-by: Alexander Sverdlin
Tested-by: Alexander Sverdlin
> ---
> v4->v5:
> - make to_e
chip")
> Signed-off-by: Nikita Shubin
I performed a bootup with the whole patch-series and
confirm that the warning is gone. Thank you for looking into this!
Reviewed-by: Alexander Sverdlin
Tested-by: Alexander Sverdlin
> ---
> v4->v5:
> - generate IRQ chip's na
t;)
> Signed-off-by: Nikita Shubin
Tested-by: Alexander Sverdlin
> ---
> v5->v6:
> - add devm_kasprintf() return value check and move it out from
> ep93xx_init_irq_chip()
> - removed ep93xx_gpio_irq_chip
> - pass girq->chip instead of removed ep93xx_gpio_irq_chip to
a,-mcpu=ep9312
> +AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312 $(cc-option,
> -fno-integrated-as)
>
> obj-$(CONFIG_MACH_ADSSPHERE) += adssphere.o
> obj-$(CONFIG_MACH_EDB93XX) += edb93xx.o
--
Alexander Sverdlin.
it 99fbc70f8547
("MIPS: Octeon: irq: Alloc desc before configuring IRQ").
With "Fixes:" tag corrected, you can put my
Reviewed-by: Alexander Sverdlin
> Signed-off-by: Menglong Dong
> ---
> arch/mips/cavium-octeon/octeon-irq.c | 2 +-
> 1 file changed, 1 insertion(+)
428.
> Encoding A2 Even numbers in the range –33554432 to 33554430.
>
> which matches what's in the code (T1 for thumb2 and A1 for arm).
>
> Why do you think it's wrong?
thanks for checking this! I'll re-send v8 with your proposal.
--
Best regards,
Alexander Sverdlin.
Hello Andy,
>> From: Alexander Sverdlin
>>
>> There are several implementations of PL061 which lack GPIOINTR signal in
>> hardware and only have individual GPIOMIS[7:0] interrupts. Use the
>> hierarchical interrupt support of the gpiolib in these cases (if at leas
better remain encapsulated there.
could you please check the negative limits? I have an opinion, my limits are
correct. I could add extra parameter to arm_gen_branch_link(), but for this
I first need to fix its negative limits, which, I believe, well... Approximate
:)
--
Best regards,
Alexander Sverdlin.
; This is a side effect of the essentially per-soc pecularities around
> interrupts. The interrupt is not cascaded so it need special
> handling.
>
> I think it can be done with quite little code.
Guys, have you actually looked onto my patch before these reviews?
--
Best regards,
Alexander Sverdlin.
er than
two
years and I actually hope these patches to be finally merged at some point.
But you are welcome to optimize them with follow up patches :)
--
Best regards,
Alexander Sverdlin.
e new warn arg visible all the way to
> ftrace_call_repalce() and all of its users.
>
> FWIW
>
> Tested-by: Qais Yousef
--
Best regards,
Alexander Sverdlin.
Set the (optional) idle pinctrl state during runtime suspend. This is the
same schema used in PL022 driver and can help with HW designs sharing
the SPI lines for different purposes.
Signed-off-by: Alexander Sverdlin
---
drivers/spi/spi-omap2-mcspi.c | 24 ++--
1 file changed
access of MDR1. After removing the
read access from omap_8250_mdr1_errataset() the data corruption never
happened any more.
Link: https://www.ti.com/lit/er/sprz360i/sprz360i.pdf
Fixes: 61929cf0169d ("tty: serial: Add 8250-core based omap driver")
Cc: sta...@vger.kernel.org
Signed-off-by
trary chosen to not fit into our module space
and we have more modules already loaded. But you are free to adjust the
amount of NOPs! :)
--
Best regards,
Alexander Sverdlin.
of these real world "proprietary" modules (which of
course
were the real trigger for the patch):
https://www.spinics.net/lists/arm-kernel/msg878599.html
--
Best regards,
Alexander Sverdlin.
Currently the naming of the GPIO chips depends on their order in the DT,
but also on the kernel version (I've noticed the change from v5.10.x to
v5.11). Honor the persistent enumeration in the "aliases" node like other
GPIO drivers do.
Signed-off-by: Alexander Sverdlin
---
es it manifest at modprobe?
And then I use this module to test for the problem:
/**
* Author: Alexander Sverdlin
*
* Copyright (c) 2018 Nokia
*
* SPDX-License-Identifier: GPL-2.0
*
* Th
ddr));
>> +new = ftrace_call_replace(ip, aaddr);
>> +
>> +#ifdef CONFIG_ARM_MODULE_PLTS
>> +if (!new) {
>> +struct module *mod = rec->arch.mod;
>> +
>> +if (mod) {
>
> What would happen if !new and !mod?
I believe, that's exactly what happens in the dump you experience with your
kernel.
This is not covered by this patch, this patch covers the issue with modules in
vmalloc area.
>> +aaddr = get_module_plt(mod, ip, aaddr);
>> +new = ftrace_call_replace(ip, aaddr);
>
> I assume we're guaranteed to have a sensible value returned in 'new' here?
Otherwise you'd see the dump you see :)
It relies on the already existing error handling.
>> +}
>> +}
>> +#endif
--
Best regards,
Alexander Sverdlin.
s when I convert all modules to be built-in
>
> sed -i 's/=m/=y/' .config
>
> FWIW, I see the problem with your patch applied too. Trying to dig more into
> it..
Then it's definitely the problem explained in the second link. If you have
THUMB2 kernel, maybe
you have to switch to ARM.
--
Best regards,
Alexander Sverdlin.
t;, 0);
> - if (!phy_node && of_phy_is_fixed_link(priv->of_node)) {
> + if (!phy_node && of_phy_is_fixed_link(priv->of_node))
> phy_node = of_node_get(priv->of_node);
> - }
> if (!phy_node)
> goto no_phy;
>
--
Best regards,
Alexander Sverdlin.
ed-by: tag. This would probably wake more
interest from maintainers side.
Of course I can re-send them because I personally re-base them regularly.
--
Best regards,
Alexander Sverdlin.
x_gpio_port(epg, gc);
> girq->chip = &epg->ic[port];
> }
>
> - if (bank->has_irq) {
> - err = ep93xx_gpio_add_ab_irq_chip(pdev, girq, bank-
> >irq_base);
> + if (bank->idx == EP93XX_GPIO_A_PORT_INDEX ||
> + bank->idx == EP93XX_GPIO_B_PORT_INDEX) {
> + err = ep93xx_gpio_add_ab_irq_chip(pdev, gc, bank-
> >irq_base);
> if (err)
> return err;
> }
>
> /* Only bank F has especially funky IRQ handling */
> - if (bank->has_hierarchical_irq) {
> - err = ep93xx_gpio_add_f_irq_chip(pdev, girq, bank-
> >irq_base);
> + if (bank->idx == EP93XX_GPIO_F_PORT_INDEX) {
> + err = ep93xx_gpio_add_f_irq_chip(pdev, gc, bank-
> >irq_base);
> if (err)
> return err;
> }
--
Alexander Sverdlin.
Hi!
On Wed, 2021-01-27 at 13:46 +0300, Nikita Shubin wrote:
> - use predefined constants instead of plain numbers
> - use provided bank IRQ number instead of defined constant
> for port F
>
> Signed-off-by: Nikita Shubin
Reviewed-by: Alexander Sverdlin
> ---
> drive
Hi!
On Wed, 2021-01-27 at 13:46 +0300, Nikita Shubin wrote:
> As ->to_irq is redefined in gpiochip_add_irqchip, having it defined
> in
> driver is useless, so let's drop it.
>
> Signed-off-by: Nikita Shubin
Reviewed-by: Alexander Sverdlin
> ---
> drivers/gpio/
Hi!
On Wed, 2021-01-27 at 13:46 +0300, Nikita Shubin wrote:
> Fix typo in comment.
>
> Signed-off-by: Nikita Shubin
Acked-by: Alexander Sverdlin
> ---
> drivers/gpio/gpio-ep93xx.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpio
++) {
> + for (i = 0; i < ARRAY_SIZE(girq->parents); i++) {
Why do you use ARRAY_SIZE() here instead of ->num_parents like above?
> + girq->parents[i] = platform_get_irq(pdev, i +
> 1);
> gpio_irq = EP93XX_GPIO_F_IRQ_BASE + i;
> irq_set_chip_data(gpio_irq, &epg->gc[5]);
> irq_set_chip_and_handler(gpio_irq,
--
Alexander Sverdlin.
> &ep93xx_gpio_irq_chip,
> - handle_level_irq);
> - irq_clear_status_flags(gpio_irq,
> IRQ_NOREQUEST);
> - }
> - girq->default_type = IRQ_TYPE_NONE;
> - girq->handler = handle_level_irq;
> - girq->first = EP93XX_GPIO_F_IRQ_BASE;
> + err = ep93xx_gpio_add_f_irq_chip(pdev, girq,
> EP93XX_GPIO_F_IRQ_BASE);
> + if (err)
> + return err;
> }
>
> return devm_gpiochip_add_data(dev, gc, epg);
--
Alexander Sverdlin.
t; err = bgpio_init(gc, dev, 1, data, NULL, NULL, dir, NULL, 0);
> if (err)
> @@ -356,7 +380,8 @@ static int ep93xx_gpio_add_bank(struct gpio_chip
> *gc,
> girq = &gc->irq;
> if (bank->has_irq || bank->has_hierarchical_irq) {
>
Hello Peter,
On 27/01/2021 23:32, Peter Zijlstra wrote:
>> Link: https://lore.kernel.org/lkml/5644d08d.4080...@caviumnetworks.com/
please, check the discussion pointed by the link above...
>> Signed-off-by: Alexander Sverdlin
>> ---
>> arch/mips/include/asm/barrier.h
Hi!
On 27/01/2021 23:34, Peter Zijlstra wrote:
> On Wed, Jan 27, 2021 at 09:36:24PM +0100, Alexander A Sverdlin wrote:
>> From: Alexander Sverdlin
>>
>> Flushing the write buffer brings aroung 10% performace on the tight
>> uncontended spinlock loops on Octeon. R
Hi!
On 27/01/2021 23:21, Will Deacon wrote:
> On Wed, Jan 27, 2021 at 09:01:08PM +0100, Alexander A Sverdlin wrote:
>> From: Alexander Sverdlin
>>
>> Ensure writes are pushed out of core write buffer to prevent waiting code
>> on another cores from spinning longer than
Hi!
On 27/01/2021 23:43, Peter Zijlstra wrote:
> On Wed, Jan 27, 2021 at 09:01:08PM +0100, Alexander A Sverdlin wrote:
>> From: Alexander Sverdlin
>>
>> Ensure writes are pushed out of core write buffer to prevent waiting code
>> on another cores from spinning l
lly on the fly"
>
> And that's not the thing we want.
>
> Signed-off-by: Nikita Shubin
I have no code out-of-the-box to test the GPIO interrupts on EP93xx,
so I just did a bootup with this patch. But the change looks fine to
me:
Acked-by: Alexander Sverdlin
> ---
hips
>
> Fixes: a8173820f441 ("gpio: gpiolib: Allow GPIO IRQs to lazy
> disable")
> Signed-off-by: Nikita Shubin
Yes, it indeed fixes the warnigs mentioned above,
Tested-by: Alexander Sverdlin
> ---
> drivers/gpio/gpio-ep93xx.c | 45 ++
o fix up but
> overall this looks very very good.
as we don't have a dedicated EP93xx tree, would you like to take
the series in one of your trees?
--
Alexander Sverdlin.
point to above, says:
"Since Octeon does not do speculative reads, this functions as a full barrier."
--
Best regards,
Alexander Sverdlin.
Hi!
On 28/01/2021 12:33, Peter Zijlstra wrote:
> On Thu, Jan 28, 2021 at 08:27:29AM +0100, Alexander Sverdlin wrote:
>
>>>> +#define __smp_store_release(p, v)
ould be to undelete MIPS spinlocks and
make these broken qspinlocks a configurable option for MIPS? I don't even
mind if they will be default option for those not interested in performance
or latency.
--
Best regards,
Alexander Sverdlin.
s390-linux-ld: drivers/char/hw_random/ks-sa-rng.o: in function
>> `ks_sa_rng_probe':
>>>> ks-sa-rng.c:(.text+0x2fa): undefined reference to
>>>> `devm_platform_ioremap_resource'
>
> ---8<---
> This patch adds a dependency for KEYSTONE on HAS_IO
l now, after these fixes:
9e401275 of: fdt: fix memory initialization for expanded DT
0640332e of: Fix missing memory initialization on FDT unflattening
92d31610 of/fdt: Remove duplicate memory clearing on FDT unflattening
?
--
Best regards,
Alexander Sverdlin.
--
To unsubscribe from this list: send the
gain! Will test the whole series on our MIPS64 platforms
(currently old patchset from bbxm tree is successfully used for a while).
--
Best regards,
Alexander Sverdlin.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.k
ng, which is the case in
overlay_proc_release(), I suppose.
So the call to of_node_clear_flag() is superfluous, but doesn't hurt.
> On Nov 6, 2013, at 10:46 AM, Alexander Sverdlin wrote:
>
>> Hello Pantelis,
>>
>> On 05/11/13 21:03, ext Pantelis Antoniou wrote:
>>
plied on each device to a function.
>
> Signed-off-by: Pantelis Antoniou
We use the "same" patch since kernel 3.10.0, so:
Acked-by: Alexander Sverdlin
Tested-by: Alexander Sverdlin
> ---
> drivers/i2c/i2c-core.c | 99
> +++-
1 - 100 of 199 matches
Mail list logo