[PATCH v4] mips: Do not include hi and lo in clobber list for R6
From: Romain Naour >From [1] "GCC 10 (PR 91233) won't silently allow registers that are not architecturally available to be present in the clobber list anymore, resulting in build failure for mips*r6 targets in form of: ... .../sysdep.h:146:2: error: the register ‘lo’ cannot be clobbered in ‘asm’ for the current target 146 | __asm__ volatile ( \ | ^~~ This is because base R6 ISA doesn't define hi and lo registers w/o DSP extension. This patch provides the alternative clobber list for r6 targets that won't include those registers." Since kernel 5.4 and mips support for generic vDSO [2], the kernel fail to build for mips r6 cpus with gcc 10 for the same reason as glibc. [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=020b2a97bb15f807c0482f0faee2184ed05bcad8 [2] '24640f233b46 ("mips: Add support for generic vDSO")' Signed-off-by: Romain Naour Signed-off-by: Sudip Mukherjee --- v4: [sudip] added macro VDSO_SYSCALL_CLOBBERS and fix checkpatch errors with commit message. v3 Avoid duplicate code (Maciej W. Rozycki) v2 use MIPS_ISA_REV instead of __mips_isa_rev (Alexander Lobakin) I have reused the original patch by Romain and have retained his s-o-b and author name as he is the original author of this patch. I have just added the macro. Build tested with gcc-10.3.1 and gcc-9.3.0. arch/mips/include/asm/vdso/gettimeofday.h | 26 ++- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/arch/mips/include/asm/vdso/gettimeofday.h b/arch/mips/include/asm/vdso/gettimeofday.h index 2203e2d0ae2a..44a45f3fa4b0 100644 --- a/arch/mips/include/asm/vdso/gettimeofday.h +++ b/arch/mips/include/asm/vdso/gettimeofday.h @@ -20,6 +20,12 @@ #define VDSO_HAS_CLOCK_GETRES 1 +#if MIPS_ISA_REV < 6 +#define VDSO_SYSCALL_CLOBBERS "hi", "lo", +#else +#define VDSO_SYSCALL_CLOBBERS +#endif + static __always_inline long gettimeofday_fallback( struct __kernel_old_timeval *_tv, struct timezone *_tz) @@ -35,7 +41,9 @@ static __always_inline long gettimeofday_fallback( : "=r" (ret), "=r" (error) : "r" (tv), "r" (tz), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); + "$14", "$15", "$24", "$25", + VDSO_SYSCALL_CLOBBERS + "memory"); return error ? -ret : ret; } @@ -59,7 +67,9 @@ static __always_inline long clock_gettime_fallback( : "=r" (ret), "=r" (error) : "r" (clkid), "r" (ts), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); + "$14", "$15", "$24", "$25", + VDSO_SYSCALL_CLOBBERS + "memory"); return error ? -ret : ret; } @@ -83,7 +93,9 @@ static __always_inline int clock_getres_fallback( : "=r" (ret), "=r" (error) : "r" (clkid), "r" (ts), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); + "$14", "$15", "$24", "$25", + VDSO_SYSCALL_CLOBBERS + "memory"); return error ? -ret : ret; } @@ -105,7 +117,9 @@ static __always_inline long clock_gettime32_fallback( : "=r" (ret), "=r" (error) : "r" (clkid), "r" (ts), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); + "$14", "$15", "$24", "$25", + VDSO_SYSCALL_CLOBBERS + "memory"); return error ? -ret : ret; } @@ -125,7 +139,9 @@ static __always_inline int clock_getres32_fallback( : "=r" (ret), "=r" (error) : "r" (clkid), "r" (ts), "r" (nr) : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", - "$14", "$15", "$24", "$25", "hi", "lo", "memory"); + "$14", "$15", "$24", "$25", + VDSO_SYSCALL_CLOBBERS + "memory"); return error ? -ret : ret; } -- 2.30.2
HI,
How are you? I'm Vanina. I picked interest in you and I would like to know more about you and establish relationship with you. i will wait for your response. thank you.
Hi,
Hello dear how are you today? I hope you did receive the message I sent to you Last time?. I am waiting. Привет дорогая, как ты сегодня? Надеюсь, вы получили сообщение, которое я отправил вам в прошлый раз? Я ожидаю.
Re: [PATCH -next] x86: Fix unused variable 'hi'
On Tue, Mar 23, 2021 at 11:32:50AM +, Wei Liu wrote: > On Tue, Mar 23, 2021 at 10:50:13AM +0800, Xu Yihang wrote: > > Fixes the following W=1 kernel build warning(s): > > arch/x86/hyperv/hv_apic.c:58:15: warning: variable ‘hi’ set but not used > > [-Wunused-but-set-variable] > > > > Compiled with CONFIG_HYPERV enabled: > > make allmodconfig ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- > > make W=1 arch/x86/hyperv/hv_apic.o ARCH=x86_64 > > CROSS_COMPILE=x86_64-linux-gnu- > > > > HV_X64_MSR_EOI stores on bit 31:0 and HV_X64_MSR_TPR stores in bit 7:0, > > which means higher > > 32 bits are not really used, therefore potentially cast to void in order > > to silent this warning. > > > > Reported-by: Hulk Robot > > Signed-off-by: Xu Yihang > > --- > > arch/x86/hyperv/hv_apic.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c > > index 284e73661a18..a8b639498033 100644 > > --- a/arch/x86/hyperv/hv_apic.c > > +++ b/arch/x86/hyperv/hv_apic.c > > @@ -60,9 +60,11 @@ static u32 hv_apic_read(u32 reg) > > switch (reg) { > > case APIC_EOI: > > rdmsr(HV_X64_MSR_EOI, reg_val, hi); > > + (void) hi; > > return reg_val; > > case APIC_TASKPRI: > > rdmsr(HV_X64_MSR_TPR, reg_val, hi); > > + (void) hi; > > I would like to remove the space while committing this patch. There is > no need for you to do anything. Applied to hyperv-next.
Re: [PATCH -next] x86: Fix unused variable 'hi'
On Tue, Mar 23, 2021 at 10:50:13AM +0800, Xu Yihang wrote: > Fixes the following W=1 kernel build warning(s): > arch/x86/hyperv/hv_apic.c:58:15: warning: variable ‘hi’ set but not used > [-Wunused-but-set-variable] > > Compiled with CONFIG_HYPERV enabled: > make allmodconfig ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- > make W=1 arch/x86/hyperv/hv_apic.o ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- > > HV_X64_MSR_EOI stores on bit 31:0 and HV_X64_MSR_TPR stores in bit 7:0, which > means higher > 32 bits are not really used, therefore potentially cast to void in order to > silent this warning. > > Reported-by: Hulk Robot > Signed-off-by: Xu Yihang > --- > arch/x86/hyperv/hv_apic.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c > index 284e73661a18..a8b639498033 100644 > --- a/arch/x86/hyperv/hv_apic.c > +++ b/arch/x86/hyperv/hv_apic.c > @@ -60,9 +60,11 @@ static u32 hv_apic_read(u32 reg) > switch (reg) { > case APIC_EOI: > rdmsr(HV_X64_MSR_EOI, reg_val, hi); > + (void) hi; > return reg_val; > case APIC_TASKPRI: > rdmsr(HV_X64_MSR_TPR, reg_val, hi); > + (void) hi; I would like to remove the space while committing this patch. There is no need for you to do anything. Wei. > return reg_val; > > default: > -- > 2.17.1 >
[PATCH -next] x86: Fix unused variable 'hi'
Fixes the following W=1 kernel build warning(s): arch/x86/hyperv/hv_apic.c:58:15: warning: variable ‘hi’ set but not used [-Wunused-but-set-variable] Compiled with CONFIG_HYPERV enabled: make allmodconfig ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- make W=1 arch/x86/hyperv/hv_apic.o ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- HV_X64_MSR_EOI stores on bit 31:0 and HV_X64_MSR_TPR stores in bit 7:0, which means higher 32 bits are not really used, therefore potentially cast to void in order to silent this warning. Reported-by: Hulk Robot Signed-off-by: Xu Yihang --- arch/x86/hyperv/hv_apic.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c index 284e73661a18..a8b639498033 100644 --- a/arch/x86/hyperv/hv_apic.c +++ b/arch/x86/hyperv/hv_apic.c @@ -60,9 +60,11 @@ static u32 hv_apic_read(u32 reg) switch (reg) { case APIC_EOI: rdmsr(HV_X64_MSR_EOI, reg_val, hi); + (void) hi; return reg_val; case APIC_TASKPRI: rdmsr(HV_X64_MSR_TPR, reg_val, hi); + (void) hi; return reg_val; default: -- 2.17.1
Re: [PATCH -next] x86: Fix unused variable 'hi'
On Mon, Mar 22, 2021 at 11:54:26AM +0800, Xu Yihang wrote: > Fixes the following W=1 kernel build warning(s): > arch/x86/hyperv/hv_apic.c:58:15: warning: variable ‘hi’ set but not used > [-Wunused-but-set-variable] > > Compiled with CONFIG_HYPERV enabled: > make allmodconfig ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- > make W=1 arch/x86/hyperv/hv_apic.o ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- > > HV_X64_MSR_EOI stores on bit 31:0 and HV_X64_MSR_TPR stores in bit 7:0, which > means higher 32 bits are not really used, therefore __maybe_unused added. > > Reported-by: Hulk Robot > Signed-off-by: Xu Yihang I slightly modified the commit message and queued it up for hyperv-next. Thanks. Wei.
[PATCH -next] x86: Fix unused variable 'hi'
Fixes the following W=1 kernel build warning(s): arch/x86/hyperv/hv_apic.c:58:15: warning: variable ‘hi’ set but not used [-Wunused-but-set-variable] Compiled with CONFIG_HYPERV enabled: make allmodconfig ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- make W=1 arch/x86/hyperv/hv_apic.o ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- HV_X64_MSR_EOI stores on bit 31:0 and HV_X64_MSR_TPR stores in bit 7:0, which means higher 32 bits are not really used, therefore __maybe_unused added. Reported-by: Hulk Robot Signed-off-by: Xu Yihang --- arch/x86/hyperv/hv_apic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c index 284e73661a18..c0b0a5774f31 100644 --- a/arch/x86/hyperv/hv_apic.c +++ b/arch/x86/hyperv/hv_apic.c @@ -55,7 +55,8 @@ static void hv_apic_icr_write(u32 low, u32 id) static u32 hv_apic_read(u32 reg) { - u32 reg_val, hi; + u32 hi __maybe_unused; + u32 reg_val; switch (reg) { case APIC_EOI: -- 2.17.1
RE: [PATCH -next] x86: Fix unused variable 'hi'
From: Ingo Molnar Sent: Thursday, March 18, 2021 4:24 AM > > * Xu Yihang wrote: > > > Fixes the following W=1 kernel build warning(s): > > arch/x86/hyperv/hv_apic.c:58:15: warning: variable ‘hi’ set but not used > > [-Wunused-but- > set-variable] > > > > Reported-by: Hulk Robot > > Signed-off-by: Xu Yihang > > --- > > arch/x86/hyperv/hv_apic.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c > > index 284e73661a18..c0b0a5774f31 100644 > > --- a/arch/x86/hyperv/hv_apic.c > > +++ b/arch/x86/hyperv/hv_apic.c > > @@ -55,7 +55,8 @@ static void hv_apic_icr_write(u32 low, u32 id) > > > > static u32 hv_apic_read(u32 reg) > > { > > - u32 reg_val, hi; > > + u32 hi __maybe_unused; > > + u32 reg_val; > > > > switch (reg) { > > case APIC_EOI: > > Why and under what config does this function trigger the warning? > > Thanks, > > Ingo The warning should trigger if CONFIG_HYPERV is "m" or "y", and W=1 is selected. The variable is indeed set but not used because only the low order 32 bits of the synthetic MSR are relevant, but rdmsr() returns both the low 32 and the high 32 bits. Michael
Re: [PATCH -next] x86: Fix unused variable 'hi'
* Xu Yihang wrote: > Fixes the following W=1 kernel build warning(s): > arch/x86/hyperv/hv_apic.c:58:15: warning: variable ‘hi’ set but not used > [-Wunused-but-set-variable] > > Reported-by: Hulk Robot > Signed-off-by: Xu Yihang > --- > arch/x86/hyperv/hv_apic.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c > index 284e73661a18..c0b0a5774f31 100644 > --- a/arch/x86/hyperv/hv_apic.c > +++ b/arch/x86/hyperv/hv_apic.c > @@ -55,7 +55,8 @@ static void hv_apic_icr_write(u32 low, u32 id) > > static u32 hv_apic_read(u32 reg) > { > - u32 reg_val, hi; > + u32 hi __maybe_unused; > + u32 reg_val; > > switch (reg) { > case APIC_EOI: Why and under what config does this function trigger the warning? Thanks, Ingo
[PATCH -next] x86: Fix unused variable 'hi'
Fixes the following W=1 kernel build warning(s): arch/x86/hyperv/hv_apic.c:58:15: warning: variable ‘hi’ set but not used [-Wunused-but-set-variable] Reported-by: Hulk Robot Signed-off-by: Xu Yihang --- arch/x86/hyperv/hv_apic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c index 284e73661a18..c0b0a5774f31 100644 --- a/arch/x86/hyperv/hv_apic.c +++ b/arch/x86/hyperv/hv_apic.c @@ -55,7 +55,8 @@ static void hv_apic_icr_write(u32 low, u32 id) static u32 hv_apic_read(u32 reg) { - u32 reg_val, hi; + u32 hi __maybe_unused; + u32 reg_val; switch (reg) { case APIC_EOI: -- 2.17.1
Hi Dear
My name is Miss Calantha Camara, i was born on 22 -3 -1992, never married, l am from Somalia in Africa, I'M presently staying in a refugee camp in Dakar Senegal as a result of the political / religious crisis that has been causing problems in my country. Because of this problem I lost my mother and my father during this deadly Political War. That Damaged Thousands of innocent Souls in my country Somalia. My Late father was a Successful businessman and also a politician supporting the Present Government, During this problem all the members of my family were Murdered in a cold Blood and our family house was set blazed. But I thank God I was in boarding school when this deadly incident took place. It is only myself who is alive but i don't have a home right now, I managed to make my way to another country Senegal where I am staying now and never pray to go back to my country Somalia Again. Please, I have a reason why I contacted you but before that i would like to know about you what you are doing presently. I will tell you more about myself and the reason why I contacted you in my next mail.
hi
Hello Good morning, I am sgt Ann kisner from united states of America, Please i have Something very important thing to share with you,Please contact me on my email; ( sgtannkis...@gmail.com ). thanks Yours Miss SgtAnn
Hi Dear
this is about me My name is Miss Calantha Camara, i was born on 22 -- 3 -- 1992, never married, l am from Somalia in Africa, I'M presently residing in a refugee camp in Dakar Senegal as a result of the political / religious crisis that has been causing problems in my country. Because of this problem I lost my mother and my father during this deadly Political War. That Damaged Thousands of innocent Souls in my country Somalia. My Late father was a Successful businessman and also a politician supporting the Present Government, During this problem all the members of my family were Murdered in a cold Blood and our family house was set blazed. But I thank God I was in boarding school when this deadly incident took place. It is only myself who is alive but i don't have a home right now, I managed to make my way to another country Senegal where I am staying now and never pray to go back to my country Somalia Again. Please, I have a reason why I contacted you but before that i would like to know about you what you are doing presently. I will tell you more about myself and the reason why I contacted you in my next mail. thanks and God bless yours calantha
Re: hi
hi dear
do you speak English
Hi dear
do you speak english or what
Hi Dear
Hi Dear , How are you doing hope you are fine and OK? I was just going through the Internet search when I found your email address, I want to make a new and special friend, so I decided to contact you to see how we can make it work out if we can. Please I wish you will have the desire with me so that we can get to know each other better and see what happens in future. My name is Lisa Williams, I am an American, but presently I live in the UK, I will be glad to see your reply for us to know each other better to exchange pictures and details about us. Yours Lisa.
hi dear
do you speak Eglish
Hi
Hello I sent a letter to your mail but got no reply from you. Did you receive my previous mail please i wait to read your mail soon on my email address at ( suniew...@gmail.com ) respond to me
[PATCH 5.9 083/152] phy: qualcomm: Fix 28 nm Hi-Speed USB PHY OF dependency
From: Bryan O'Donoghue [ Upstream commit 14839107b51cc0db19579039b1f72cba7a0c8049 ] This Kconfig entry should declare a dependency on OF Fixes: 67b27dbeac4d ("phy: qualcomm: Add Synopsys 28nm Hi-Speed USB PHY driver") Signed-off-by: Bryan O'Donoghue Link: https://lore.kernel.org/r/20201113151225.1657600-3-bryan.odonog...@linaro.org Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- drivers/phy/qualcomm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/phy/qualcomm/Kconfig b/drivers/phy/qualcomm/Kconfig index 9129c4b8bb9b1..7f6fcb8ec5bab 100644 --- a/drivers/phy/qualcomm/Kconfig +++ b/drivers/phy/qualcomm/Kconfig @@ -87,7 +87,7 @@ config PHY_QCOM_USB_HSIC config PHY_QCOM_USB_HS_28NM tristate "Qualcomm 28nm High-Speed PHY" - depends on ARCH_QCOM || COMPILE_TEST + depends on OF && (ARCH_QCOM || COMPILE_TEST) depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in select GENERIC_PHY help -- 2.27.0
hi
Hi dear, I'm Jessica Vail, from the United States,please i wish to have a communication with you. I wait for your answer. Jessica Vail.
HI
Hallo, ich hoffe du hast meine Nachricht erhalten. Ich brauche schnelle Reaktionen Vielen Dank Michelle
[PATCH 2/2] phy: qualcomm: Fix 28 nm Hi-Speed USB PHY OF dependency
This Kconfig entry should declare a dependency on OF Fixes: 67b27dbeac4d ("phy: qualcomm: Add Synopsys 28nm Hi-Speed USB PHY driver") Signed-off-by: Bryan O'Donoghue --- drivers/phy/qualcomm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/phy/qualcomm/Kconfig b/drivers/phy/qualcomm/Kconfig index 9129c4b8bb9b..7f6fcb8ec5ba 100644 --- a/drivers/phy/qualcomm/Kconfig +++ b/drivers/phy/qualcomm/Kconfig @@ -87,7 +87,7 @@ config PHY_QCOM_USB_HSIC config PHY_QCOM_USB_HS_28NM tristate "Qualcomm 28nm High-Speed PHY" - depends on ARCH_QCOM || COMPILE_TEST + depends on OF && (ARCH_QCOM || COMPILE_TEST) depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in select GENERIC_PHY help -- 2.28.0
Hi
Hallo Schatz Ich habe einen dringenden Vorschlag für Sie. Schreiben Sie mir für Details zurück Dein, Michelle
Hi
-- Good day Dear I have a project of $18.5 Million Us Dollars which I will like you to support me so that the fund will be transfer to your bank account. Please if you are capable reply back to me so that i will give you more details about this project. Thank you I am waiting to hear from you Dr Bello
hi
Hi dear, I'm Jessica Vail, from the United States,please i wish to have a communication with you. I wait for your answer. Jessica Vail.
Re: [PATCH 3/4] drm/etnaviv: add total hi bandwidth perfcounter
On Fr, 2020-08-14 at 11:05 +0200, Christian Gmeiner wrote: > These two perf counters represent the total read and write > GPU bandwidth in terms of 64bits. > > The used sequence was taken from Vivante kernel driver. > > Signed-off-by: Christian Gmeiner > --- > drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 35 ++- > 1 file changed, 34 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > index 782732e6ce72..b37459f022d7 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c > @@ -69,6 +69,29 @@ static u32 pipe_perf_reg_read(struct etnaviv_gpu *gpu, > return value; > } > > +static u32 pipe_reg_read(struct etnaviv_gpu *gpu, > + const struct etnaviv_pm_domain *domain, > + const struct etnaviv_pm_signal *signal) > +{ > + u32 clock = gpu_read(gpu, VIVS_HI_CLOCK_CONTROL); > + u32 value = 0; > + unsigned i; > + > + for (i = 0; i < gpu->identity.pixel_pipes; i++) { > + clock &= ~(VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__MASK); > + clock |= VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE(i); > + gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, clock); > + value += gpu_read(gpu, signal->data); > + } > + > + /* switch back to pixel pipe 0 to prevent GPU hang */ > + clock &= ~(VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__MASK); > + clock |= VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE(0); > + gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, clock); > + > + return value; > +} > + > static u32 hi_total_cycle_read(struct etnaviv_gpu *gpu, > const struct etnaviv_pm_domain *domain, > const struct etnaviv_pm_signal *signal) > @@ -102,8 +125,18 @@ static const struct etnaviv_pm_domain doms_3d[] = { > .name = "HI", > .profile_read = VIVS_MC_PROFILE_HI_READ, > .profile_config = VIVS_MC_PROFILE_CONFIG2, > - .nr_signals = 5, > + .nr_signals = 7, I've tripped across this part. It's something I don't particularly like, as this value has a risk of getting inconsistent with the actual array. Maybe we could split out signal array from this initialization, so we could then use the ARRAY_SIZE macro to initialize this value? But that's not really related to this patch and can be done in a follow-up cleanup. Regards, Lucas > .signal = (const struct etnaviv_pm_signal[]) { > + { > + "TOTAL_READ_BYTES8", > + VIVS_HI_PROFILE_READ_BYTES8, > + &pipe_reg_read, > + }, > + { > + "TOTAL_WRITE_BYTES8", > + VIVS_HI_PROFILE_WRITE_BYTES8, > + &pipe_reg_read, > + }, > { > "TOTAL_CYCLES", > 0,
Re: [PATCH 0/4] drm/etnaviv: add total hi bandwidth perf counters
On Fr, 2020-08-14 at 11:05 +0200, Christian Gmeiner wrote: > This little patch set adds support for the total bandwidth used by HI. The > basic hi bandwidth read-out is quite simple but I needed to add some little > clean-ups to make it nice looking. > > Christian Gmeiner (4): > drm/etnaviv: rename pipe_reg_read(..) > drm/etnaviv: call perf_reg_read(..) > drm/etnaviv: add total hi bandwidth perfcounter > drm/etnaviv: add pipe_select(..) helper > > drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 78 --- > 1 file changed, 55 insertions(+), 23 deletions(-) Thanks, I've applied the whole series to my etnaviv/next branch. regards, Lucas
Hi
Hi dear, I'm Jessica Vail, from the United States,please i wish to have a communication with you. I wait for your answer. Jessica Vail.
Re: [PATCH 0/4] drm/etnaviv: add total hi bandwidth perf counters
Hi Lucas, almost one month has passed since I sent this little patch series - is there any update on this? Am Fr., 14. Aug. 2020 um 11:05 Uhr schrieb Christian Gmeiner : > > This little patch set adds support for the total bandwidth used by HI. The > basic hi bandwidth read-out is quite simple but I needed to add some little > clean-ups to make it nice looking. > > Christian Gmeiner (4): > drm/etnaviv: rename pipe_reg_read(..) > drm/etnaviv: call perf_reg_read(..) > drm/etnaviv: add total hi bandwidth perfcounter > drm/etnaviv: add pipe_select(..) helper > > drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 78 --- > 1 file changed, 55 insertions(+), 23 deletions(-) > > -- > 2.26.2 > -- greets -- Christian Gmeiner, MSc https://christian-gmeiner.info/privacypolicy
Hi
Attention: Promptly email Mr David Bailey on to lay claims to your INHERITED FUNDS. Mr David Bailey
Hi
Attention: Promptly email Mr David Bailey on to lay claims to your INHERITED FUNDS. Mr David Bailey
Hi
Hi dear friend, I'm Laura J. Richardson from the United States. Please, I would wish to have a communication with you. I will be waiting for your response. Laura.
hi
-- Dear Beloved, I’m mrs.Nancy Christopher, 69years old affected with breast cancer, the wife of late Mr Christopher, the Director of High River Gold Mines Ltd Burkina Faso West Africa. I am contacting you because of my health condition,i need a reliable person, who will handle this project accordingly, accomplish my heart desire and utilize this fund. I have decided to donate the sum Twenty-Five Million Two Hundred Thousand United State Dollars Only ($25,200,000.00) to Charity Organizations or to support the Orphans, Motherless Babies,Less privileged and free Medical & Medicine Poor People's around the World since I don t have any child and do not want the bank take over the fund. I don't really know if i am going to survive this stage, therefore if you ready to handle this project, kindly response so that i will instruct the bank to transfer the fund to your account. Contact my private email only if you are interested (mrsnancychristoph...@gmail.com) Remain blessed in the name of the Lord. Regards Mrs.Nancy Christopher,
[PATCH 3/4] drm/etnaviv: add total hi bandwidth perfcounter
These two perf counters represent the total read and write GPU bandwidth in terms of 64bits. The used sequence was taken from Vivante kernel driver. Signed-off-by: Christian Gmeiner --- drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 35 ++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c index 782732e6ce72..b37459f022d7 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c @@ -69,6 +69,29 @@ static u32 pipe_perf_reg_read(struct etnaviv_gpu *gpu, return value; } +static u32 pipe_reg_read(struct etnaviv_gpu *gpu, + const struct etnaviv_pm_domain *domain, + const struct etnaviv_pm_signal *signal) +{ + u32 clock = gpu_read(gpu, VIVS_HI_CLOCK_CONTROL); + u32 value = 0; + unsigned i; + + for (i = 0; i < gpu->identity.pixel_pipes; i++) { + clock &= ~(VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__MASK); + clock |= VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE(i); + gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, clock); + value += gpu_read(gpu, signal->data); + } + + /* switch back to pixel pipe 0 to prevent GPU hang */ + clock &= ~(VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__MASK); + clock |= VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE(0); + gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, clock); + + return value; +} + static u32 hi_total_cycle_read(struct etnaviv_gpu *gpu, const struct etnaviv_pm_domain *domain, const struct etnaviv_pm_signal *signal) @@ -102,8 +125,18 @@ static const struct etnaviv_pm_domain doms_3d[] = { .name = "HI", .profile_read = VIVS_MC_PROFILE_HI_READ, .profile_config = VIVS_MC_PROFILE_CONFIG2, - .nr_signals = 5, + .nr_signals = 7, .signal = (const struct etnaviv_pm_signal[]) { + { + "TOTAL_READ_BYTES8", + VIVS_HI_PROFILE_READ_BYTES8, + &pipe_reg_read, + }, + { + "TOTAL_WRITE_BYTES8", + VIVS_HI_PROFILE_WRITE_BYTES8, + &pipe_reg_read, + }, { "TOTAL_CYCLES", 0, -- 2.26.2
[PATCH 0/4] drm/etnaviv: add total hi bandwidth perf counters
This little patch set adds support for the total bandwidth used by HI. The basic hi bandwidth read-out is quite simple but I needed to add some little clean-ups to make it nice looking. Christian Gmeiner (4): drm/etnaviv: rename pipe_reg_read(..) drm/etnaviv: call perf_reg_read(..) drm/etnaviv: add total hi bandwidth perfcounter drm/etnaviv: add pipe_select(..) helper drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 78 --- 1 file changed, 55 insertions(+), 23 deletions(-) -- 2.26.2
HI
-- Dear Beloved, I’m Mrs.Benson Safia, 69years old affected with breast cancer, the wife of late Benson Safia, the Director of High River Gold Mines Ltd Burkina Faso West Africa. I am contacting you because of my health condition,i need a reliable person, who will handle this project accordingly, accomplish my heart desire and utilize this fund. I have decided to donate the sum Twenty-Five Million Two Hundred Thousand United State Dollars Only ($25,200,000.00) to Charity Organizations or to support the Orphans, Motherless Babies,Less privileged and free Medical & Medicine Poor People's around the World since I don t have any child and do not want the bank take over the fund. I don't really know if i am going to survive this stage, therefore if you ready to handle this project, kindly response so that i will instruct the bank to transfer the fund to your account. Contact my private email only if you are interested (mrs.bensonsaf...@gmail.com) Remain blessed in the name of the Lord. Regards Mrs.Benson Safia,
Hi
Dear friend, I have 12,800,000 pounds inheritance of your late relative who was my client please reply for more details. Patrick Gomez, Esq. Attorney At Law, UK.
[PATCH v3 4/4] usb: misc: Add USB49xx/xi Hi-Speed Hub Controller Driver
This patch adds a driver for configuration of the Microchip USB49xx/xi USB 2.0 hub controller series with USB 2.0 upstream connectivity, SMBus configuration interface and two to four USB 2.0 downstream ports. Furthermore add myself as a maintainer for this driver. The datasheet can be found at the manufacturers website, see [1]. All device-tree exposed configuration features have been tested on a i.MX6 platform with a USB4916 hub. [1] http://ww1.microchip.com/downloads/en/Appnotes/AN2651-Configuration-of-Microchip-USB47xx-USB49xx-Application-Note-2651B.pdf Signed-off-by: Christian Eggers --- MAINTAINERS| 7 + drivers/usb/misc/Kconfig | 10 + drivers/usb/misc/Makefile | 1 + drivers/usb/misc/usb49xx.c | 825 + 4 files changed, 843 insertions(+) create mode 100644 drivers/usb/misc/usb49xx.c diff --git a/MAINTAINERS b/MAINTAINERS index fe1108ba6ce7..068d6e94122b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -11363,6 +11363,13 @@ S: Maintained F: Documentation/devicetree/bindings/usb/usb253x.yaml F: drivers/usb/misc/usb253x.c +MICROCHIP USB49XX DRIVER +M: Christian Eggers +L: linux-...@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/usb/usb49xx.yaml +F: drivers/usb/misc/usb49xx.c + MICROCHIP USBA UDC DRIVER M: Cristian Birsan L: linux-arm-ker...@lists.infradead.org (moderated for non-subscribers) diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig index 7a7b854e803a..14bea87c0f81 100644 --- a/drivers/usb/misc/Kconfig +++ b/drivers/usb/misc/Kconfig @@ -252,6 +252,16 @@ config USB_HUB_USB253X Configuration parameters may be set in devicetree or platform data. Say Y or M here if you need to configure such a device via I2C. +config USB_HUB_USB49XX + tristate "USB47XX/USB49XX Hub Controller Configuration Driver" + depends on I2C + select REGMAP + help + This option enables support for configuration via I2C bus of the + Microchip USB47xx/49xx USB 2.0 Hub Controller series. + Configuration parameters may be set in devicetree or platform data. + Say Y or M here if you need to configure such a device via I2C. + config USB_HSIC_USB3503 tristate "USB3503 HSIC to USB20 Driver" depends on I2C diff --git a/drivers/usb/misc/Makefile b/drivers/usb/misc/Makefile index 6fd8c53841e4..3832858aba1e 100644 --- a/drivers/usb/misc/Makefile +++ b/drivers/usb/misc/Makefile @@ -26,6 +26,7 @@ obj-$(CONFIG_USB_SEVSEG) += usbsevseg.o obj-$(CONFIG_USB_YUREX)+= yurex.o obj-$(CONFIG_USB_HUB_USB251XB) += usb251xb.o obj-$(CONFIG_USB_HUB_USB253X) += usb253x.o +obj-$(CONFIG_USB_HUB_USB49XX) += usb49xx.o obj-$(CONFIG_USB_HSIC_USB3503) += usb3503.o obj-$(CONFIG_USB_HSIC_USB4604) += usb4604.o obj-$(CONFIG_USB_CHAOSKEY) += chaoskey.o diff --git a/drivers/usb/misc/usb49xx.c b/drivers/usb/misc/usb49xx.c new file mode 100644 index ..b713ef4557c2 --- /dev/null +++ b/drivers/usb/misc/usb49xx.c @@ -0,0 +1,825 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Driver for Microchip USB47xx and USB49xx USB 2.0 Hi-Speed Hub Controller + * Configuration via I2C. + * + * Copyright (c) 2020 ARRI Lighting + * + * This work is based on the USB251xb driver by Richard Leitner. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Internal Register Set Addresses acc. to DS2651B */ +#define USB49XX_ADDR_VENDOR_ID0xBF803000 +#define USB49XX_ADDR_PRODUCT_ID 0xBF803002 +#define USB49XX_ADDR_DEVICE_ID0xBF803004 +#define USB49XX_ADDR_HUB_CFG 0xBF803006 +#define USB49XX_HUB_CFG3_PRTMAP_ENBIT(3) +#define USB49XX_HUB_CFG3_STRING_ENBIT(0) +#define USB49XX_ADDR_NON_REMOVABLE_DEVICES0xBF803009 +#define USB49XX_ADDR_PORT_DISABLE_SELF0xBF80300A +#define USB49XX_ADDR_PORT_DISABLE_BUS 0xBF80300B +#define USB49XX_ADDR_POWER_ON_TIME0xBF803010 +#define USB49XX_ADDR_OCS_MIN_WIDTH0xBF8030EA +#define USB49XX_ADDR_LANGUAGE_ID 0xBF803202 +#define USB49XX_STRING_BUFSIZE62 +#define USB49XX_ADDR_MANUFACTURER_STRING_DESC 0xBFD23204 +#define USB49XX_ADDR_PRODUCT_STRING_DESC 0xBFD23244 +#define USB49XX_ADDR_MANUFACTURER_STRING_LEN 0xBFD2346A +#define USB49XX_ADDR_PRODUCT_STRING_LEN 0xBFD23472 +#define USB49XX_ADDR_USB2_HUB_CTRL0xBF803104 +#define USB49XX_USB2_HUB_CTRL_LPM_DISABLE BIT(1) + +#define DRIVER_NAME "usb49xx" + + +struct usb49xx { + struct device *dev; + struct i2c_client *i2c; + struct regulator *vdd; + struct regmap *regmap; + u8 skip_config; + struct gpio_desc *gpio_reset; +}; + +#if
[PATCH v3 2/4] usb: misc: Add USB253x/xi Hi-Speed Hub Controller Driver
This patch adds a driver for configuration of the Microchip USB253x/xi USB 2.0 hub controller series with USB 2.0 upstream connectivity, SMBus configuration interface and two to four USB 2.0 downstream ports. Furthermore add myself as a maintainer for this driver. The datasheet can be found at the manufacturers website, see [1]. All device-tree exposed configuration features have been tested on a i.MX6 platform with a USB2534i hub. [1] http://ww1.microchip.com/downloads/en/AppNotes/1801C.pdf Signed-off-by: Christian Eggers --- MAINTAINERS| 7 + drivers/usb/misc/Kconfig | 10 + drivers/usb/misc/Makefile | 1 + drivers/usb/misc/usb253x.c | 834 + 4 files changed, 852 insertions(+) create mode 100644 drivers/usb/misc/usb253x.c diff --git a/MAINTAINERS b/MAINTAINERS index d53db30d1365..fe1108ba6ce7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -11356,6 +11356,13 @@ S: Maintained F: Documentation/devicetree/bindings/usb/usb251xb.txt F: drivers/usb/misc/usb251xb.c +MICROCHIP USB253X DRIVER +M: Christian Eggers +L: linux-...@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/usb/usb253x.yaml +F: drivers/usb/misc/usb253x.c + MICROCHIP USBA UDC DRIVER M: Cristian Birsan L: linux-arm-ker...@lists.infradead.org (moderated for non-subscribers) diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig index 4e48f8eed168..7a7b854e803a 100644 --- a/drivers/usb/misc/Kconfig +++ b/drivers/usb/misc/Kconfig @@ -242,6 +242,16 @@ config USB_HUB_USB251XB parameters may be set in devicetree or platform data. Say Y or M here if you need to configure such a device via SMBus. +config USB_HUB_USB253X + tristate "USB253X Hub Controller Configuration Driver" + depends on I2C + select REGMAP + help + This option enables support for configuration via I2C bus of the + Microchip USB253x/xi USB 2.0 Hub Controller series. + Configuration parameters may be set in devicetree or platform data. + Say Y or M here if you need to configure such a device via I2C. + config USB_HSIC_USB3503 tristate "USB3503 HSIC to USB20 Driver" depends on I2C diff --git a/drivers/usb/misc/Makefile b/drivers/usb/misc/Makefile index da39bddb0604..6fd8c53841e4 100644 --- a/drivers/usb/misc/Makefile +++ b/drivers/usb/misc/Makefile @@ -25,6 +25,7 @@ obj-$(CONFIG_USB_USS720) += uss720.o obj-$(CONFIG_USB_SEVSEG) += usbsevseg.o obj-$(CONFIG_USB_YUREX)+= yurex.o obj-$(CONFIG_USB_HUB_USB251XB) += usb251xb.o +obj-$(CONFIG_USB_HUB_USB253X) += usb253x.o obj-$(CONFIG_USB_HSIC_USB3503) += usb3503.o obj-$(CONFIG_USB_HSIC_USB4604) += usb4604.o obj-$(CONFIG_USB_CHAOSKEY) += chaoskey.o diff --git a/drivers/usb/misc/usb253x.c b/drivers/usb/misc/usb253x.c new file mode 100644 index ..ffd72e14c3c3 --- /dev/null +++ b/drivers/usb/misc/usb253x.c @@ -0,0 +1,834 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Driver for Microchip USB253x USB 2.0 Hi-Speed Hub Controller + * Configuration via I2C. + * + * Copyright (c) 2020 ARRI Lighting + * + * This work is based on the USB251xb driver by Richard Leitner. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Internal Register Set Addresses acc. to DS1801C */ +#define USB253X_ADDR_VENDOR_ID0x3000 +#define USB253X_ADDR_PRODUCT_ID 0x3002 +#define USB253X_ADDR_DEVICE_ID0x3004 +#define USB253X_ADDR_HUB_CFG 0x3006 +#define USB253X_HUB_CFG3_PRTMAP_ENBIT(3) +#define USB253X_HUB_CFG3_STRING_ENBIT(0) +#define USB253X_ADDR_NON_REMOVABLE_DEVICES0x3009 +#define USB253X_ADDR_PORT_DISABLE_SELF0x300A +#define USB253X_ADDR_PORT_DISABLE_BUS 0x300B +#define USB253X_ADDR_POWER_ON_TIME0x3010 +#define USB253X_ADDR_LANGUAGE_ID 0x3011 +#define USB253X_ADDR_MANUFACTURER_STRING_LEN 0x3013 +#define USB253X_ADDR_PRODUCT_STRING_LEN 0x3014 +#define USB253X_ADDR_SERIAL_STRING_LEN0x3015 +#define USB253X_ADDR_STRINGS 0x3016 +#define USB253X_STRINGS_BUFSIZE 93 /* chars (UTF16) */ +#define USB253X_ADDR_HUB_CTRL_REMAP 0x30FD +#define USB253X_ADDR_USB2_HUB_CTRL0x3104 +#define USB253X_USB2_HUB_CTRL_LPM_DISABLE BIT(1) +#define USB253X_ADDR_INTERNAL_PORT0x4130 +#define USB253X_INTERNAL_PORT_PORT_ENUM_DEFAULT0b00 +#define USB253X_INTERNAL_PORT_PORT_ENUM_ALWAYS_ENABLE 0b01 +#define USB253X_INTERNAL_PORT_PORT_ENUM_ALWAYS_DISABLE 0b10 + +#define DRIVER_NAME "usb253x" + + +struct usb253x { + struct device *dev; + struct i2c_client *i2c; + struct regulator *vdd; + struct regmap *
hi
-- Dear Beloved, I’m Mrs.Nancy Christopher, 69years old affected with breast cancer, the wife of late Brown Christopher, the Director of High River Gold Mines Ltd Burkina Faso West Africa. I am contacting you because of my health condition,i need a reliable person, who will handle this project accordingly, accomplish my heart desire and utilize this fund. I have decided to donate the sum Twenty-Five Million Two Hundred Thousand United State Dollars Only ($25,200,000.00) to Charity Organizations or to support the Orphans, Motherless Babies,Less privileged and free Medical & Medicine Poor People's around the World since I don t have any child and do not want the bank take over the fund. I don't really know if i am going to survive this stage, therefore if you ready to handle this project, kindly response so that i will instruct the bank to transfer the fund to your account. Contact my private email only if you are interested (mrsnancychristoph...@gmail.com) Remain blessed in the name of the Lord. Regards Mrs.Nancy Christopher,
Re: [PATCH] mips: Do not include hi and lo in clobber list for R6
Hi Alexander, Le 25/07/2020 à 16:32, Alexander Lobakin a écrit : > Hi Romain, > > From: Romain Naour > Date: Sat, 25 Jul 2020 15:25:33 +0200 > >> From [1] >> "GCC 10 (PR 91233) won't silently allow registers that are not >> architecturally >> available to be present in the clobber list anymore, resulting in build >> failure >> for mips*r6 targets in form of: >> ... >> .../sysdep.h:146:2: error: the register ‘lo’ cannot be clobbered in ‘asm’ >> for the current target >> 146 | __asm__ volatile ( \ >> | ^~~ >> >> This is because base R6 ISA doesn't define hi and lo registers w/o DSP >> extension. >> This patch provides the alternative clobber list for r6 targets that won't >> include >> those registers." >> >> Since kernel 5.4 and mips support for generic vDSO [2], the kernel fail to >> build >> for mips r6 cpus with gcc 10 for the same reason as glibc. >> >> [1] >> https://sourceware.org/git/?p=glibc.git;a=commit;h=020b2a97bb15f807c0482f0faee2184ed05bcad8 >> [2] >> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=24640f233b466051ad3a5d2786d2951e43026c9d >> >> Signed-off-by: Romain Naour >> --- >> arch/mips/include/asm/vdso/gettimeofday.h | 45 +++ >> 1 file changed, 45 insertions(+) >> >> diff --git a/arch/mips/include/asm/vdso/gettimeofday.h >> b/arch/mips/include/asm/vdso/gettimeofday.h >> index c63ddcaea54c..6192d94928b9 100644 >> --- a/arch/mips/include/asm/vdso/gettimeofday.h >> +++ b/arch/mips/include/asm/vdso/gettimeofday.h >> @@ -30,12 +30,21 @@ static __always_inline long gettimeofday_fallback( >> register long nr asm("v0") = __NR_gettimeofday; >> register long error asm("a3"); >> >> +#if __mips_isa_rev >= 6 > > You should use MIPS_ISA_REV macro from arch/mips/include/asm/isa-rev.h > instead of compiler definitions. > The main reason is that __mips_isa_rev is not defined by GCC for > pre-MIPS32 processors, so you'll get a compiler warning like: > > "Warning: macro '__mips_isa_rev' is not defined, evaluates to 0" > > MIPS_ISA_REV handles this case and is always defined regardless of > the actual ISA family. Thanks for the review. Fixed in v2. Best regards, Romain > >> +asm volatile( >> +" syscall\n" >> +: "=r" (ret), "=r" (error) >> +: "r" (tv), "r" (tz), "r" (nr) >> +: "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", >> + "$14", "$15", "$24", "$25", "memory"); >> +#else >> asm volatile( >> " syscall\n" >> : "=r" (ret), "=r" (error) >> : "r" (tv), "r" (tz), "r" (nr) >> : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", >>"$14", "$15", "$24", "$25", "hi", "lo", "memory"); >> +#endif >> >> return error ? -ret : ret; >> } >> @@ -54,12 +63,21 @@ static __always_inline long clock_gettime_fallback( >> #endif >> register long error asm("a3"); >> >> +#if __mips_isa_rev >= 6 >> +asm volatile( >> +" syscall\n" >> +: "=r" (ret), "=r" (error) >> +: "r" (clkid), "r" (ts), "r" (nr) >> +: "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", >> + "$14", "$15", "$24", "$25", "memory"); >> +#else >> asm volatile( >> " syscall\n" >> : "=r" (ret), "=r" (error) >> : "r" (clkid), "r" (ts), "r" (nr) >> : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", >>"$14", "$15", "$24", "$25", "hi", "lo", "memory"); >> +#endif >> >> return error ? -ret : ret; >> } >> @@ -78,12 +96,21 @@ static __always_inline int clock_getres_fallback( >> #endif >&
Re: [PATCH] mips: Do not include hi and lo in clobber list for R6
Hi Romain, From: Romain Naour Date: Sat, 25 Jul 2020 15:25:33 +0200 > From [1] > "GCC 10 (PR 91233) won't silently allow registers that are not architecturally > available to be present in the clobber list anymore, resulting in build > failure > for mips*r6 targets in form of: > ... > .../sysdep.h:146:2: error: the register ‘lo’ cannot be clobbered in ‘asm’ for > the current target > 146 | __asm__ volatile ( \ > | ^~~ > > This is because base R6 ISA doesn't define hi and lo registers w/o DSP > extension. > This patch provides the alternative clobber list for r6 targets that won't > include > those registers." > > Since kernel 5.4 and mips support for generic vDSO [2], the kernel fail to > build > for mips r6 cpus with gcc 10 for the same reason as glibc. > > [1] > https://sourceware.org/git/?p=glibc.git;a=commit;h=020b2a97bb15f807c0482f0faee2184ed05bcad8 > [2] > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=24640f233b466051ad3a5d2786d2951e43026c9d > > Signed-off-by: Romain Naour > --- > arch/mips/include/asm/vdso/gettimeofday.h | 45 +++ > 1 file changed, 45 insertions(+) > > diff --git a/arch/mips/include/asm/vdso/gettimeofday.h > b/arch/mips/include/asm/vdso/gettimeofday.h > index c63ddcaea54c..6192d94928b9 100644 > --- a/arch/mips/include/asm/vdso/gettimeofday.h > +++ b/arch/mips/include/asm/vdso/gettimeofday.h > @@ -30,12 +30,21 @@ static __always_inline long gettimeofday_fallback( > register long nr asm("v0") = __NR_gettimeofday; > register long error asm("a3"); > > +#if __mips_isa_rev >= 6 You should use MIPS_ISA_REV macro from arch/mips/include/asm/isa-rev.h instead of compiler definitions. The main reason is that __mips_isa_rev is not defined by GCC for pre-MIPS32 processors, so you'll get a compiler warning like: "Warning: macro '__mips_isa_rev' is not defined, evaluates to 0" MIPS_ISA_REV handles this case and is always defined regardless of the actual ISA family. > + asm volatile( > + " syscall\n" > + : "=r" (ret), "=r" (error) > + : "r" (tv), "r" (tz), "r" (nr) > + : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", > + "$14", "$15", "$24", "$25", "memory"); > +#else > asm volatile( > " syscall\n" > : "=r" (ret), "=r" (error) > : "r" (tv), "r" (tz), "r" (nr) > : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", > "$14", "$15", "$24", "$25", "hi", "lo", "memory"); > +#endif > > return error ? -ret : ret; > } > @@ -54,12 +63,21 @@ static __always_inline long clock_gettime_fallback( > #endif > register long error asm("a3"); > > +#if __mips_isa_rev >= 6 > + asm volatile( > + " syscall\n" > + : "=r" (ret), "=r" (error) > + : "r" (clkid), "r" (ts), "r" (nr) > + : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", > + "$14", "$15", "$24", "$25", "memory"); > +#else > asm volatile( > " syscall\n" > : "=r" (ret), "=r" (error) > : "r" (clkid), "r" (ts), "r" (nr) > : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", > "$14", "$15", "$24", "$25", "hi", "lo", "memory"); > +#endif > > return error ? -ret : ret; > } > @@ -78,12 +96,21 @@ static __always_inline int clock_getres_fallback( > #endif > register long error asm("a3"); > > +#if __mips_isa_rev >= 6 > + asm volatile( > + " syscall\n" > + : "=r" (ret), "=r" (error) > + : "r" (clkid), "r" (ts), "r" (nr) > + : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", > + "$14", "$15", "$24", "$25", "mem
[PATCH 2/4] usb: misc: Add USB253x/xi Hi-Speed Hub Controller Driver
This patch adds a driver for configuration of the Microchip USB253x/xi USB 2.0 hub controller series with USB 2.0 upstream connectivity, SMBus configuration interface and two to four USB 2.0 downstream ports. Furthermore add myself as a maintainer for this driver. The datasheet can be found at the manufacturers website, see [1]. All device-tree exposed configuration features have been tested on a i.MX6 platform with a USB2534i hub. [1] http://ww1.microchip.com/downloads/en/AppNotes/1801C.pdf Signed-off-by: Christian Eggers --- MAINTAINERS| 7 + drivers/usb/misc/Kconfig | 10 + drivers/usb/misc/Makefile | 1 + drivers/usb/misc/usb253x.c | 834 + 4 files changed, 852 insertions(+) create mode 100644 drivers/usb/misc/usb253x.c diff --git a/MAINTAINERS b/MAINTAINERS index d53db30d1365..fe1108ba6ce7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -11356,6 +11356,13 @@ S: Maintained F: Documentation/devicetree/bindings/usb/usb251xb.txt F: drivers/usb/misc/usb251xb.c +MICROCHIP USB253X DRIVER +M: Christian Eggers +L: linux-...@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/usb/usb253x.yaml +F: drivers/usb/misc/usb253x.c + MICROCHIP USBA UDC DRIVER M: Cristian Birsan L: linux-arm-ker...@lists.infradead.org (moderated for non-subscribers) diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig index 4e48f8eed168..7a7b854e803a 100644 --- a/drivers/usb/misc/Kconfig +++ b/drivers/usb/misc/Kconfig @@ -242,6 +242,16 @@ config USB_HUB_USB251XB parameters may be set in devicetree or platform data. Say Y or M here if you need to configure such a device via SMBus. +config USB_HUB_USB253X + tristate "USB253X Hub Controller Configuration Driver" + depends on I2C + select REGMAP + help + This option enables support for configuration via I2C bus of the + Microchip USB253x/xi USB 2.0 Hub Controller series. + Configuration parameters may be set in devicetree or platform data. + Say Y or M here if you need to configure such a device via I2C. + config USB_HSIC_USB3503 tristate "USB3503 HSIC to USB20 Driver" depends on I2C diff --git a/drivers/usb/misc/Makefile b/drivers/usb/misc/Makefile index da39bddb0604..6fd8c53841e4 100644 --- a/drivers/usb/misc/Makefile +++ b/drivers/usb/misc/Makefile @@ -25,6 +25,7 @@ obj-$(CONFIG_USB_USS720) += uss720.o obj-$(CONFIG_USB_SEVSEG) += usbsevseg.o obj-$(CONFIG_USB_YUREX)+= yurex.o obj-$(CONFIG_USB_HUB_USB251XB) += usb251xb.o +obj-$(CONFIG_USB_HUB_USB253X) += usb253x.o obj-$(CONFIG_USB_HSIC_USB3503) += usb3503.o obj-$(CONFIG_USB_HSIC_USB4604) += usb4604.o obj-$(CONFIG_USB_CHAOSKEY) += chaoskey.o diff --git a/drivers/usb/misc/usb253x.c b/drivers/usb/misc/usb253x.c new file mode 100644 index ..ffd72e14c3c3 --- /dev/null +++ b/drivers/usb/misc/usb253x.c @@ -0,0 +1,834 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Driver for Microchip USB253x USB 2.0 Hi-Speed Hub Controller + * Configuration via I2C. + * + * Copyright (c) 2020 ARRI Lighting + * + * This work is based on the USB251xb driver by Richard Leitner. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Internal Register Set Addresses acc. to DS1801C */ +#define USB253X_ADDR_VENDOR_ID0x3000 +#define USB253X_ADDR_PRODUCT_ID 0x3002 +#define USB253X_ADDR_DEVICE_ID0x3004 +#define USB253X_ADDR_HUB_CFG 0x3006 +#define USB253X_HUB_CFG3_PRTMAP_ENBIT(3) +#define USB253X_HUB_CFG3_STRING_ENBIT(0) +#define USB253X_ADDR_NON_REMOVABLE_DEVICES0x3009 +#define USB253X_ADDR_PORT_DISABLE_SELF0x300A +#define USB253X_ADDR_PORT_DISABLE_BUS 0x300B +#define USB253X_ADDR_POWER_ON_TIME0x3010 +#define USB253X_ADDR_LANGUAGE_ID 0x3011 +#define USB253X_ADDR_MANUFACTURER_STRING_LEN 0x3013 +#define USB253X_ADDR_PRODUCT_STRING_LEN 0x3014 +#define USB253X_ADDR_SERIAL_STRING_LEN0x3015 +#define USB253X_ADDR_STRINGS 0x3016 +#define USB253X_STRINGS_BUFSIZE 93 /* chars (UTF16) */ +#define USB253X_ADDR_HUB_CTRL_REMAP 0x30FD +#define USB253X_ADDR_USB2_HUB_CTRL0x3104 +#define USB253X_USB2_HUB_CTRL_LPM_DISABLE BIT(1) +#define USB253X_ADDR_INTERNAL_PORT0x4130 +#define USB253X_INTERNAL_PORT_PORT_ENUM_DEFAULT0b00 +#define USB253X_INTERNAL_PORT_PORT_ENUM_ALWAYS_ENABLE 0b01 +#define USB253X_INTERNAL_PORT_PORT_ENUM_ALWAYS_DISABLE 0b10 + +#define DRIVER_NAME "usb253x" + + +struct usb253x { + struct device *dev; + struct i2c_client *i2c; + struct regulator *vdd; + struct regmap *
[PATCH 4/4] usb: misc: Add USB49xx/xi Hi-Speed Hub Controller Driver
This patch adds a driver for configuration of the Microchip USB49xx/xi USB 2.0 hub controller series with USB 2.0 upstream connectivity, SMBus configuration interface and two to four USB 2.0 downstream ports. Furthermore add myself as a maintainer for this driver. The datasheet can be found at the manufacturers website, see [1]. All device-tree exposed configuration features have been tested on a i.MX6 platform with a USB4916 hub. [1] http://ww1.microchip.com/downloads/en/Appnotes/AN2651-Configuration-of-Microchip-USB47xx-USB49xx-Application-Note-2651B.pdf Signed-off-by: Christian Eggers --- MAINTAINERS| 7 + drivers/usb/misc/Kconfig | 10 + drivers/usb/misc/Makefile | 1 + drivers/usb/misc/usb49xx.c | 825 + 4 files changed, 843 insertions(+) create mode 100644 drivers/usb/misc/usb49xx.c diff --git a/MAINTAINERS b/MAINTAINERS index fe1108ba6ce7..068d6e94122b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -11363,6 +11363,13 @@ S: Maintained F: Documentation/devicetree/bindings/usb/usb253x.yaml F: drivers/usb/misc/usb253x.c +MICROCHIP USB49XX DRIVER +M: Christian Eggers +L: linux-...@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/usb/usb49xx.yaml +F: drivers/usb/misc/usb49xx.c + MICROCHIP USBA UDC DRIVER M: Cristian Birsan L: linux-arm-ker...@lists.infradead.org (moderated for non-subscribers) diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig index 7a7b854e803a..14bea87c0f81 100644 --- a/drivers/usb/misc/Kconfig +++ b/drivers/usb/misc/Kconfig @@ -252,6 +252,16 @@ config USB_HUB_USB253X Configuration parameters may be set in devicetree or platform data. Say Y or M here if you need to configure such a device via I2C. +config USB_HUB_USB49XX + tristate "USB47XX/USB49XX Hub Controller Configuration Driver" + depends on I2C + select REGMAP + help + This option enables support for configuration via I2C bus of the + Microchip USB47xx/49xx USB 2.0 Hub Controller series. + Configuration parameters may be set in devicetree or platform data. + Say Y or M here if you need to configure such a device via I2C. + config USB_HSIC_USB3503 tristate "USB3503 HSIC to USB20 Driver" depends on I2C diff --git a/drivers/usb/misc/Makefile b/drivers/usb/misc/Makefile index 6fd8c53841e4..3832858aba1e 100644 --- a/drivers/usb/misc/Makefile +++ b/drivers/usb/misc/Makefile @@ -26,6 +26,7 @@ obj-$(CONFIG_USB_SEVSEG) += usbsevseg.o obj-$(CONFIG_USB_YUREX)+= yurex.o obj-$(CONFIG_USB_HUB_USB251XB) += usb251xb.o obj-$(CONFIG_USB_HUB_USB253X) += usb253x.o +obj-$(CONFIG_USB_HUB_USB49XX) += usb49xx.o obj-$(CONFIG_USB_HSIC_USB3503) += usb3503.o obj-$(CONFIG_USB_HSIC_USB4604) += usb4604.o obj-$(CONFIG_USB_CHAOSKEY) += chaoskey.o diff --git a/drivers/usb/misc/usb49xx.c b/drivers/usb/misc/usb49xx.c new file mode 100644 index ..b713ef4557c2 --- /dev/null +++ b/drivers/usb/misc/usb49xx.c @@ -0,0 +1,825 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Driver for Microchip USB47xx and USB49xx USB 2.0 Hi-Speed Hub Controller + * Configuration via I2C. + * + * Copyright (c) 2020 ARRI Lighting + * + * This work is based on the USB251xb driver by Richard Leitner. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Internal Register Set Addresses acc. to DS2651B */ +#define USB49XX_ADDR_VENDOR_ID0xBF803000 +#define USB49XX_ADDR_PRODUCT_ID 0xBF803002 +#define USB49XX_ADDR_DEVICE_ID0xBF803004 +#define USB49XX_ADDR_HUB_CFG 0xBF803006 +#define USB49XX_HUB_CFG3_PRTMAP_ENBIT(3) +#define USB49XX_HUB_CFG3_STRING_ENBIT(0) +#define USB49XX_ADDR_NON_REMOVABLE_DEVICES0xBF803009 +#define USB49XX_ADDR_PORT_DISABLE_SELF0xBF80300A +#define USB49XX_ADDR_PORT_DISABLE_BUS 0xBF80300B +#define USB49XX_ADDR_POWER_ON_TIME0xBF803010 +#define USB49XX_ADDR_OCS_MIN_WIDTH0xBF8030EA +#define USB49XX_ADDR_LANGUAGE_ID 0xBF803202 +#define USB49XX_STRING_BUFSIZE62 +#define USB49XX_ADDR_MANUFACTURER_STRING_DESC 0xBFD23204 +#define USB49XX_ADDR_PRODUCT_STRING_DESC 0xBFD23244 +#define USB49XX_ADDR_MANUFACTURER_STRING_LEN 0xBFD2346A +#define USB49XX_ADDR_PRODUCT_STRING_LEN 0xBFD23472 +#define USB49XX_ADDR_USB2_HUB_CTRL0xBF803104 +#define USB49XX_USB2_HUB_CTRL_LPM_DISABLE BIT(1) + +#define DRIVER_NAME "usb49xx" + + +struct usb49xx { + struct device *dev; + struct i2c_client *i2c; + struct regulator *vdd; + struct regmap *regmap; + u8 skip_config; + struct gpio_desc *gpio_reset; +}; + +#if
Re: [PATCH v2 10/13] cpufreq: powernow-k8: Mark 'hi' and 'lo' dummy variables as __always_unused
On Wed 2020-07-15 09:26:31, Lee Jones wrote: > if we fail to use a variable, even a dummy ones, then the compiler > complains that it is set but not used. We know this is fine, so we > set them as __always_unused here to let the compiler know. > > Fixes the following W=1 kernel build warning(s): > > drivers/cpufreq/powernow-k8.c: In function ‘pending_bit_stuck’: > drivers/cpufreq/powernow-k8.c:89:10: warning: variable ‘hi’ set but not used > [-Wunused-but-set-variable] > 89 | u32 lo, hi; > | ^~ > drivers/cpufreq/powernow-k8.c: In function ‘core_voltage_pre_transition’: > drivers/cpufreq/powernow-k8.c:285:14: warning: variable ‘lo’ set but not > used [-Wunused-but-set-variable] > 285 | u32 maxvid, lo, rvomult = 1; > | ^~ > > Cc: Andreas Herrmann > Cc: Dominik Brodowski Acked-by: Pavel Machek -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: PGP signature
hi
-- Dear Beloved, I’m Mrs.Nancy Christopher, 69years old affected with breast cancer, the wife of late Brown Christopher, the Director of High River Gold Mines Ltd Burkina Faso West Africa. I am contacting you because of my health condition,i need a reliable person, who will handle this project accordingly, accomplish my heart desire and utilize this fund. I have decided to donate the sum Twenty-Five Million Two Hundred Thousand United State Dollars Only ($25,200,000.00) to Charity Organizations or to support the Orphans, Motherless Babies,Less privileged and free Medical & Medicine Poor People's around the World since I don t have any child and do not want the bank take over the fund. I don't really know if i am going to survive this stage, therefore if you ready to handle this project, kindly response so that i will instruct the bank to transfer the fund to your account. Contact my private email only if you are interested (mrsnancychristoph...@gmail.com) Remain blessed in the name of the Lord. Regards Mrs.Nancy Christopher,
[PATCH v2 10/13] cpufreq: powernow-k8: Mark 'hi' and 'lo' dummy variables as __always_unused
if we fail to use a variable, even a dummy ones, then the compiler complains that it is set but not used. We know this is fine, so we set them as __always_unused here to let the compiler know. Fixes the following W=1 kernel build warning(s): drivers/cpufreq/powernow-k8.c: In function ‘pending_bit_stuck’: drivers/cpufreq/powernow-k8.c:89:10: warning: variable ‘hi’ set but not used [-Wunused-but-set-variable] 89 | u32 lo, hi; | ^~ drivers/cpufreq/powernow-k8.c: In function ‘core_voltage_pre_transition’: drivers/cpufreq/powernow-k8.c:285:14: warning: variable ‘lo’ set but not used [-Wunused-but-set-variable] 285 | u32 maxvid, lo, rvomult = 1; | ^~ Cc: Andreas Herrmann Cc: Dominik Brodowski Cc: Pavel Machek Cc: Paul Devriendt Cc: Mark Langsdorf Signed-off-by: Lee Jones --- drivers/cpufreq/powernow-k8.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c index 3984959eed1d5..0acc9e241cd7d 100644 --- a/drivers/cpufreq/powernow-k8.c +++ b/drivers/cpufreq/powernow-k8.c @@ -86,7 +86,7 @@ static u32 convert_fid_to_vco_fid(u32 fid) */ static int pending_bit_stuck(void) { - u32 lo, hi; + u32 lo, hi __always_unused; rdmsr(MSR_FIDVID_STATUS, lo, hi); return lo & MSR_S_LO_CHANGE_PENDING ? 1 : 0; @@ -282,7 +282,7 @@ static int core_voltage_pre_transition(struct powernow_k8_data *data, { u32 rvosteps = data->rvo; u32 savefid = data->currfid; - u32 maxvid, lo, rvomult = 1; + u32 maxvid, lo __always_unused, rvomult = 1; pr_debug("ph1 (cpu%d): start, currfid 0x%x, currvid 0x%x, reqvid 0x%x, rvo 0x%x\n", smp_processor_id(), -- 2.25.1
Hi
Hi dear, I'm Jessica Vail, from the United States,please i wish to have a communication with you. I wait for your answer. Jessica Vail.
HI
-- Hello Did you get my previous message please write me back (gabrieledga...@gmail.com) Thanks
HI
-- Hello Did you get my previous message please write me back (gabrieledga...@gmail.com) Thanks
Re: [PATCH 00/10] Hi,
On Sun, May 31, 2020 at 10:22 PM Bharat Kumar Gogada wrote: > > > On 25. 02. 20 17:32, Rob Herring wrote: > > > On Mon, Feb 17, 2020 at 8:28 AM Michal Simek > > wrote: > > >> > > >> Hi Rob, > > >> > > >> On 14. 02. 20 0:47, Rob Herring wrote: > > >>> On Wed, Feb 12, 2020 at 2:58 AM Michal Simek > > wrote: > > >>>> > > >>>> > > >>>> I am sending this series as before SMP support. > > >>>> Most of these patches are clean ups and should be easy to review > > >>>> them. I expect there will be more discussions about SMP support. > > >>> > > >>> While not really related to adding SMP, any chance you or someone > > >>> could look at moving microblaze PCI support to drivers/pci/? I > > >>> suspect much of the code should drop out as we have common helpers > > >>> for much of it now. That would leave only powerpc and mips for DT+PCI > > platforms. > > >> > > >> can you please suggest changes which could be done? > > >> I have CC Bharat and he could look at it. > > > > > > Look at the host controller drivers in drivers/pci/controller/. > > > pci-host-{generic,common}.c is a good template to start with as that's > > > a controller with standard config space accesses and no h/w setup > > > needed. Essentially you need to call devm_pci_alloc_host_bridge(), > > > pci_parse_request_of_pci_ranges() and pci_host_probe() with whatever > > > h/w setup you need in between those calls. > > > > > > Looking at the microblaze PCI code, looks like you may need custom > > > config space accessors which is quite common. Probably all the > > > resource and device scanning can be removed. If you look at arm64, all > > > the arch PCI code is just for ACPI. > Hi Rob, > > Can you please let us know why we might need custom config space accessors ? > We tested pci_generic_config_read/write accessors on microblaze, and we > did not see any issues. I was thinking maybe the indirect code might have to be custom, but maybe everything can be handled in .map_bus(). Rob
Hi
Hi dear, I'm Jessica Vail, from the United States,please i wish to have a communication with you. I wait for your answer. Jessica Vail.
Re: [PATCH] Removing ununsed variable int lo, hi, int data and int i from comedi/drivers/dt2814.c.
On Tue, May 26, 2020 at 08:24:50PM +0530, GAURAV PATHAK wrote: > On Tue, May 26, 2020 at 05:13:46PM +0300, Dan Carpenter wrote: > > Your subject doesn't use the correct patch prefix please use. > > > > [PATCH] Staging: comedi: dt2814: remove unused assignments > > > > Please resend a v2. > > > > Correct the references to Sparse as well like Luc said. > > > > regards, > > dan carpenter > > > > Hello Dan, > Thank you for reviewing and suggesting changes. I have modified the > patch and attached it with the e-mail to keep this thread conversation. > I hope I have made the changes correctly. > No, this isn't how to send a v2 patch. https://www.google.com/search?client=firefox-b-d&q=how+to+send+a+v2+patch Put [PATCH v2] in the subject. Don't send patches as attachments. Put a comment after the --- cut off line: Signed-off... --- v2: Update subject and commit message. If you want to reply to the thread, that's good. Use --in-reply-to= But don't worry about it too much. Greg applies or deletes patches as soon as he sees them so either way he's not going to have the original thread in his inbox. regards, dan carpenter
Re: [PATCH] Removing ununsed variable int lo, hi, int data and int i from comedi/drivers/dt2814.c.
On Tue, May 26, 2020 at 05:13:46PM +0300, Dan Carpenter wrote: > Your subject doesn't use the correct patch prefix please use. > > [PATCH] Staging: comedi: dt2814: remove unused assignments > > Please resend a v2. > > Correct the references to Sparse as well like Luc said. > > regards, > dan carpenter > Hello Dan, Thank you for reviewing and suggesting changes. I have modified the patch and attached it with the e-mail to keep this thread conversation. I hope I have made the changes correctly. Thanks, Gaurav >From ef4a63e66fc09052c4cad808755d1142a9af7011 Mon Sep 17 00:00:00 2001 From: Gaurav Pathak Date: Sun, 24 May 2020 17:06:16 +0530 Subject: [PATCH v2] Staging: comedi: dt2814: remove unused assignments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Silence following compiler warning: drivers/staging/comedi/drivers/dt2814.c: In function ‘dt2814_interrupt’: drivers/staging/comedi/drivers/dt2814.c:193:6: warning: variable ‘data’ set but not used [-Wunused-but-set-variable] int data; ^~~~ drivers/staging/comedi/drivers/dt2814.c: In function ‘dt2814_attach’: drivers/staging/comedi/drivers/dt2814.c:232:6: warning: variable ‘i’ set but not used [-Wunused-but-set-variable] int i; ^ Signed-off-by: Gaurav Pathak --- drivers/staging/comedi/drivers/dt2814.c | 10 -- 1 file changed, 10 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt2814.c b/drivers/staging/comedi/drivers/dt2814.c index d2c715737361..eea587d63e18 100644 --- a/drivers/staging/comedi/drivers/dt2814.c +++ b/drivers/staging/comedi/drivers/dt2814.c @@ -186,22 +186,15 @@ static int dt2814_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) static irqreturn_t dt2814_interrupt(int irq, void *d) { - int lo, hi; struct comedi_device *dev = d; struct dt2814_private *devpriv = dev->private; struct comedi_subdevice *s = dev->read_subdev; - int data; if (!dev->attached) { dev_err(dev->class_dev, "spurious interrupt\n"); return IRQ_HANDLED; } - hi = inb(dev->iobase + DT2814_DATA); - lo = inb(dev->iobase + DT2814_DATA); - - data = (hi << 4) | (lo >> 4); - if (!(--devpriv->ntrig)) { int i; @@ -229,7 +222,6 @@ static int dt2814_attach(struct comedi_device *dev, struct comedi_devconfig *it) struct dt2814_private *devpriv; struct comedi_subdevice *s; int ret; - int i; ret = comedi_request_region(dev, it->options[0], 0x2); if (ret) @@ -241,8 +233,6 @@ static int dt2814_attach(struct comedi_device *dev, struct comedi_devconfig *it) dev_err(dev->class_dev, "reset error (fatal)\n"); return -EIO; } - i = inb(dev->iobase + DT2814_DATA); - i = inb(dev->iobase + DT2814_DATA); if (it->options[1]) { ret = request_irq(it->options[1], dt2814_interrupt, 0, -- 2.17.1
Re: [PATCH] Removing ununsed variable int lo, hi, int data and int i from comedi/drivers/dt2814.c.
Your subject doesn't use the correct patch prefix please use. [PATCH] Staging: comedi: dt2814: remove unused assignments Please resend a v2. Correct the references to Sparse as well like Luc said. regards, dan carpenter
Re: [PATCH] Removing ununsed variable int lo, hi, int data and int i from comedi/drivers/dt2814.c.
On Sun, May 24, 2020 at 07:02:20PM +0530, GAURAV PATHAK wrote: > > For few drivers, I am getting: > > CC [M] drivers/staging/vt6656/key.o > CHECK drivers/staging/vt6656/rf.c > /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:417:9: warning: preprocessor > token offsetof redefined > ./include/linux/stddef.h:17:9: this was the original definition > > but I guess these are false positive, as #undef offsetof is already present > in ./include/linux/stddef.h. But there is no #undef in /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h which seems to be sometimes included after Linux's include/linux/stddef.h -- Luc
Re: [PATCH] Removing ununsed variable int lo, hi, int data and int i from comedi/drivers/dt2814.c.
On Sun, May 24, 2020 at 06:19:22PM +0530, GAURAV PATHAK wrote: > Thanks a lot for your reply. > I am trying to run sparse on drivers/staging directory, > but I am not getting any useful warnings. > Steps that I did: > > - Referred https://www.kernel.org/doc/man-pages/linux-next.html to get > linux-next latest tag next-20200522. > - After that executed following commands: > - make mrproper; make clean; make distclean > - make defconfig > - make menuconfig (Enabled all Staging Drivers with M) > - make modules_prepare > - make C=1 M=drivers/staging (Also tried individual directories > inside staging directory e.g. make C=1 > M=drivers/staging/comedi/drivers) > > I am not getting any warning, I have attached the output in text format. > > Any pointers for finding warning using sparse in drivers/staging > directory will be helpful. I really appretiate your guidance in this > regard. Well it seems that most staging drivers have no sparse warnings at all. I only see somes in the following staging drivers: drivers/staging/isdn/ drivers/staging/kpc2000/ drivers/staging/uwb/ drivers/staging/vc04_services/ drivers/staging/wfx/ drivers/staging/wusbcore/ Your commands seems to be good but I would advice you to use 'C=2' instead of 'C=1' in order for sparse to effectively run on each input file even when the corresponding .o file already exists. The simplest to use is: - make allmodconfig - make -j8 drivers/staging/ This will just compile all the files without running sparse. So all warnings will be from the compiler. The you can run: - make C=2 drivers/staging/ which will only run sparse (and will thus be much faster). Best regards, -- Luc
Re: [PATCH] Removing ununsed variable int lo, hi, int data and int i from comedi/drivers/dt2814.c.
Nevermind, my sparse version was broken. Installed sparse 0.6.1, but still no warnings from sparse in any of the directories in drivers staging. E.g.: make C=2 M=drivers/staging/sm750fb CHECK drivers/staging/sm750fb/sm750.c CHECK drivers/staging/sm750fb/sm750_hw.c CHECK drivers/staging/sm750fb/sm750_accel.c CHECK drivers/staging/sm750fb/sm750_cursor.c CHECK drivers/staging/sm750fb/ddk750_chip.c CHECK drivers/staging/sm750fb/ddk750_power.c CHECK drivers/staging/sm750fb/ddk750_mode.c CHECK drivers/staging/sm750fb/ddk750_display.c CHECK drivers/staging/sm750fb/ddk750_swi2c.c CHECK drivers/staging/sm750fb/ddk750_sii164.c CHECK drivers/staging/sm750fb/ddk750_dvi.c CHECK drivers/staging/sm750fb/ddk750_hwi2c.c MODPOST 1 modules For few drivers, I am getting: CC [M] drivers/staging/vt6656/key.o CHECK drivers/staging/vt6656/rf.c /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:417:9: warning: preprocessor token offsetof redefined ./include/linux/stddef.h:17:9: this was the original definition but I guess these are false positive, as #undef offsetof is already present in ./include/linux/stddef.h. On Sun, May 24, 2020 at 02:10:44PM +0200, Luc Van Oostenryck wrote: > Hi, > > On Sun, May 24, 2020 at 05:06:18PM +0530, Gaurav Pathak wrote: > > Silence following sparse warning: > > drivers/staging/comedi/drivers/dt2814.c: In function ‘dt2814_interrupt’: > > drivers/staging/comedi/drivers/dt2814.c:193:6: warning: variable ‘data’ set > > but not used [-Wunused-but-set-variable] > > int data; > > ^~~~ > > drivers/staging/comedi/drivers/dt2814.c: In function ‘dt2814_attach’: > > drivers/staging/comedi/drivers/dt2814.c:232:6: warning: variable ‘i’ set > > but not used [-Wunused-but-set-variable] > > int i; > > ^ > > These warnings are not from sparse but simply from the compiler. > > > static irqreturn_t dt2814_interrupt(int irq, void *d) > > { > > - int lo, hi; > > struct comedi_device *dev = d; > > struct dt2814_private *devpriv = dev->private; > > struct comedi_subdevice *s = dev->read_subdev; > > - int data; > > > > if (!dev->attached) { > > dev_err(dev->class_dev, "spurious interrupt\n"); > > return IRQ_HANDLED; > > } > > > > - hi = inb(dev->iobase + DT2814_DATA); > > - lo = inb(dev->iobase + DT2814_DATA); > > - > > - data = (hi << 4) | (lo >> 4); > > OK, 'data' is unused but are these 2 'inb(dev->iobase + DT2814_DATA)' > needed or not? I would guess that they're needed but I don't know > this hardware. > > > @@ -241,8 +233,6 @@ static int dt2814_attach(struct comedi_device *dev, > > struct comedi_devconfig *it) > > dev_err(dev->class_dev, "reset error (fatal)\n"); > > return -EIO; > > } > > - i = inb(dev->iobase + DT2814_DATA); > > - i = inb(dev->iobase + DT2814_DATA); > > Same here. > > -- Luc
Re: [PATCH] Removing ununsed variable int lo, hi, int data and int i from comedi/drivers/dt2814.c.
Hi, On Sun, May 24, 2020 at 05:06:18PM +0530, Gaurav Pathak wrote: > Silence following sparse warning: > drivers/staging/comedi/drivers/dt2814.c: In function ‘dt2814_interrupt’: > drivers/staging/comedi/drivers/dt2814.c:193:6: warning: variable ‘data’ set > but not used [-Wunused-but-set-variable] > int data; > ^~~~ > drivers/staging/comedi/drivers/dt2814.c: In function ‘dt2814_attach’: > drivers/staging/comedi/drivers/dt2814.c:232:6: warning: variable ‘i’ set but > not used [-Wunused-but-set-variable] > int i; > ^ These warnings are not from sparse but simply from the compiler. > static irqreturn_t dt2814_interrupt(int irq, void *d) > { > - int lo, hi; > struct comedi_device *dev = d; > struct dt2814_private *devpriv = dev->private; > struct comedi_subdevice *s = dev->read_subdev; > - int data; > > if (!dev->attached) { > dev_err(dev->class_dev, "spurious interrupt\n"); > return IRQ_HANDLED; > } > > - hi = inb(dev->iobase + DT2814_DATA); > - lo = inb(dev->iobase + DT2814_DATA); > - > - data = (hi << 4) | (lo >> 4); OK, 'data' is unused but are these 2 'inb(dev->iobase + DT2814_DATA)' needed or not? I would guess that they're needed but I don't know this hardware. > @@ -241,8 +233,6 @@ static int dt2814_attach(struct comedi_device *dev, > struct comedi_devconfig *it) > dev_err(dev->class_dev, "reset error (fatal)\n"); > return -EIO; > } > - i = inb(dev->iobase + DT2814_DATA); > - i = inb(dev->iobase + DT2814_DATA); Same here. -- Luc
[PATCH] Removing ununsed variable int lo, hi, int data and int i from comedi/drivers/dt2814.c.
Silence following sparse warning: drivers/staging/comedi/drivers/dt2814.c: In function ‘dt2814_interrupt’: drivers/staging/comedi/drivers/dt2814.c:193:6: warning: variable ‘data’ set but not used [-Wunused-but-set-variable] int data; ^~~~ drivers/staging/comedi/drivers/dt2814.c: In function ‘dt2814_attach’: drivers/staging/comedi/drivers/dt2814.c:232:6: warning: variable ‘i’ set but not used [-Wunused-but-set-variable] int i; ^ Signed-off-by: Gaurav Pathak --- drivers/staging/comedi/drivers/dt2814.c | 10 -- 1 file changed, 10 deletions(-) diff --git a/drivers/staging/comedi/drivers/dt2814.c b/drivers/staging/comedi/drivers/dt2814.c index d2c715737361..eea587d63e18 100644 --- a/drivers/staging/comedi/drivers/dt2814.c +++ b/drivers/staging/comedi/drivers/dt2814.c @@ -186,22 +186,15 @@ static int dt2814_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) static irqreturn_t dt2814_interrupt(int irq, void *d) { - int lo, hi; struct comedi_device *dev = d; struct dt2814_private *devpriv = dev->private; struct comedi_subdevice *s = dev->read_subdev; - int data; if (!dev->attached) { dev_err(dev->class_dev, "spurious interrupt\n"); return IRQ_HANDLED; } - hi = inb(dev->iobase + DT2814_DATA); - lo = inb(dev->iobase + DT2814_DATA); - - data = (hi << 4) | (lo >> 4); - if (!(--devpriv->ntrig)) { int i; @@ -229,7 +222,6 @@ static int dt2814_attach(struct comedi_device *dev, struct comedi_devconfig *it) struct dt2814_private *devpriv; struct comedi_subdevice *s; int ret; - int i; ret = comedi_request_region(dev, it->options[0], 0x2); if (ret) @@ -241,8 +233,6 @@ static int dt2814_attach(struct comedi_device *dev, struct comedi_devconfig *it) dev_err(dev->class_dev, "reset error (fatal)\n"); return -EIO; } - i = inb(dev->iobase + DT2814_DATA); - i = inb(dev->iobase + DT2814_DATA); if (it->options[1]) { ret = request_irq(it->options[1], dt2814_interrupt, 0, -- 2.17.1
Hi
How are you doing? I am Rose . It's a pleasure with due respect to cultivate a healthy friendship with you .I receive your email contact through my search and I would like you to contact me ,I will give you a full explanation about myself also send you my pictures.I will give you my reasons and purposes that contacted you. Yours Rose
hi
Querido amigo, Comuníquese conmigo para obtener más detalles sobre una transacción de ($ 5.5 millones de dólares). Le daré todos los detalles de la transacción tan pronto como tenga noticias suyas. Contáctame aquí (chikaadamst...@gmail.com) Barr Chika Adams Dear Friend, Please contact me for more details on a transaction of ($5.5 Million dollars). I will give you the full details of the transaction as soon as i hear from you. Contact me here (chikaadamst...@gmail.com) Barr Chika Adams
Hi
Hi, I write to inform you of a great business opportunity. My names is Jerry Machel Ivoirien Français, there is a business proposal i will like to discuss with you or your ORG. If it interests you please let me know and let's work it together. Regards Jerry Machel.
Hi
Hi dear, I'm Jessica Vail, from the United States,please i wish to have a communication with you. I wait for your answer. Jessica Vail.
hi
Greetings I sent a letter to your mail, but did not receive a response from you Regards, Christopher Bernard
[PATCH 4.4 47/70] staging: comedi: dt2815: fix writing hi byte of analog output
From: Ian Abbott commit ed87d33ddbcd9a1c3b5ae87995da34e6f51a862c upstream. The DT2815 analog output command is 16 bits wide, consisting of the 12-bit sample value in bits 15 to 4, the channel number in bits 3 to 1, and a voltage or current selector in bit 0. Both bytes of the 16-bit command need to be written in turn to a single 8-bit data register. However, the driver currently only writes the low 8-bits. It is broken and appears to have always been broken. Electronic copies of the DT2815 User's Manual seem impossible to find online, but looking at the source code, a best guess for the sequence the driver intended to use to write the analog output command is as follows: 1. Wait for the status register to read 0x00. 2. Write the low byte of the command to the data register. 3. Wait for the status register to read 0x80. 4. Write the high byte of the command to the data register. Step 4 is missing from the driver. Add step 4 to (hopefully) fix the driver. Also add a "FIXME" comment about setting bit 0 of the low byte of the command. Supposedly, it is used to choose between voltage output and current output, but the current driver always sets it to 1. Signed-off-by: Ian Abbott Cc: stable Link: https://lore.kernel.org/r/20200406142015.126982-1-abbo...@mev.co.uk Signed-off-by: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt2815.c |3 +++ 1 file changed, 3 insertions(+) --- a/drivers/staging/comedi/drivers/dt2815.c +++ b/drivers/staging/comedi/drivers/dt2815.c @@ -101,6 +101,7 @@ static int dt2815_ao_insn(struct comedi_ int ret; for (i = 0; i < insn->n; i++) { + /* FIXME: lo bit 0 chooses voltage output or current output */ lo = ((data[i] & 0x0f) << 4) | (chan << 1) | 0x01; hi = (data[i] & 0xff0) >> 4; @@ -114,6 +115,8 @@ static int dt2815_ao_insn(struct comedi_ if (ret) return ret; + outb(hi, dev->iobase + DT2815_DATA); + devpriv->ao_readback[chan] = data[i]; } return i;
[PATCH 4.9 52/80] staging: comedi: dt2815: fix writing hi byte of analog output
From: Ian Abbott commit ed87d33ddbcd9a1c3b5ae87995da34e6f51a862c upstream. The DT2815 analog output command is 16 bits wide, consisting of the 12-bit sample value in bits 15 to 4, the channel number in bits 3 to 1, and a voltage or current selector in bit 0. Both bytes of the 16-bit command need to be written in turn to a single 8-bit data register. However, the driver currently only writes the low 8-bits. It is broken and appears to have always been broken. Electronic copies of the DT2815 User's Manual seem impossible to find online, but looking at the source code, a best guess for the sequence the driver intended to use to write the analog output command is as follows: 1. Wait for the status register to read 0x00. 2. Write the low byte of the command to the data register. 3. Wait for the status register to read 0x80. 4. Write the high byte of the command to the data register. Step 4 is missing from the driver. Add step 4 to (hopefully) fix the driver. Also add a "FIXME" comment about setting bit 0 of the low byte of the command. Supposedly, it is used to choose between voltage output and current output, but the current driver always sets it to 1. Signed-off-by: Ian Abbott Cc: stable Link: https://lore.kernel.org/r/20200406142015.126982-1-abbo...@mev.co.uk Signed-off-by: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt2815.c |3 +++ 1 file changed, 3 insertions(+) --- a/drivers/staging/comedi/drivers/dt2815.c +++ b/drivers/staging/comedi/drivers/dt2815.c @@ -101,6 +101,7 @@ static int dt2815_ao_insn(struct comedi_ int ret; for (i = 0; i < insn->n; i++) { + /* FIXME: lo bit 0 chooses voltage output or current output */ lo = ((data[i] & 0x0f) << 4) | (chan << 1) | 0x01; hi = (data[i] & 0xff0) >> 4; @@ -114,6 +115,8 @@ static int dt2815_ao_insn(struct comedi_ if (ret) return ret; + outb(hi, dev->iobase + DT2815_DATA); + devpriv->ao_readback[chan] = data[i]; } return i;
[PATCH 4.14 069/117] staging: comedi: dt2815: fix writing hi byte of analog output
From: Ian Abbott commit ed87d33ddbcd9a1c3b5ae87995da34e6f51a862c upstream. The DT2815 analog output command is 16 bits wide, consisting of the 12-bit sample value in bits 15 to 4, the channel number in bits 3 to 1, and a voltage or current selector in bit 0. Both bytes of the 16-bit command need to be written in turn to a single 8-bit data register. However, the driver currently only writes the low 8-bits. It is broken and appears to have always been broken. Electronic copies of the DT2815 User's Manual seem impossible to find online, but looking at the source code, a best guess for the sequence the driver intended to use to write the analog output command is as follows: 1. Wait for the status register to read 0x00. 2. Write the low byte of the command to the data register. 3. Wait for the status register to read 0x80. 4. Write the high byte of the command to the data register. Step 4 is missing from the driver. Add step 4 to (hopefully) fix the driver. Also add a "FIXME" comment about setting bit 0 of the low byte of the command. Supposedly, it is used to choose between voltage output and current output, but the current driver always sets it to 1. Signed-off-by: Ian Abbott Cc: stable Link: https://lore.kernel.org/r/20200406142015.126982-1-abbo...@mev.co.uk Signed-off-by: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt2815.c |3 +++ 1 file changed, 3 insertions(+) --- a/drivers/staging/comedi/drivers/dt2815.c +++ b/drivers/staging/comedi/drivers/dt2815.c @@ -101,6 +101,7 @@ static int dt2815_ao_insn(struct comedi_ int ret; for (i = 0; i < insn->n; i++) { + /* FIXME: lo bit 0 chooses voltage output or current output */ lo = ((data[i] & 0x0f) << 4) | (chan << 1) | 0x01; hi = (data[i] & 0xff0) >> 4; @@ -114,6 +115,8 @@ static int dt2815_ao_insn(struct comedi_ if (ret) return ret; + outb(hi, dev->iobase + DT2815_DATA); + devpriv->ao_readback[chan] = data[i]; } return i;
Hi!
Hello friend, I have a business proposal that I want to share with you, it is lucrative and it is going to benefit you and me. And I do need you to advise me on your position. Please contact me via email address: (saf...@scurelmail.com) for more informationa. Yours sincerely, Mrs.Safiya Qadhafi.
Hi!
Hello friend, I have a business proposal that I want to share with you, it is lucrative and it is going to benefit you and me. And I do need you to advise me on your position. Please contact me via email address: (saf...@scurelmail.com) for more informationa. Yours sincerely, Mrs.Safiya Qadhafi.
[PATCH 4.19 113/131] staging: comedi: dt2815: fix writing hi byte of analog output
From: Ian Abbott commit ed87d33ddbcd9a1c3b5ae87995da34e6f51a862c upstream. The DT2815 analog output command is 16 bits wide, consisting of the 12-bit sample value in bits 15 to 4, the channel number in bits 3 to 1, and a voltage or current selector in bit 0. Both bytes of the 16-bit command need to be written in turn to a single 8-bit data register. However, the driver currently only writes the low 8-bits. It is broken and appears to have always been broken. Electronic copies of the DT2815 User's Manual seem impossible to find online, but looking at the source code, a best guess for the sequence the driver intended to use to write the analog output command is as follows: 1. Wait for the status register to read 0x00. 2. Write the low byte of the command to the data register. 3. Wait for the status register to read 0x80. 4. Write the high byte of the command to the data register. Step 4 is missing from the driver. Add step 4 to (hopefully) fix the driver. Also add a "FIXME" comment about setting bit 0 of the low byte of the command. Supposedly, it is used to choose between voltage output and current output, but the current driver always sets it to 1. Signed-off-by: Ian Abbott Cc: stable Link: https://lore.kernel.org/r/20200406142015.126982-1-abbo...@mev.co.uk Signed-off-by: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt2815.c |3 +++ 1 file changed, 3 insertions(+) --- a/drivers/staging/comedi/drivers/dt2815.c +++ b/drivers/staging/comedi/drivers/dt2815.c @@ -92,6 +92,7 @@ static int dt2815_ao_insn(struct comedi_ int ret; for (i = 0; i < insn->n; i++) { + /* FIXME: lo bit 0 chooses voltage output or current output */ lo = ((data[i] & 0x0f) << 4) | (chan << 1) | 0x01; hi = (data[i] & 0xff0) >> 4; @@ -105,6 +106,8 @@ static int dt2815_ao_insn(struct comedi_ if (ret) return ret; + outb(hi, dev->iobase + DT2815_DATA); + devpriv->ao_readback[chan] = data[i]; } return i;
[PATCH 5.4 136/168] staging: comedi: dt2815: fix writing hi byte of analog output
From: Ian Abbott commit ed87d33ddbcd9a1c3b5ae87995da34e6f51a862c upstream. The DT2815 analog output command is 16 bits wide, consisting of the 12-bit sample value in bits 15 to 4, the channel number in bits 3 to 1, and a voltage or current selector in bit 0. Both bytes of the 16-bit command need to be written in turn to a single 8-bit data register. However, the driver currently only writes the low 8-bits. It is broken and appears to have always been broken. Electronic copies of the DT2815 User's Manual seem impossible to find online, but looking at the source code, a best guess for the sequence the driver intended to use to write the analog output command is as follows: 1. Wait for the status register to read 0x00. 2. Write the low byte of the command to the data register. 3. Wait for the status register to read 0x80. 4. Write the high byte of the command to the data register. Step 4 is missing from the driver. Add step 4 to (hopefully) fix the driver. Also add a "FIXME" comment about setting bit 0 of the low byte of the command. Supposedly, it is used to choose between voltage output and current output, but the current driver always sets it to 1. Signed-off-by: Ian Abbott Cc: stable Link: https://lore.kernel.org/r/20200406142015.126982-1-abbo...@mev.co.uk Signed-off-by: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt2815.c |3 +++ 1 file changed, 3 insertions(+) --- a/drivers/staging/comedi/drivers/dt2815.c +++ b/drivers/staging/comedi/drivers/dt2815.c @@ -92,6 +92,7 @@ static int dt2815_ao_insn(struct comedi_ int ret; for (i = 0; i < insn->n; i++) { + /* FIXME: lo bit 0 chooses voltage output or current output */ lo = ((data[i] & 0x0f) << 4) | (chan << 1) | 0x01; hi = (data[i] & 0xff0) >> 4; @@ -105,6 +106,8 @@ static int dt2815_ao_insn(struct comedi_ if (ret) return ret; + outb(hi, dev->iobase + DT2815_DATA); + devpriv->ao_readback[chan] = data[i]; } return i;
[PATCH 5.6 134/167] staging: comedi: dt2815: fix writing hi byte of analog output
From: Ian Abbott commit ed87d33ddbcd9a1c3b5ae87995da34e6f51a862c upstream. The DT2815 analog output command is 16 bits wide, consisting of the 12-bit sample value in bits 15 to 4, the channel number in bits 3 to 1, and a voltage or current selector in bit 0. Both bytes of the 16-bit command need to be written in turn to a single 8-bit data register. However, the driver currently only writes the low 8-bits. It is broken and appears to have always been broken. Electronic copies of the DT2815 User's Manual seem impossible to find online, but looking at the source code, a best guess for the sequence the driver intended to use to write the analog output command is as follows: 1. Wait for the status register to read 0x00. 2. Write the low byte of the command to the data register. 3. Wait for the status register to read 0x80. 4. Write the high byte of the command to the data register. Step 4 is missing from the driver. Add step 4 to (hopefully) fix the driver. Also add a "FIXME" comment about setting bit 0 of the low byte of the command. Supposedly, it is used to choose between voltage output and current output, but the current driver always sets it to 1. Signed-off-by: Ian Abbott Cc: stable Link: https://lore.kernel.org/r/20200406142015.126982-1-abbo...@mev.co.uk Signed-off-by: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt2815.c |3 +++ 1 file changed, 3 insertions(+) --- a/drivers/staging/comedi/drivers/dt2815.c +++ b/drivers/staging/comedi/drivers/dt2815.c @@ -92,6 +92,7 @@ static int dt2815_ao_insn(struct comedi_ int ret; for (i = 0; i < insn->n; i++) { + /* FIXME: lo bit 0 chooses voltage output or current output */ lo = ((data[i] & 0x0f) << 4) | (chan << 1) | 0x01; hi = (data[i] & 0xff0) >> 4; @@ -105,6 +106,8 @@ static int dt2815_ao_insn(struct comedi_ if (ret) return ret; + outb(hi, dev->iobase + DT2815_DATA); + devpriv->ao_readback[chan] = data[i]; } return i;
Hi dear,
Hi dear, I'm Mrs Karin Großmann, please i wish to have a communication with you. I am waiting for your answer, mrskaringrossma...@gmail.com Mrs Karin Großmann.
HI
Lieber Freund Ich bin Herr Lipton, Rechtsberater. Ich möchte, dass Ihr Kontakt mir hilft, einen von meinem verstorbenen Kunden auf seinem Konto hinterlassenen wertvollen Betrag (4,8 Mio. USD) wiederzugewinnen, bevor er von der Security Finance-Firma, bei der der Betrag eingezahlt wurde, unbrauchbar beschlagnahmt oder ausgewertet wird. Ich bitte nur um ehrliche Zusammenarbeit, um diese Transaktion so schnell wie möglich zu sehen. Ich suche eine direkte Antwort auf weitere Klarstellungen. Grüße Mr. Lipton Daveid (links)
Re:⏰Hi
Grandios! http://knrsbwy.Merissa836.xyz/index ___ Bis bald nik_bin_nek_a...@yahoo.com
Hi dear,
Hi dear, I'm Jessica Vail, from the United States,please i wish to have a communication with you. I am waiting for your answer, Jessica Vail.
HI
Drogi przyjacielu, Jestem pan Lipton, który nie był radcą prawnym. Chcę, aby twój kontakt pomógł mi odzyskać fundusz o wartości (4,8 miliona dolarów) pozostawiony przez mojego zmarłego klienta na jego koncie, zanim zostanie on skonfiskowany lub uznany za nieużyteczny przez firmę Security Finance, jeśli to kwota została zdeponowana, Wszystko, czego od ciebie wymagam, to twoja uczciwa współpraca, abyśmy mogli zobaczyć tę transakcję jak najszybciej. proszę o bezpośrednią odpowiedź w celu uzyskania dodatkowych wyjaśnień. Pozdrowienia, Mr.Lipton Daveid (Esq)
Hi Dear
-- Hello My name is Haneefa, i am Arab girl. Contact me back i have something to tell you about
Hi dear,
Hi dear, I'm Jessica Vail, from the United States,please i wish to have a communication with you. I am waiting for your answer, Jessica Vail,
hi
Dear beloved, Hello how are you doing i will like to know more about you, my name is Sgt Alves Sarment.Due to the confidentiality of this information,I would want you to send me your private email where I can send you a comprehensive information about myself Or you can still contact me through my private email:alvessarmen...@gmail.com Regards, Sarment.
Hi, This is Clara
Are you there ?. Can I have a word with you privately?
Hi
I need your help
Hi
Nice to meet you
hi
How are you? I hope you're fine, I sent you a message earlier, but there was no response from you, did you receive my first email to you? I urge you to confirm receipt of my previous letter and contact me by email
Hi Dear,
Hello, Compliment of the day to you. I am Mrs felicia william; I am sending this brief letter to solicit your partnership to transfer $19.5 million US Dollars. I shall send you more information and procedures when I receive positive response from you. please send me a message in my Email box and here is my(mrsfeliciawillam...@gmail.com) Thanks Best Regards, Mrs felicia william
[PATCH v3 03/14] pwm: meson: use GENMASK and FIELD_PREP for the lo and hi values
meson_pwm_calc() ensures that "lo" is always less than 16 bits wide (otherwise it would overflow into the "hi" part of the REG_PWM_{A,B} register). Use GENMASK and FIELD_PREP for the lo and hi values to make it easier to spot how wide these are internally. Additionally this is a preparation step for the .get_state() implementation where the GENMASK() for lo and hi becomes handy because it can be used with FIELD_GET() to extract the values from the register REG_PWM_{A,B} register. No functional changes intended. Reviewed-by: Neil Armstrong Reviewed-by: Uwe Kleine-König Signed-off-by: Martin Blumenstingl --- drivers/pwm/pwm-meson.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c index 35b38c7201c3..c62a3ac924d0 100644 --- a/drivers/pwm/pwm-meson.c +++ b/drivers/pwm/pwm-meson.c @@ -5,6 +5,8 @@ * Copyright (C) 2014 Amlogic, Inc. */ +#include +#include #include #include #include @@ -20,7 +22,8 @@ #define REG_PWM_A 0x0 #define REG_PWM_B 0x4 -#define PWM_HIGH_SHIFT 16 +#define PWM_LOW_MASK GENMASK(15, 0) +#define PWM_HIGH_MASK GENMASK(31, 16) #define REG_MISC_AB0x8 #define MISC_B_CLK_EN BIT(23) @@ -217,7 +220,8 @@ static void meson_pwm_enable(struct meson_pwm *meson, struct pwm_device *pwm) value |= clk_enable; writel(value, meson->base + REG_MISC_AB); - value = (channel->hi << PWM_HIGH_SHIFT) | channel->lo; + value = FIELD_PREP(PWM_HIGH_MASK, channel->hi) | + FIELD_PREP(PWM_LOW_MASK, channel->lo); writel(value, meson->base + offset); value = readl(meson->base + REG_MISC_AB); -- 2.22.0
Re: [PATCH v2 03/14] pwm: meson: use GENMASK and FIELD_PREP for the lo and hi values
On Sat, Jun 08, 2019 at 08:06:15PM +0200, Martin Blumenstingl wrote: > meson_pwm_calc() ensures that "lo" is always less than 16 bits wide > (otherwise it would overflow into the "hi" part of the REG_PWM_{A,B} > register). > Use GENMASK and FIELD_PREP for the lo and hi values to make it easier to > spot how wide these are internally. Additionally this is a preparation > step for the .get_state() implementation where the GENMASK() for lo and > hi becomes handy because it can be used with FIELD_GET() to extract the > values from the register REG_PWM_{A,B} register. > > No functional changes intended. > > Signed-off-by: Martin Blumenstingl > Reviewed-by: Neil Armstrong Reviewed-by: Uwe Kleine-König Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König| Industrial Linux Solutions | http://www.pengutronix.de/ |
hi
[PATCH v2 03/14] pwm: meson: use GENMASK and FIELD_PREP for the lo and hi values
meson_pwm_calc() ensures that "lo" is always less than 16 bits wide (otherwise it would overflow into the "hi" part of the REG_PWM_{A,B} register). Use GENMASK and FIELD_PREP for the lo and hi values to make it easier to spot how wide these are internally. Additionally this is a preparation step for the .get_state() implementation where the GENMASK() for lo and hi becomes handy because it can be used with FIELD_GET() to extract the values from the register REG_PWM_{A,B} register. No functional changes intended. Signed-off-by: Martin Blumenstingl Reviewed-by: Neil Armstrong --- drivers/pwm/pwm-meson.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c index 35b38c7201c3..c62a3ac924d0 100644 --- a/drivers/pwm/pwm-meson.c +++ b/drivers/pwm/pwm-meson.c @@ -5,6 +5,8 @@ * Copyright (C) 2014 Amlogic, Inc. */ +#include +#include #include #include #include @@ -20,7 +22,8 @@ #define REG_PWM_A 0x0 #define REG_PWM_B 0x4 -#define PWM_HIGH_SHIFT 16 +#define PWM_LOW_MASK GENMASK(15, 0) +#define PWM_HIGH_MASK GENMASK(31, 16) #define REG_MISC_AB0x8 #define MISC_B_CLK_EN BIT(23) @@ -217,7 +220,8 @@ static void meson_pwm_enable(struct meson_pwm *meson, struct pwm_device *pwm) value |= clk_enable; writel(value, meson->base + REG_MISC_AB); - value = (channel->hi << PWM_HIGH_SHIFT) | channel->lo; + value = FIELD_PREP(PWM_HIGH_MASK, channel->hi) | + FIELD_PREP(PWM_LOW_MASK, channel->lo); writel(value, meson->base + offset); value = readl(meson->base + REG_MISC_AB); -- 2.21.0
Hi dear,
Hi dear, I am still waiting for your Email response, you did receive my first email to you Respectfully Yours, Capt Katie Higgins
Hi
Dear,i am Jennifer Peace,it would be great to know you,i have a very important and confidential matter that i want to discuss with you,reply me back for more discus. Regards, Jennifer Peace.
Re: [PATCH 03/14] pwm: meson: use GENMASK and FIELD_PREP for the lo and hi values
On 25/05/2019 20:11, Martin Blumenstingl wrote: > meson_pwm_calc() ensures that "lo" is always less than 16 bits wide > (otherwise it would overflow into the "hi" part of the REG_PWM_{A,B} > register). > Use GENMASK and FIELD_PREP for the lo and hi values to make it easier to > spot how wide these are internally. Additionally this is a preparation > step for the .get_state() implementation where the GENMASK() for lo and > hi becomes handy because it can be used with FIELD_GET() to extract the > values from the register REG_PWM_{A,B} register. > > No functional changes intended. > > Signed-off-by: Martin Blumenstingl > --- > drivers/pwm/pwm-meson.c | 8 ++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c > index 35b38c7201c3..c62a3ac924d0 100644 > --- a/drivers/pwm/pwm-meson.c > +++ b/drivers/pwm/pwm-meson.c > @@ -5,6 +5,8 @@ > * Copyright (C) 2014 Amlogic, Inc. > */ > > +#include > +#include > #include > #include > #include > @@ -20,7 +22,8 @@ > > #define REG_PWM_A0x0 > #define REG_PWM_B0x4 > -#define PWM_HIGH_SHIFT 16 > +#define PWM_LOW_MASK GENMASK(15, 0) > +#define PWM_HIGH_MASKGENMASK(31, 16) > > #define REG_MISC_AB 0x8 > #define MISC_B_CLK_ENBIT(23) > @@ -217,7 +220,8 @@ static void meson_pwm_enable(struct meson_pwm *meson, > struct pwm_device *pwm) > value |= clk_enable; > writel(value, meson->base + REG_MISC_AB); > > - value = (channel->hi << PWM_HIGH_SHIFT) | channel->lo; > + value = FIELD_PREP(PWM_HIGH_MASK, channel->hi) | > + FIELD_PREP(PWM_LOW_MASK, channel->lo); > writel(value, meson->base + offset); > > value = readl(meson->base + REG_MISC_AB); > Reviewed-by: Neil Armstrong
HI
My Dear, How are you today? My name is Mrs. Sonia Kennedy from U.K, I am 53 years old. I am suffering from Esophageal Liver Cancer for past 4 years now. Just yesterday my doctor privately told me that I might not survive this cancer illness in the next 2 weeks because of my present condition. My dear I am divinely touched in my heart to offer my inheritance fund to you the sum of (€4,500,000.00 euro) for Charity work to help the less privileges and orphans. My dear please get back to me in my private email below so that I will give you all the information about this Fund. (mrssonia...@gmail.com). Regard Mr.Sonia Kennedy
[PATCH 03/14] pwm: meson: use GENMASK and FIELD_PREP for the lo and hi values
meson_pwm_calc() ensures that "lo" is always less than 16 bits wide (otherwise it would overflow into the "hi" part of the REG_PWM_{A,B} register). Use GENMASK and FIELD_PREP for the lo and hi values to make it easier to spot how wide these are internally. Additionally this is a preparation step for the .get_state() implementation where the GENMASK() for lo and hi becomes handy because it can be used with FIELD_GET() to extract the values from the register REG_PWM_{A,B} register. No functional changes intended. Signed-off-by: Martin Blumenstingl --- drivers/pwm/pwm-meson.c | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c index 35b38c7201c3..c62a3ac924d0 100644 --- a/drivers/pwm/pwm-meson.c +++ b/drivers/pwm/pwm-meson.c @@ -5,6 +5,8 @@ * Copyright (C) 2014 Amlogic, Inc. */ +#include +#include #include #include #include @@ -20,7 +22,8 @@ #define REG_PWM_A 0x0 #define REG_PWM_B 0x4 -#define PWM_HIGH_SHIFT 16 +#define PWM_LOW_MASK GENMASK(15, 0) +#define PWM_HIGH_MASK GENMASK(31, 16) #define REG_MISC_AB0x8 #define MISC_B_CLK_EN BIT(23) @@ -217,7 +220,8 @@ static void meson_pwm_enable(struct meson_pwm *meson, struct pwm_device *pwm) value |= clk_enable; writel(value, meson->base + REG_MISC_AB); - value = (channel->hi << PWM_HIGH_SHIFT) | channel->lo; + value = FIELD_PREP(PWM_HIGH_MASK, channel->hi) | + FIELD_PREP(PWM_LOW_MASK, channel->lo); writel(value, meson->base + offset); value = readl(meson->base + REG_MISC_AB); -- 2.21.0
HI
Dear Sir / Madam, Please forgive me if my request is not acceptable by your kind person. I am Dr. Nor Salah Ibrahim, Working at MAYBANK (Malaysia) as the Independent Non-Executive Director & Audit Committee. During our last banking Audits we discovered an abandoned account belongs to one of our Foreign Deceased Customer, Late Mr. Wang Jian, The Co-founder and Co-chairman of HNA Group, a Chinese conglomerate with significant real estate ownerships across the U.S., died in an accident while on a business trip in France on Tuesday. Please go through this link: https://observer.com/2018/07/wang-jian-hna-founder-dies-tragic-fall/ I am writing to request your assistance in transferring the sum of $35 million USD (Fifteen Million United States Dollars) into your account as the Late Mr. Wang Jian Foreign Business Partner. Meanwhile, before I contacted you I have done personal investigation in locating any of Late Mr. Wang Jian relatives who knows about the account, but I came out unsuccessful. I will like to bring to your notice that I have made all the necessary arrangements with my colleagues to transfer the funds into your nominated bank account without any problem. Upon your consideration and acceptance of this offer, I am willing to offer you 40% for your assistant, while 60% for me which I am planning to invest into a profitable business venture in your country. More details information will be forwarded to you to breakdown explaining comprehensively what require of you. Waiting for your urgent reply, Best Regards Dr. Nor Salah Ibrahim
Hi gorgeous
My name is Gavin. I want to get to know you better, if I may be so bold. I consider myself an honest man, and I am currently looking for a relationship in which I feel loved. Please tell me more about yourself, if you don't mind. Gavin.
hi
Good day my dear hope you receive my message proposal? i need your urgent reply now . Thanks Yours Michelle