[jira] [Commented] (JCRVLT-756) Sub packages contained in "all" package no longer installed

2024-06-06 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/JCRVLT-756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17852838#comment-17852838
 ] 

Konrad Windszus commented on JCRVLT-756:


This points more to a problem in AEM than a general one in FileVault then. I 
would recommend involving Adobe support.

> Sub packages contained in "all" package no longer installed
> ---
>
> Key: JCRVLT-756
> URL: https://issues.apache.org/jira/browse/JCRVLT-756
> Project: Jackrabbit FileVault
>  Issue Type: Bug
>  Components: vlt
>Affects Versions: 3.7.4
>Reporter: Stefan Seifert
>Priority: Critical
> Attachments: 
> vault_installer_2024.5.16461.20240524T172309Z-240500.log, 
> vault_installer_2024.5.16544.20240530T165853Z-240500.log
>
>
> i noticed that with latest vlt 3.7.3-SNAPSHOT it's not longer possible to 
> install a package that includes sub packages - the sub packages are 
> extracted, but not installed themselves properly.
> it seems the functionality broke with one of the recent commits:
>  * it works fine with 3.7.3-T20240308111857-81fa88f1
>  * but does no longer work with 3.7.3-T20240514105118-694f6aea
>  * differences between those two revs: 
> [https://github.com/apache/jackrabbit-filevault/compare/81fa88f1d7af07e77871e2c0bb03515107f18d74...694f6aeac27d9b6656647e968636fd9f5bc99238]
> i tested with AEMaaCS SDK in two different versions - steps to reproduce the 
> problem:
>  * setup a local AEMaaCS SDK instance
>  * upload package 
> [https://github.com/adobe/aem-guides-wknd/releases/download/aem-guides-wknd-3.2.0/aem-guides-wknd.all-3.2.0.zip]
>  * install this package
>  * expected behavior: the package included the 5 subpackages should be 
> extracted in packaged manager and all of them should be installed
> this works with AEMaaCS SDK 2024.5.16461.20240524T172309Z-240500 which 
> includes 3.7.3-T20240308111857-81fa88f1
> it does no longer work with AEMaaCS SDK 2024.5.16544.20240530T165853Z-240500 
> which includes 3.7.3-T20240514105118-694f6aea
> i've attached log files with the package install procedure with both those 
> versions.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (JCRVLT-756) Sub packages contained in "all" package no longer installed

2024-06-06 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/JCRVLT-756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17852772#comment-17852772
 ] 

Konrad Windszus commented on JCRVLT-756:


[~sseifert] Any chance you can come up with a failing IT?

> Sub packages contained in "all" package no longer installed
> ---
>
> Key: JCRVLT-756
> URL: https://issues.apache.org/jira/browse/JCRVLT-756
> Project: Jackrabbit FileVault
>  Issue Type: Bug
>  Components: vlt
>Affects Versions: 3.7.4
>Reporter: Stefan Seifert
>Priority: Critical
> Attachments: 
> vault_installer_2024.5.16461.20240524T172309Z-240500.log, 
> vault_installer_2024.5.16544.20240530T165853Z-240500.log
>
>
> i noticed that with latest vlt 3.7.3-SNAPSHOT it's not longer possible to 
> install a package that includes sub packages - the sub packages are 
> extracted, but not installed themselves properly.
> it seems the functionality broke with one of the recent commits:
>  * it works fine with 3.7.3-T20240308111857-81fa88f1
>  * but does no longer work with 3.7.3-T20240514105118-694f6aea
>  * differences between those two revs: 
> [https://github.com/apache/jackrabbit-filevault/compare/81fa88f1d7af07e77871e2c0bb03515107f18d74...694f6aeac27d9b6656647e968636fd9f5bc99238]
> i tested with AEMaaCS SDK in two different versions - steps to reproduce the 
> problem:
>  * setup a local AEMaaCS SDK instance
>  * upload package 
> [https://github.com/adobe/aem-guides-wknd/releases/download/aem-guides-wknd-3.2.0/aem-guides-wknd.all-3.2.0.zip]
>  * install this package
>  * expected behavior: the package included the 5 subpackages should be 
> extracted in packaged manager and all of them should be installed
> this works with AEMaaCS SDK 2024.5.16461.20240524T172309Z-240500 which 
> includes 3.7.3-T20240308111857-81fa88f1
> it does no longer work with AEMaaCS SDK 2024.5.16544.20240530T165853Z-240500 
> which includes 3.7.3-T20240514105118-694f6aea
> i've attached log files with the package install procedure with both those 
> versions.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (SLING-12350) Make the HTL Compiler build work on more recent JDKs

2024-06-06 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/SLING-12350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus resolved SLING-12350.
-
  Assignee: Konrad Windszus
Resolution: Fixed

PR is applied in 
https://github.com/apache/sling-org-apache-sling-scripting-sightly-compiler/commit/69de23f3eb41c02fb5d2bd47e869617c3c34ee57.
 [~Csaba Varga] Thanks a lot for the contribution.

> Make the HTL Compiler build work on more recent JDKs
> 
>
> Key: SLING-12350
> URL: https://issues.apache.org/jira/browse/SLING-12350
> Project: Sling
>  Issue Type: Improvement
>  Components: HTL
>Affects Versions: Scripting HTL Compiler 1.2.14-1.4.0
>Reporter: Csaba Varga
>Assignee: Konrad Windszus
>Priority: Minor
> Fix For: Scripting HTL Compiler 1.2.16-1.4.0
>
>
> The current build of the HTL compiler artifact fails on JDK 17 and later 
> because it tries to access standard library internals via reflection. It 
> should be updated so that it can be built on recent JDKs.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [PATCH] drm/msm/adreno: De-spaghettify the use of memory barriers

2024-06-06 Thread Konrad Dybcio
On 4.06.2024 4:40 PM, Will Deacon wrote:
> On Thu, May 16, 2024 at 01:55:26PM -0500, Andrew Halaney wrote:
>> On Thu, May 16, 2024 at 08:20:05PM GMT, Akhil P Oommen wrote:
>>> On Thu, May 16, 2024 at 08:15:34AM -0500, Andrew Halaney wrote:
>>>> If I understand correctly, you don't need any memory barrier.
>>>> writel()/readl()'s are ordered to the same endpoint. That goes for all
>>>> the reordering/barrier comments mentioned below too.
>>>>
>>>> device-io.rst:
>>>>
>>>> The read and write functions are defined to be ordered. That is the
>>>> compiler is not permitted to reorder the I/O sequence. When the 
>>>> ordering
>>>> can be compiler optimised, you can use __readb() and friends to
>>>> indicate the relaxed ordering. Use this with care.
>>>>
>>>> memory-barriers.txt:
>>>>
>>>>  (*) readX(), writeX():
>>>>
>>>>The readX() and writeX() MMIO accessors take a pointer to the
>>>>peripheral being accessed as an __iomem * parameter. For pointers
>>>>mapped with the default I/O attributes (e.g. those returned by
>>>>ioremap()), the ordering guarantees are as follows:
>>>>
>>>>1. All readX() and writeX() accesses to the same peripheral are 
>>>> ordered
>>>>   with respect to each other. This ensures that MMIO register 
>>>> accesses
>>>>   by the same CPU thread to a particular device will arrive in 
>>>> program
>>>>   order.
>>>>
>>>
>>> In arm64, a writel followed by readl translates to roughly the following
>>> sequence: dmb_wmb(), __raw_writel(), __raw_readl(), dmb_rmb(). I am not
>>> sure what is stopping compiler from reordering  __raw_writel() and 
>>> __raw_readl()
>>> above? I am assuming iomem cookie is ignored during compilation.
>>
>> It seems to me that is due to some usage of volatile there in
>> __raw_writel() etc, but to be honest after reading about volatile and
>> some threads from gcc mailing lists, I don't have a confident answer :)
>>
>>>
>>> Added Will to this thread if he can throw some light on this.
>>
>> Hopefully Will can school us.
> 
> The ordering in this case is ensured by the memory attributes used for
> ioremap(). When an MMIO region is mapped using Device-nGnRE attributes
> (as it the case for ioremap()), the "nR" part means "no reordering", so
> readX() and writeX() to that region are ordered wrt each other.
> 
> Note that guarantee _doesn't_ apply to other flavours of ioremap(), so
> e.g. ioremap_wc() won't give you the ordering.
> 
> Hope that helps,

Just to make sure I'm following, would mapping things as nGnRnE effectively
get rid of write buffering, perhaps being a way of debugging whether that
in particular is causing issues (at the cost of speed)?

Konrad


Re: [PATCH] drm/msm/adreno: De-spaghettify the use of memory barriers

2024-06-06 Thread Konrad Dybcio
On 4.06.2024 4:40 PM, Will Deacon wrote:
> On Thu, May 16, 2024 at 01:55:26PM -0500, Andrew Halaney wrote:
>> On Thu, May 16, 2024 at 08:20:05PM GMT, Akhil P Oommen wrote:
>>> On Thu, May 16, 2024 at 08:15:34AM -0500, Andrew Halaney wrote:
>>>> If I understand correctly, you don't need any memory barrier.
>>>> writel()/readl()'s are ordered to the same endpoint. That goes for all
>>>> the reordering/barrier comments mentioned below too.
>>>>
>>>> device-io.rst:
>>>>
>>>> The read and write functions are defined to be ordered. That is the
>>>> compiler is not permitted to reorder the I/O sequence. When the 
>>>> ordering
>>>> can be compiler optimised, you can use __readb() and friends to
>>>> indicate the relaxed ordering. Use this with care.
>>>>
>>>> memory-barriers.txt:
>>>>
>>>>  (*) readX(), writeX():
>>>>
>>>>The readX() and writeX() MMIO accessors take a pointer to the
>>>>peripheral being accessed as an __iomem * parameter. For pointers
>>>>mapped with the default I/O attributes (e.g. those returned by
>>>>ioremap()), the ordering guarantees are as follows:
>>>>
>>>>1. All readX() and writeX() accesses to the same peripheral are 
>>>> ordered
>>>>   with respect to each other. This ensures that MMIO register 
>>>> accesses
>>>>   by the same CPU thread to a particular device will arrive in 
>>>> program
>>>>   order.
>>>>
>>>
>>> In arm64, a writel followed by readl translates to roughly the following
>>> sequence: dmb_wmb(), __raw_writel(), __raw_readl(), dmb_rmb(). I am not
>>> sure what is stopping compiler from reordering  __raw_writel() and 
>>> __raw_readl()
>>> above? I am assuming iomem cookie is ignored during compilation.
>>
>> It seems to me that is due to some usage of volatile there in
>> __raw_writel() etc, but to be honest after reading about volatile and
>> some threads from gcc mailing lists, I don't have a confident answer :)
>>
>>>
>>> Added Will to this thread if he can throw some light on this.
>>
>> Hopefully Will can school us.
> 
> The ordering in this case is ensured by the memory attributes used for
> ioremap(). When an MMIO region is mapped using Device-nGnRE attributes
> (as it the case for ioremap()), the "nR" part means "no reordering", so
> readX() and writeX() to that region are ordered wrt each other.
> 
> Note that guarantee _doesn't_ apply to other flavours of ioremap(), so
> e.g. ioremap_wc() won't give you the ordering.
> 
> Hope that helps,

Just to make sure I'm following, would mapping things as nGnRnE effectively
get rid of write buffering, perhaps being a way of debugging whether that
in particular is causing issues (at the cost of speed)?

Konrad


[PATCH] drm/msm/a6xx: Fix A702 UBWC mode

2024-06-06 Thread Konrad Dybcio
UBWC_MODE is a one-bit-wide field, so a value of 2 is obviously bogus.

Replace it with the correct value (0).

Fixes: 18397519cb62 ("drm/msm/adreno: Add A702 support")
Reported-by: Connor Abbott 
Closes: 
https://lore.kernel.org/linux-arm-msm/CACu1E7FTN=kwaDJMNiTmFspALzj2+Q-nvsN5ugi=vz4rdug...@mail.gmail.com/
Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 973872ad0474..5383aff84830 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1409,7 +1409,7 @@ static void a6xx_calc_ubwc_config(struct adreno_gpu *gpu)
if (adreno_is_a702(gpu)) {
gpu->ubwc_config.highest_bank_bit = 14;
gpu->ubwc_config.min_acc_len = 1;
-   gpu->ubwc_config.ubwc_mode = 2;
+   gpu->ubwc_config.ubwc_mode = 0;
}
 }
 

---
base-commit: ee78a17615ad0cfdbbc27182b1047cd36c9d4d5f
change-id: 20240606-topic-a702_ubwcmode-dcc5fde0f330

Best regards,
-- 
Konrad Dybcio 



[PATCH] drm/msm/a6xx: Fix A702 UBWC mode

2024-06-06 Thread Konrad Dybcio
UBWC_MODE is a one-bit-wide field, so a value of 2 is obviously bogus.

Replace it with the correct value (0).

Fixes: 18397519cb62 ("drm/msm/adreno: Add A702 support")
Reported-by: Connor Abbott 
Closes: 
https://lore.kernel.org/linux-arm-msm/CACu1E7FTN=kwaDJMNiTmFspALzj2+Q-nvsN5ugi=vz4rdug...@mail.gmail.com/
Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 973872ad0474..5383aff84830 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1409,7 +1409,7 @@ static void a6xx_calc_ubwc_config(struct adreno_gpu *gpu)
if (adreno_is_a702(gpu)) {
gpu->ubwc_config.highest_bank_bit = 14;
gpu->ubwc_config.min_acc_len = 1;
-   gpu->ubwc_config.ubwc_mode = 2;
+   gpu->ubwc_config.ubwc_mode = 0;
}
 }
 

---
base-commit: ee78a17615ad0cfdbbc27182b1047cd36c9d4d5f
change-id: 20240606-topic-a702_ubwcmode-dcc5fde0f330

Best regards,
-- 
Konrad Dybcio 



Re: [PATCH] arm64: dts: qcom: qcm6490-fairphone-fp5: Use .mbn firmware for IPA

2024-06-06 Thread Konrad Dybcio
On 6.06.2024 11:09 AM, Luca Weiss wrote:
> Specify the file name for the squashed/non-split firmware with the .mbn
> extension instead of the split .mdt. The kernel can load both but the
> squashed version is preferred in dts nowadays.
> 
> Signed-off-by: Luca Weiss 
> ---

Reviewed-by: Konrad Dybcio 

Konrad



Re: [PATCH v2 5/7] drm/msm/adreno: Add A702 support

2024-06-06 Thread Konrad Dybcio
On 23.05.2024 2:14 PM, Connor Abbott wrote:
> On Fri, Feb 23, 2024 at 9:28 PM Konrad Dybcio  
> wrote:
>>
>> The A702 is a weird mix of 600 and 700 series.. Perhaps even a
>> testing ground for some A7xx features with good ol' A6xx silicon.
>> It's basically A610 that's been beefed up with some new registers
>> and hw features (like APRIV!), that was then cut back in size,
>> memory bus and some other ways.
>>
>> Add support for it, tested with QCM2290 / RB1.
>>
>> Signed-off-by: Konrad Dybcio 
>> ---

[...]

>> +
>> +   if (adreno_is_a702(gpu)) {
>> +   gpu->ubwc_config.highest_bank_bit = 14;
>> +   gpu->ubwc_config.min_acc_len = 1;
>> +   gpu->ubwc_config.ubwc_mode = 2;
> 
> I just noticed, but this is wrong. ubwc_mode is a 1 bit field and what
> this is actually doing is overwriting hbb_lo, making the highest bank
> bit 15 instead of 14.

You're right, this should be a 0. Thanks!

Konrad



Re: [PATCH v2 5/7] drm/msm/adreno: Add A702 support

2024-06-06 Thread Konrad Dybcio
On 23.05.2024 2:14 PM, Connor Abbott wrote:
> On Fri, Feb 23, 2024 at 9:28 PM Konrad Dybcio  
> wrote:
>>
>> The A702 is a weird mix of 600 and 700 series.. Perhaps even a
>> testing ground for some A7xx features with good ol' A6xx silicon.
>> It's basically A610 that's been beefed up with some new registers
>> and hw features (like APRIV!), that was then cut back in size,
>> memory bus and some other ways.
>>
>> Add support for it, tested with QCM2290 / RB1.
>>
>> Signed-off-by: Konrad Dybcio 
>> ---

[...]

>> +
>> +   if (adreno_is_a702(gpu)) {
>> +   gpu->ubwc_config.highest_bank_bit = 14;
>> +   gpu->ubwc_config.min_acc_len = 1;
>> +   gpu->ubwc_config.ubwc_mode = 2;
> 
> I just noticed, but this is wrong. ubwc_mode is a 1 bit field and what
> this is actually doing is overwriting hbb_lo, making the highest bank
> bit 15 instead of 14.

You're right, this should be a 0. Thanks!

Konrad



[PATCH v2 3/7] drm/msm/adreno: Implement SMEM-based speed bin

2024-06-05 Thread Konrad Dybcio
On recent (SM8550+) Snapdragon platforms, the GPU speed bin data is
abstracted through SMEM, instead of being directly available in a fuse.

Add support for SMEM-based speed binning, which includes getting
"feature code" and "product code" from said source and parsing them
to form something that lets us match OPPs against.

Due to the product code being ignored in the context of Adreno on
production parts (as of SM8650), hardcode it to SOCINFO_PC_UNKNOWN.

Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c  |  8 +++---
 drivers/gpu/drm/msm/adreno/adreno_device.c |  2 ++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c| 41 +++---
 drivers/gpu/drm/msm/adreno/adreno_gpu.h| 12 ++---
 4 files changed, 53 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 973872ad0474..3f84417ff027 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -2894,13 +2894,15 @@ static u32 fuse_to_supp_hw(const struct adreno_info 
*info, u32 fuse)
return UINT_MAX;
 }
 
-static int a6xx_set_supported_hw(struct device *dev, const struct adreno_info 
*info)
+static int a6xx_set_supported_hw(struct adreno_gpu *adreno_gpu,
+struct device *dev,
+const struct adreno_info *info)
 {
u32 supp_hw;
u32 speedbin;
int ret;
 
-   ret = adreno_read_speedbin(dev, );
+   ret = adreno_read_speedbin(adreno_gpu, dev, );
/*
 * -ENOENT means that the platform doesn't support speedbin which is
 * fine
@@ -3060,7 +3062,7 @@ struct msm_gpu *a6xx_gpu_init(struct drm_device *dev)
 
a6xx_llc_slices_init(pdev, a6xx_gpu, is_a7xx);
 
-   ret = a6xx_set_supported_hw(>dev, config->info);
+   ret = a6xx_set_supported_hw(adreno_gpu, >dev, config->info);
if (ret) {
a6xx_llc_slices_destroy(a6xx_gpu);
kfree(a6xx_gpu);
diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c 
b/drivers/gpu/drm/msm/adreno/adreno_device.c
index c3703a51287b..901ef767e491 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_device.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_device.c
@@ -6,6 +6,8 @@
  * Copyright (c) 2014,2017 The Linux Foundation. All rights reserved.
  */
 
+#include 
+
 #include "adreno_gpu.h"
 
 bool hang_debug = false;
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c 
b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index 074fb498706f..055072260b3d 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -21,6 +21,9 @@
 #include "msm_gem.h"
 #include "msm_mmu.h"
 
+#include 
+#include 
+
 static u64 address_space_size = 0;
 MODULE_PARM_DESC(address_space_size, "Override for size of processes private 
GPU address space");
 module_param(address_space_size, ullong, 0600);
@@ -1057,9 +1060,39 @@ void adreno_gpu_ocmem_cleanup(struct adreno_ocmem 
*adreno_ocmem)
   adreno_ocmem->hdl);
 }
 
-int adreno_read_speedbin(struct device *dev, u32 *speedbin)
+int adreno_read_speedbin(struct adreno_gpu *adreno_gpu,
+struct device *dev, u32 *fuse)
 {
-   return nvmem_cell_read_variable_le_u32(dev, "speed_bin", speedbin);
+   u32 fcode;
+   int ret;
+
+   /*
+* Try reading the speedbin via a nvmem cell first
+* -ENOENT means "no nvmem-cells" and essentially means "old DT" or
+* "nvmem fuse is irrelevant", simply assume it's fine.
+*/
+   ret = nvmem_cell_read_variable_le_u32(dev, "speed_bin", fuse);
+   if (!ret)
+   return 0;
+   else if (ret != -ENOENT)
+   return dev_err_probe(dev, ret, "Couldn't read the speed bin 
fuse value\n");
+
+#ifdef CONFIG_QCOM_SMEM
+   /*
+* Only check the feature code - the product code only matters for
+* proto SoCs unavailable outside Qualcomm labs, as far as GPU bin
+* matching is concerned.
+*
+* Ignore EOPNOTSUPP, as not all SoCs expose this info through SMEM.
+*/
+   ret = qcom_smem_get_feature_code();
+   if (!ret) {
+   *fuse = ADRENO_SKU_ID(fcode);
+   } else if (ret != -EOPNOTSUPP)
+   return dev_err_probe(dev, ret, "Couldn't get feature code from 
SMEM\n");
+#endif
+
+   return 0;
 }
 
 int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
@@ -1098,9 +1131,9 @@ int adreno_gpu_init(struct drm_device *drm, struct 
platform_device *pdev,
devm_pm_opp_set_clkname(dev, "core");
}
 
-   if (adreno_read_speedbin(dev, ) || !speedbin)
+   if (adreno_read_speedbin(adreno_gpu, dev, ) || !speedbin)
speedbin = 0x;

[PATCH v2 4/7] drm/msm/adreno: Add speedbin data for SM8550 / A740

2024-06-05 Thread Konrad Dybcio
Add speebin data for A740, as found on SM8550 and derivative SoCs.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/adreno_device.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c 
b/drivers/gpu/drm/msm/adreno/adreno_device.c
index 901ef767e491..e00eef8099ae 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_device.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_device.c
@@ -570,6 +570,10 @@ static const struct adreno_info gpulist[] = {
.zapfw = "a740_zap.mdt",
.hwcg = a740_hwcg,
.address_space_size = SZ_16G,
+   .speedbins = ADRENO_SPEEDBINS(
+   { ADRENO_SKU_ID(SOCINFO_FC_AC), 0 },
+   { ADRENO_SKU_ID(SOCINFO_FC_AF), 0 },
+   ),
}, {
.chip_ids = ADRENO_CHIP_IDS(0x43051401), /* "C520v2" */
.family = ADRENO_7XX_GEN3,

-- 
2.43.0



[PATCH v2 2/7] soc: qcom: smem: Add a feature code getter

2024-06-05 Thread Konrad Dybcio
Recent (SM8550+ ish) Qualcomm SoCs have a new mechanism for precisely
identifying the specific SKU and the precise speed bin (in the general
meaning of this word, anyway): a pair of values called Product Code
and Feature Code.

Based on this information, we can deduce the available frequencies for
things such as Adreno. In the case of Adreno specifically, Pcode is
useless for non-prototype SoCs.

Introduce a getter for the feature code and export it.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Konrad Dybcio 
---
 drivers/soc/qcom/smem.c  | 33 +
 include/linux/soc/qcom/smem.h|  1 +
 include/linux/soc/qcom/socinfo.h | 26 ++
 3 files changed, 60 insertions(+)

diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c
index 50039e983eba..e4411771f482 100644
--- a/drivers/soc/qcom/smem.c
+++ b/drivers/soc/qcom/smem.c
@@ -821,6 +821,39 @@ int qcom_smem_get_soc_id(u32 *id)
 }
 EXPORT_SYMBOL_GPL(qcom_smem_get_soc_id);
 
+/**
+ * qcom_smem_get_feature_code() - return the feature code
+ * @code: On success, return the feature code here.
+ *
+ * Look up the feature code identifier from SMEM and return it.
+ *
+ * Return: 0 on success, negative errno on failure.
+ */
+int qcom_smem_get_feature_code(u32 *code)
+{
+   struct socinfo *info;
+   u32 raw_code;
+
+   info = qcom_smem_get(QCOM_SMEM_HOST_ANY, SMEM_HW_SW_BUILD_ID, NULL);
+   if (IS_ERR(info))
+   return PTR_ERR(info);
+
+   /* This only makes sense for socinfo >= 16 */
+   if (__le32_to_cpu(info->fmt) < SOCINFO_VERSION(0, 16))
+   return -EOPNOTSUPP;
+
+   raw_code = __le32_to_cpu(info->feature_code);
+
+   /* Ensure the value makes sense */
+   if (raw_code > SOCINFO_FC_INT_MAX)
+   raw_code = SOCINFO_FC_UNKNOWN;
+
+   *code = raw_code;
+
+   return 0;
+}
+EXPORT_SYMBOL_GPL(qcom_smem_get_feature_code);
+
 static int qcom_smem_get_sbl_version(struct qcom_smem *smem)
 {
struct smem_header *header;
diff --git a/include/linux/soc/qcom/smem.h b/include/linux/soc/qcom/smem.h
index 03187bc95851..f946e3beca21 100644
--- a/include/linux/soc/qcom/smem.h
+++ b/include/linux/soc/qcom/smem.h
@@ -13,6 +13,7 @@ int qcom_smem_get_free_space(unsigned host);
 phys_addr_t qcom_smem_virt_to_phys(void *p);
 
 int qcom_smem_get_soc_id(u32 *id);
+int qcom_smem_get_feature_code(u32 *code);
 
 int qcom_smem_bust_hwspin_lock_by_host(unsigned int host);
 
diff --git a/include/linux/soc/qcom/socinfo.h b/include/linux/soc/qcom/socinfo.h
index 10e0a4c287f4..608950443eee 100644
--- a/include/linux/soc/qcom/socinfo.h
+++ b/include/linux/soc/qcom/socinfo.h
@@ -3,6 +3,8 @@
 #ifndef __QCOM_SOCINFO_H__
 #define __QCOM_SOCINFO_H__
 
+#include 
+
 /*
  * SMEM item id, used to acquire handles to respective
  * SMEM region.
@@ -82,4 +84,28 @@ struct socinfo {
__le32 boot_core;
 };
 
+/* Internal feature codes */
+enum qcom_socinfo_feature_code {
+   /* External feature codes */
+   SOCINFO_FC_UNKNOWN = 0x0,
+   SOCINFO_FC_AA,
+   SOCINFO_FC_AB,
+   SOCINFO_FC_AC,
+   SOCINFO_FC_AD,
+   SOCINFO_FC_AE,
+   SOCINFO_FC_AF,
+   SOCINFO_FC_AG,
+   SOCINFO_FC_AH,
+};
+
+/* Internal feature codes */
+/* Valid values: 0 <= n <= 0xf */
+#define SOCINFO_FC_Yn(n)   (0xf1 + (n))
+#define SOCINFO_FC_INT_MAX SOCINFO_FC_Yn(0xf)
+
+/* Product codes */
+#define SOCINFO_PC_UNKNOWN 0
+#define SOCINFO_PCn(n) ((n) + 1)
+#define SOCINFO_PC_RESERVE (BIT(31) - 1)
+
 #endif

-- 
2.43.0



[PATCH v2 7/7] arm64: dts: qcom: sm8550: Wire up GPU speed bin & more OPPs

2024-06-05 Thread Konrad Dybcio
Add the speedbin masks to ensure only the desired OPPs are available on
chips of a given bin.

Using this, add the binned 719 MHz OPP and the non-binned 124.8 MHz.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Konrad Dybcio 
---
 arch/arm64/boot/dts/qcom/sm8550.dtsi | 21 -
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi 
b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index c55a818af935..5f5ddfe205b0 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -2119,48 +2119,67 @@ zap-shader {
memory-region = <_micro_code_mem>;
};
 
-   /* Speedbin needs more work on A740+, keep only lower 
freqs */
gpu_opp_table: opp-table {
compatible = "operating-points-v2";
 
+   opp-71900 {
+   opp-hz = /bits/ 64 <71900>;
+   opp-level = 
;
+   opp-supported-hw = <0x1>;
+   };
+
opp-68000 {
opp-hz = /bits/ 64 <68000>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-61500 {
opp-hz = /bits/ 64 <61500>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-55000 {
opp-hz = /bits/ 64 <55000>;
opp-level = ;
+   opp-supported-hw = <0x3>;
};
 
opp-47500 {
opp-hz = /bits/ 64 <47500>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-40100 {
opp-hz = /bits/ 64 <40100>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-34800 {
opp-hz = /bits/ 64 <34800>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-29500 {
opp-hz = /bits/ 64 <29500>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-22000 {
opp-hz = /bits/ 64 <22000>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
+   };
+
+   opp-12480 {
+   opp-hz = /bits/ 64 <12480>;
+   opp-level = 
;
+   opp-supported-hw = <0x3>;
};
};
};

-- 
2.43.0



[PATCH v2 6/7] drm/msm/adreno: Redo the speedbin assignment

2024-06-05 Thread Konrad Dybcio
There is no need to reinvent the wheel for simple read-match-set logic.

Make speedbin discovery and assignment generation independent.

This implicitly removes the bogus 0x80 / BIT(7) speed bin on A5xx,
which has no representation in hardware whatshowever.

Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c   | 34 
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c   | 56 -
 drivers/gpu/drm/msm/adreno/adreno_gpu.c | 51 ++
 drivers/gpu/drm/msm/adreno/adreno_gpu.h |  3 --
 4 files changed, 45 insertions(+), 99 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
index c003f970189b..eed6a2eb1731 100644
--- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
@@ -1704,38 +1704,6 @@ static const struct adreno_gpu_funcs funcs = {
.get_timestamp = a5xx_get_timestamp,
 };
 
-static void check_speed_bin(struct device *dev)
-{
-   struct nvmem_cell *cell;
-   u32 val;
-
-   /*
-* If the OPP table specifies a opp-supported-hw property then we have
-* to set something with dev_pm_opp_set_supported_hw() or the table
-* doesn't get populated so pick an arbitrary value that should
-* ensure the default frequencies are selected but not conflict with any
-* actual bins
-*/
-   val = 0x80;
-
-   cell = nvmem_cell_get(dev, "speed_bin");
-
-   if (!IS_ERR(cell)) {
-   void *buf = nvmem_cell_read(cell, NULL);
-
-   if (!IS_ERR(buf)) {
-   u8 bin = *((u8 *) buf);
-
-   val = (1 << bin);
-   kfree(buf);
-   }
-
-   nvmem_cell_put(cell);
-   }
-
-   devm_pm_opp_set_supported_hw(dev, , 1);
-}
-
 struct msm_gpu *a5xx_gpu_init(struct drm_device *dev)
 {
struct msm_drm_private *priv = dev->dev_private;
@@ -1763,8 +1731,6 @@ struct msm_gpu *a5xx_gpu_init(struct drm_device *dev)
 
a5xx_gpu->lm_leakage = 0x4E001A;
 
-   check_speed_bin(>dev);
-
nr_rings = 4;
 
if (config->info->revn == 510)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 3f84417ff027..d256e27ee581 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -2882,55 +2882,6 @@ static bool a6xx_progress(struct msm_gpu *gpu, struct 
msm_ringbuffer *ring)
return progress;
 }
 
-static u32 fuse_to_supp_hw(const struct adreno_info *info, u32 fuse)
-{
-   if (!info->speedbins)
-   return UINT_MAX;
-
-   for (int i = 0; info->speedbins[i].fuse != SHRT_MAX; i++)
-   if (info->speedbins[i].fuse == fuse)
-   return BIT(info->speedbins[i].speedbin);
-
-   return UINT_MAX;
-}
-
-static int a6xx_set_supported_hw(struct adreno_gpu *adreno_gpu,
-struct device *dev,
-const struct adreno_info *info)
-{
-   u32 supp_hw;
-   u32 speedbin;
-   int ret;
-
-   ret = adreno_read_speedbin(adreno_gpu, dev, );
-   /*
-* -ENOENT means that the platform doesn't support speedbin which is
-* fine
-*/
-   if (ret == -ENOENT) {
-   return 0;
-   } else if (ret) {
-   dev_err_probe(dev, ret,
- "failed to read speed-bin. Some OPPs may not be 
supported by hardware\n");
-   return ret;
-   }
-
-   supp_hw = fuse_to_supp_hw(info, speedbin);
-
-   if (supp_hw == UINT_MAX) {
-   DRM_DEV_ERROR(dev,
-   "missing support for speed-bin: %u. Some OPPs may not 
be supported by hardware\n",
-   speedbin);
-   supp_hw = BIT(0); /* Default */
-   }
-
-   ret = devm_pm_opp_set_supported_hw(dev, _hw, 1);
-   if (ret)
-   return ret;
-
-   return 0;
-}
-
 static const struct adreno_gpu_funcs funcs = {
.base = {
.get_param = adreno_get_param,
@@ -3062,13 +3013,6 @@ struct msm_gpu *a6xx_gpu_init(struct drm_device *dev)
 
a6xx_llc_slices_init(pdev, a6xx_gpu, is_a7xx);
 
-   ret = a6xx_set_supported_hw(adreno_gpu, >dev, config->info);
-   if (ret) {
-   a6xx_llc_slices_destroy(a6xx_gpu);
-   kfree(a6xx_gpu);
-   return ERR_PTR(ret);
-   }
-
if (is_a7xx)
ret = adreno_gpu_init(dev, pdev, adreno_gpu, _a7xx, 1);
else if (adreno_has_gmu_wrapper(adreno_gpu))
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c 
b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index 055072260b3d..8b2bc5f147e8 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -1060,8 +1060,

[PATCH v2 7/7] arm64: dts: qcom: sm8550: Wire up GPU speed bin & more OPPs

2024-06-05 Thread Konrad Dybcio
Add the speedbin masks to ensure only the desired OPPs are available on
chips of a given bin.

Using this, add the binned 719 MHz OPP and the non-binned 124.8 MHz.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Konrad Dybcio 
---
 arch/arm64/boot/dts/qcom/sm8550.dtsi | 21 -
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi 
b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index c55a818af935..5f5ddfe205b0 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -2119,48 +2119,67 @@ zap-shader {
memory-region = <_micro_code_mem>;
};
 
-   /* Speedbin needs more work on A740+, keep only lower 
freqs */
gpu_opp_table: opp-table {
compatible = "operating-points-v2";
 
+   opp-71900 {
+   opp-hz = /bits/ 64 <71900>;
+   opp-level = 
;
+   opp-supported-hw = <0x1>;
+   };
+
opp-68000 {
opp-hz = /bits/ 64 <68000>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-61500 {
opp-hz = /bits/ 64 <61500>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-55000 {
opp-hz = /bits/ 64 <55000>;
opp-level = ;
+   opp-supported-hw = <0x3>;
};
 
opp-47500 {
opp-hz = /bits/ 64 <47500>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-40100 {
opp-hz = /bits/ 64 <40100>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-34800 {
opp-hz = /bits/ 64 <34800>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-29500 {
opp-hz = /bits/ 64 <29500>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
};
 
opp-22000 {
opp-hz = /bits/ 64 <22000>;
opp-level = 
;
+   opp-supported-hw = <0x3>;
+   };
+
+   opp-12480 {
+   opp-hz = /bits/ 64 <12480>;
+   opp-level = 
;
+   opp-supported-hw = <0x3>;
};
};
};

-- 
2.43.0



[PATCH v2 5/7] drm/msm/adreno: Define A530 speed bins explicitly

2024-06-05 Thread Konrad Dybcio
In preparation for commonizing the speedbin handling code.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/adreno_device.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c 
b/drivers/gpu/drm/msm/adreno/adreno_device.c
index e00eef8099ae..66f7868ff476 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_device.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_device.c
@@ -258,6 +258,12 @@ static const struct adreno_info gpulist[] = {
ADRENO_QUIRK_FAULT_DETECT_MASK,
.init = a5xx_gpu_init,
.zapfw = "a530_zap.mdt",
+   .speedbins = ADRENO_SPEEDBINS(
+   { 0, 0 },
+   { 1, 1 },
+   { 2, 2 },
+   { 3, 3 },
+   ),
}, {
.chip_ids = ADRENO_CHIP_IDS(0x05040001),
.family = ADRENO_5XX,

-- 
2.43.0



[PATCH v2 5/7] drm/msm/adreno: Define A530 speed bins explicitly

2024-06-05 Thread Konrad Dybcio
In preparation for commonizing the speedbin handling code.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/adreno_device.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c 
b/drivers/gpu/drm/msm/adreno/adreno_device.c
index e00eef8099ae..66f7868ff476 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_device.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_device.c
@@ -258,6 +258,12 @@ static const struct adreno_info gpulist[] = {
ADRENO_QUIRK_FAULT_DETECT_MASK,
.init = a5xx_gpu_init,
.zapfw = "a530_zap.mdt",
+   .speedbins = ADRENO_SPEEDBINS(
+   { 0, 0 },
+   { 1, 1 },
+   { 2, 2 },
+   { 3, 3 },
+   ),
}, {
.chip_ids = ADRENO_CHIP_IDS(0x05040001),
.family = ADRENO_5XX,

-- 
2.43.0



[PATCH v2 4/7] drm/msm/adreno: Add speedbin data for SM8550 / A740

2024-06-05 Thread Konrad Dybcio
Add speebin data for A740, as found on SM8550 and derivative SoCs.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/adreno_device.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c 
b/drivers/gpu/drm/msm/adreno/adreno_device.c
index 901ef767e491..e00eef8099ae 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_device.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_device.c
@@ -570,6 +570,10 @@ static const struct adreno_info gpulist[] = {
.zapfw = "a740_zap.mdt",
.hwcg = a740_hwcg,
.address_space_size = SZ_16G,
+   .speedbins = ADRENO_SPEEDBINS(
+   { ADRENO_SKU_ID(SOCINFO_FC_AC), 0 },
+   { ADRENO_SKU_ID(SOCINFO_FC_AF), 0 },
+   ),
}, {
.chip_ids = ADRENO_CHIP_IDS(0x43051401), /* "C520v2" */
.family = ADRENO_7XX_GEN3,

-- 
2.43.0



[PATCH v2 3/7] drm/msm/adreno: Implement SMEM-based speed bin

2024-06-05 Thread Konrad Dybcio
On recent (SM8550+) Snapdragon platforms, the GPU speed bin data is
abstracted through SMEM, instead of being directly available in a fuse.

Add support for SMEM-based speed binning, which includes getting
"feature code" and "product code" from said source and parsing them
to form something that lets us match OPPs against.

Due to the product code being ignored in the context of Adreno on
production parts (as of SM8650), hardcode it to SOCINFO_PC_UNKNOWN.

Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c  |  8 +++---
 drivers/gpu/drm/msm/adreno/adreno_device.c |  2 ++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c| 41 +++---
 drivers/gpu/drm/msm/adreno/adreno_gpu.h| 12 ++---
 4 files changed, 53 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 973872ad0474..3f84417ff027 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -2894,13 +2894,15 @@ static u32 fuse_to_supp_hw(const struct adreno_info 
*info, u32 fuse)
return UINT_MAX;
 }
 
-static int a6xx_set_supported_hw(struct device *dev, const struct adreno_info 
*info)
+static int a6xx_set_supported_hw(struct adreno_gpu *adreno_gpu,
+struct device *dev,
+const struct adreno_info *info)
 {
u32 supp_hw;
u32 speedbin;
int ret;
 
-   ret = adreno_read_speedbin(dev, );
+   ret = adreno_read_speedbin(adreno_gpu, dev, );
/*
 * -ENOENT means that the platform doesn't support speedbin which is
 * fine
@@ -3060,7 +3062,7 @@ struct msm_gpu *a6xx_gpu_init(struct drm_device *dev)
 
a6xx_llc_slices_init(pdev, a6xx_gpu, is_a7xx);
 
-   ret = a6xx_set_supported_hw(>dev, config->info);
+   ret = a6xx_set_supported_hw(adreno_gpu, >dev, config->info);
if (ret) {
a6xx_llc_slices_destroy(a6xx_gpu);
kfree(a6xx_gpu);
diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c 
b/drivers/gpu/drm/msm/adreno/adreno_device.c
index c3703a51287b..901ef767e491 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_device.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_device.c
@@ -6,6 +6,8 @@
  * Copyright (c) 2014,2017 The Linux Foundation. All rights reserved.
  */
 
+#include 
+
 #include "adreno_gpu.h"
 
 bool hang_debug = false;
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c 
b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index 074fb498706f..055072260b3d 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -21,6 +21,9 @@
 #include "msm_gem.h"
 #include "msm_mmu.h"
 
+#include 
+#include 
+
 static u64 address_space_size = 0;
 MODULE_PARM_DESC(address_space_size, "Override for size of processes private 
GPU address space");
 module_param(address_space_size, ullong, 0600);
@@ -1057,9 +1060,39 @@ void adreno_gpu_ocmem_cleanup(struct adreno_ocmem 
*adreno_ocmem)
   adreno_ocmem->hdl);
 }
 
-int adreno_read_speedbin(struct device *dev, u32 *speedbin)
+int adreno_read_speedbin(struct adreno_gpu *adreno_gpu,
+struct device *dev, u32 *fuse)
 {
-   return nvmem_cell_read_variable_le_u32(dev, "speed_bin", speedbin);
+   u32 fcode;
+   int ret;
+
+   /*
+* Try reading the speedbin via a nvmem cell first
+* -ENOENT means "no nvmem-cells" and essentially means "old DT" or
+* "nvmem fuse is irrelevant", simply assume it's fine.
+*/
+   ret = nvmem_cell_read_variable_le_u32(dev, "speed_bin", fuse);
+   if (!ret)
+   return 0;
+   else if (ret != -ENOENT)
+   return dev_err_probe(dev, ret, "Couldn't read the speed bin 
fuse value\n");
+
+#ifdef CONFIG_QCOM_SMEM
+   /*
+* Only check the feature code - the product code only matters for
+* proto SoCs unavailable outside Qualcomm labs, as far as GPU bin
+* matching is concerned.
+*
+* Ignore EOPNOTSUPP, as not all SoCs expose this info through SMEM.
+*/
+   ret = qcom_smem_get_feature_code();
+   if (!ret) {
+   *fuse = ADRENO_SKU_ID(fcode);
+   } else if (ret != -EOPNOTSUPP)
+   return dev_err_probe(dev, ret, "Couldn't get feature code from 
SMEM\n");
+#endif
+
+   return 0;
 }
 
 int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
@@ -1098,9 +1131,9 @@ int adreno_gpu_init(struct drm_device *drm, struct 
platform_device *pdev,
devm_pm_opp_set_clkname(dev, "core");
}
 
-   if (adreno_read_speedbin(dev, ) || !speedbin)
+   if (adreno_read_speedbin(adreno_gpu, dev, ) || !speedbin)
speedbin = 0x;

[PATCH v2 6/7] drm/msm/adreno: Redo the speedbin assignment

2024-06-05 Thread Konrad Dybcio
There is no need to reinvent the wheel for simple read-match-set logic.

Make speedbin discovery and assignment generation independent.

This implicitly removes the bogus 0x80 / BIT(7) speed bin on A5xx,
which has no representation in hardware whatshowever.

Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c   | 34 
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c   | 56 -
 drivers/gpu/drm/msm/adreno/adreno_gpu.c | 51 ++
 drivers/gpu/drm/msm/adreno/adreno_gpu.h |  3 --
 4 files changed, 45 insertions(+), 99 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
index c003f970189b..eed6a2eb1731 100644
--- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
@@ -1704,38 +1704,6 @@ static const struct adreno_gpu_funcs funcs = {
.get_timestamp = a5xx_get_timestamp,
 };
 
-static void check_speed_bin(struct device *dev)
-{
-   struct nvmem_cell *cell;
-   u32 val;
-
-   /*
-* If the OPP table specifies a opp-supported-hw property then we have
-* to set something with dev_pm_opp_set_supported_hw() or the table
-* doesn't get populated so pick an arbitrary value that should
-* ensure the default frequencies are selected but not conflict with any
-* actual bins
-*/
-   val = 0x80;
-
-   cell = nvmem_cell_get(dev, "speed_bin");
-
-   if (!IS_ERR(cell)) {
-   void *buf = nvmem_cell_read(cell, NULL);
-
-   if (!IS_ERR(buf)) {
-   u8 bin = *((u8 *) buf);
-
-   val = (1 << bin);
-   kfree(buf);
-   }
-
-   nvmem_cell_put(cell);
-   }
-
-   devm_pm_opp_set_supported_hw(dev, , 1);
-}
-
 struct msm_gpu *a5xx_gpu_init(struct drm_device *dev)
 {
struct msm_drm_private *priv = dev->dev_private;
@@ -1763,8 +1731,6 @@ struct msm_gpu *a5xx_gpu_init(struct drm_device *dev)
 
a5xx_gpu->lm_leakage = 0x4E001A;
 
-   check_speed_bin(>dev);
-
nr_rings = 4;
 
if (config->info->revn == 510)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 3f84417ff027..d256e27ee581 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -2882,55 +2882,6 @@ static bool a6xx_progress(struct msm_gpu *gpu, struct 
msm_ringbuffer *ring)
return progress;
 }
 
-static u32 fuse_to_supp_hw(const struct adreno_info *info, u32 fuse)
-{
-   if (!info->speedbins)
-   return UINT_MAX;
-
-   for (int i = 0; info->speedbins[i].fuse != SHRT_MAX; i++)
-   if (info->speedbins[i].fuse == fuse)
-   return BIT(info->speedbins[i].speedbin);
-
-   return UINT_MAX;
-}
-
-static int a6xx_set_supported_hw(struct adreno_gpu *adreno_gpu,
-struct device *dev,
-const struct adreno_info *info)
-{
-   u32 supp_hw;
-   u32 speedbin;
-   int ret;
-
-   ret = adreno_read_speedbin(adreno_gpu, dev, );
-   /*
-* -ENOENT means that the platform doesn't support speedbin which is
-* fine
-*/
-   if (ret == -ENOENT) {
-   return 0;
-   } else if (ret) {
-   dev_err_probe(dev, ret,
- "failed to read speed-bin. Some OPPs may not be 
supported by hardware\n");
-   return ret;
-   }
-
-   supp_hw = fuse_to_supp_hw(info, speedbin);
-
-   if (supp_hw == UINT_MAX) {
-   DRM_DEV_ERROR(dev,
-   "missing support for speed-bin: %u. Some OPPs may not 
be supported by hardware\n",
-   speedbin);
-   supp_hw = BIT(0); /* Default */
-   }
-
-   ret = devm_pm_opp_set_supported_hw(dev, _hw, 1);
-   if (ret)
-   return ret;
-
-   return 0;
-}
-
 static const struct adreno_gpu_funcs funcs = {
.base = {
.get_param = adreno_get_param,
@@ -3062,13 +3013,6 @@ struct msm_gpu *a6xx_gpu_init(struct drm_device *dev)
 
a6xx_llc_slices_init(pdev, a6xx_gpu, is_a7xx);
 
-   ret = a6xx_set_supported_hw(adreno_gpu, >dev, config->info);
-   if (ret) {
-   a6xx_llc_slices_destroy(a6xx_gpu);
-   kfree(a6xx_gpu);
-   return ERR_PTR(ret);
-   }
-
if (is_a7xx)
ret = adreno_gpu_init(dev, pdev, adreno_gpu, _a7xx, 1);
else if (adreno_has_gmu_wrapper(adreno_gpu))
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c 
b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index 055072260b3d..8b2bc5f147e8 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -1060,8 +1060,

[PATCH v2 2/7] soc: qcom: smem: Add a feature code getter

2024-06-05 Thread Konrad Dybcio
Recent (SM8550+ ish) Qualcomm SoCs have a new mechanism for precisely
identifying the specific SKU and the precise speed bin (in the general
meaning of this word, anyway): a pair of values called Product Code
and Feature Code.

Based on this information, we can deduce the available frequencies for
things such as Adreno. In the case of Adreno specifically, Pcode is
useless for non-prototype SoCs.

Introduce a getter for the feature code and export it.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: Konrad Dybcio 
---
 drivers/soc/qcom/smem.c  | 33 +
 include/linux/soc/qcom/smem.h|  1 +
 include/linux/soc/qcom/socinfo.h | 26 ++
 3 files changed, 60 insertions(+)

diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c
index 50039e983eba..e4411771f482 100644
--- a/drivers/soc/qcom/smem.c
+++ b/drivers/soc/qcom/smem.c
@@ -821,6 +821,39 @@ int qcom_smem_get_soc_id(u32 *id)
 }
 EXPORT_SYMBOL_GPL(qcom_smem_get_soc_id);
 
+/**
+ * qcom_smem_get_feature_code() - return the feature code
+ * @code: On success, return the feature code here.
+ *
+ * Look up the feature code identifier from SMEM and return it.
+ *
+ * Return: 0 on success, negative errno on failure.
+ */
+int qcom_smem_get_feature_code(u32 *code)
+{
+   struct socinfo *info;
+   u32 raw_code;
+
+   info = qcom_smem_get(QCOM_SMEM_HOST_ANY, SMEM_HW_SW_BUILD_ID, NULL);
+   if (IS_ERR(info))
+   return PTR_ERR(info);
+
+   /* This only makes sense for socinfo >= 16 */
+   if (__le32_to_cpu(info->fmt) < SOCINFO_VERSION(0, 16))
+   return -EOPNOTSUPP;
+
+   raw_code = __le32_to_cpu(info->feature_code);
+
+   /* Ensure the value makes sense */
+   if (raw_code > SOCINFO_FC_INT_MAX)
+   raw_code = SOCINFO_FC_UNKNOWN;
+
+   *code = raw_code;
+
+   return 0;
+}
+EXPORT_SYMBOL_GPL(qcom_smem_get_feature_code);
+
 static int qcom_smem_get_sbl_version(struct qcom_smem *smem)
 {
struct smem_header *header;
diff --git a/include/linux/soc/qcom/smem.h b/include/linux/soc/qcom/smem.h
index 03187bc95851..f946e3beca21 100644
--- a/include/linux/soc/qcom/smem.h
+++ b/include/linux/soc/qcom/smem.h
@@ -13,6 +13,7 @@ int qcom_smem_get_free_space(unsigned host);
 phys_addr_t qcom_smem_virt_to_phys(void *p);
 
 int qcom_smem_get_soc_id(u32 *id);
+int qcom_smem_get_feature_code(u32 *code);
 
 int qcom_smem_bust_hwspin_lock_by_host(unsigned int host);
 
diff --git a/include/linux/soc/qcom/socinfo.h b/include/linux/soc/qcom/socinfo.h
index 10e0a4c287f4..608950443eee 100644
--- a/include/linux/soc/qcom/socinfo.h
+++ b/include/linux/soc/qcom/socinfo.h
@@ -3,6 +3,8 @@
 #ifndef __QCOM_SOCINFO_H__
 #define __QCOM_SOCINFO_H__
 
+#include 
+
 /*
  * SMEM item id, used to acquire handles to respective
  * SMEM region.
@@ -82,4 +84,28 @@ struct socinfo {
__le32 boot_core;
 };
 
+/* Internal feature codes */
+enum qcom_socinfo_feature_code {
+   /* External feature codes */
+   SOCINFO_FC_UNKNOWN = 0x0,
+   SOCINFO_FC_AA,
+   SOCINFO_FC_AB,
+   SOCINFO_FC_AC,
+   SOCINFO_FC_AD,
+   SOCINFO_FC_AE,
+   SOCINFO_FC_AF,
+   SOCINFO_FC_AG,
+   SOCINFO_FC_AH,
+};
+
+/* Internal feature codes */
+/* Valid values: 0 <= n <= 0xf */
+#define SOCINFO_FC_Yn(n)   (0xf1 + (n))
+#define SOCINFO_FC_INT_MAX SOCINFO_FC_Yn(0xf)
+
+/* Product codes */
+#define SOCINFO_PC_UNKNOWN 0
+#define SOCINFO_PCn(n) ((n) + 1)
+#define SOCINFO_PC_RESERVE (BIT(31) - 1)
+
 #endif

-- 
2.43.0



[PATCH v2 1/7] soc: qcom: Move some socinfo defines to the header

2024-06-05 Thread Konrad Dybcio
In preparation for parsing the chip "feature code" (FC) and "product
code" (PC) (essentially the parameters that let us conclusively
characterize the sillicon we're running on, including various speed
bins), move the socinfo version defines to the public header.

Signed-off-by: Konrad Dybcio 
---
 drivers/soc/qcom/socinfo.c   | 8 
 include/linux/soc/qcom/socinfo.h | 8 
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c
index 8087941a7887..beb23e292323 100644
--- a/drivers/soc/qcom/socinfo.c
+++ b/drivers/soc/qcom/socinfo.c
@@ -21,14 +21,6 @@
 
 #include 
 
-/*
- * SoC version type with major number in the upper 16 bits and minor
- * number in the lower 16 bits.
- */
-#define SOCINFO_MAJOR(ver) (((ver) >> 16) & 0x)
-#define SOCINFO_MINOR(ver) ((ver) & 0x)
-#define SOCINFO_VERSION(maj, min)  maj) & 0x) << 16)|((min) & 0x))
-
 /* Helper macros to create soc_id table */
 #define qcom_board_id(id) QCOM_ID_ ## id, __stringify(id)
 #define qcom_board_id_named(id, name) QCOM_ID_ ## id, (name)
diff --git a/include/linux/soc/qcom/socinfo.h b/include/linux/soc/qcom/socinfo.h
index e78777bb0f4a..10e0a4c287f4 100644
--- a/include/linux/soc/qcom/socinfo.h
+++ b/include/linux/soc/qcom/socinfo.h
@@ -12,6 +12,14 @@
 #define SMEM_SOCINFO_BUILD_ID_LENGTH   32
 #define SMEM_SOCINFO_CHIP_ID_LENGTH32
 
+/*
+ * SoC version type with major number in the upper 16 bits and minor
+ * number in the lower 16 bits.
+ */
+#define SOCINFO_MAJOR(ver) (((ver) >> 16) & 0x)
+#define SOCINFO_MINOR(ver) ((ver) & 0x)
+#define SOCINFO_VERSION(maj, min)  maj) & 0x) << 16)|((min) & 0x))
+
 /* Socinfo SMEM item structure */
 struct socinfo {
__le32 fmt;

-- 
2.43.0



[PATCH v2 1/7] soc: qcom: Move some socinfo defines to the header

2024-06-05 Thread Konrad Dybcio
In preparation for parsing the chip "feature code" (FC) and "product
code" (PC) (essentially the parameters that let us conclusively
characterize the sillicon we're running on, including various speed
bins), move the socinfo version defines to the public header.

Signed-off-by: Konrad Dybcio 
---
 drivers/soc/qcom/socinfo.c   | 8 
 include/linux/soc/qcom/socinfo.h | 8 
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c
index 8087941a7887..beb23e292323 100644
--- a/drivers/soc/qcom/socinfo.c
+++ b/drivers/soc/qcom/socinfo.c
@@ -21,14 +21,6 @@
 
 #include 
 
-/*
- * SoC version type with major number in the upper 16 bits and minor
- * number in the lower 16 bits.
- */
-#define SOCINFO_MAJOR(ver) (((ver) >> 16) & 0x)
-#define SOCINFO_MINOR(ver) ((ver) & 0x)
-#define SOCINFO_VERSION(maj, min)  maj) & 0x) << 16)|((min) & 0x))
-
 /* Helper macros to create soc_id table */
 #define qcom_board_id(id) QCOM_ID_ ## id, __stringify(id)
 #define qcom_board_id_named(id, name) QCOM_ID_ ## id, (name)
diff --git a/include/linux/soc/qcom/socinfo.h b/include/linux/soc/qcom/socinfo.h
index e78777bb0f4a..10e0a4c287f4 100644
--- a/include/linux/soc/qcom/socinfo.h
+++ b/include/linux/soc/qcom/socinfo.h
@@ -12,6 +12,14 @@
 #define SMEM_SOCINFO_BUILD_ID_LENGTH   32
 #define SMEM_SOCINFO_CHIP_ID_LENGTH32
 
+/*
+ * SoC version type with major number in the upper 16 bits and minor
+ * number in the lower 16 bits.
+ */
+#define SOCINFO_MAJOR(ver) (((ver) >> 16) & 0x)
+#define SOCINFO_MINOR(ver) ((ver) & 0x)
+#define SOCINFO_VERSION(maj, min)  maj) & 0x) << 16)|((min) & 0x))
+
 /* Socinfo SMEM item structure */
 struct socinfo {
__le32 fmt;

-- 
2.43.0



[PATCH v2 0/7] Add SMEM-based speedbin matching

2024-06-05 Thread Konrad Dybcio
Newer (SM8550+) SoCs don't seem to have a nice speedbin fuse anymore,
but instead rely on a set of combinations of "feature code" (FC) and
"product code" (PC) identifiers to match the bins. This series adds
support for that.

I suppose a qcom/for-soc immutable branch would be in order if we want
to land this in the upcoming cycle.

FWIW I preferred the fuses myself..

Signed-off-by: Konrad Dybcio 
---
Changes in v3:
- Wrap the argument usage in new preprocessor macros in braces (Bjorn)
- Make the SOCINFO_FC_INT_MAX define inclusive, adjust .h and .c (Bjorn)
- Pick up rbs
- Rebase on next-20240605
- Drop the already-applied ("Avoid a nullptr dereference when speedbin
  setting fails")

Changes in v2:
- Separate moving existing and adding new defines
- Fix kerneldoc copypasta
- Remove some wrong comments and defines
- Remove assumed "max" values for PCs and external FCs
- Improve some commit messages
- Return -EOPNOTSUPP instead of -EINVAL when calling p/fcode getters
  on socinfo older than v16
- Drop pcode getters and evaluation (doesn't matter for Adreno on
  non-proto SoCs)
- Rework the speedbin logic to be hopefully saner
- Link to v1: 
https://lore.kernel.org/r/20240405-topic-smem_speedbin-v1-0-ce2b86425...@linaro.org

---
Konrad Dybcio (7):
  soc: qcom: Move some socinfo defines to the header
  soc: qcom: smem: Add a feature code getter
  drm/msm/adreno: Implement SMEM-based speed bin
  drm/msm/adreno: Add speedbin data for SM8550 / A740
  drm/msm/adreno: Define A530 speed bins explicitly
  drm/msm/adreno: Redo the speedbin assignment
  arm64: dts: qcom: sm8550: Wire up GPU speed bin & more OPPs

 arch/arm64/boot/dts/qcom/sm8550.dtsi   | 21 +++-
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c  | 34 
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c  | 54 ---
 drivers/gpu/drm/msm/adreno/adreno_device.c | 12 +
 drivers/gpu/drm/msm/adreno/adreno_gpu.c| 84 +++---
 drivers/gpu/drm/msm/adreno/adreno_gpu.h| 11 ++--
 drivers/soc/qcom/smem.c| 33 
 drivers/soc/qcom/socinfo.c |  8 ---
 include/linux/soc/qcom/smem.h  |  1 +
 include/linux/soc/qcom/socinfo.h   | 34 
 10 files changed, 185 insertions(+), 107 deletions(-)
---
base-commit: 234cb065ad82915ff8d06ce01e01c3e640b674d2
change-id: 20240404-topic-smem_speedbin-8deecd0bef0e

Best regards,
-- 
Konrad Dybcio 



[PATCH v2 0/7] Add SMEM-based speedbin matching

2024-06-05 Thread Konrad Dybcio
Newer (SM8550+) SoCs don't seem to have a nice speedbin fuse anymore,
but instead rely on a set of combinations of "feature code" (FC) and
"product code" (PC) identifiers to match the bins. This series adds
support for that.

I suppose a qcom/for-soc immutable branch would be in order if we want
to land this in the upcoming cycle.

FWIW I preferred the fuses myself..

Signed-off-by: Konrad Dybcio 
---
Changes in v3:
- Wrap the argument usage in new preprocessor macros in braces (Bjorn)
- Make the SOCINFO_FC_INT_MAX define inclusive, adjust .h and .c (Bjorn)
- Pick up rbs
- Rebase on next-20240605
- Drop the already-applied ("Avoid a nullptr dereference when speedbin
  setting fails")

Changes in v2:
- Separate moving existing and adding new defines
- Fix kerneldoc copypasta
- Remove some wrong comments and defines
- Remove assumed "max" values for PCs and external FCs
- Improve some commit messages
- Return -EOPNOTSUPP instead of -EINVAL when calling p/fcode getters
  on socinfo older than v16
- Drop pcode getters and evaluation (doesn't matter for Adreno on
  non-proto SoCs)
- Rework the speedbin logic to be hopefully saner
- Link to v1: 
https://lore.kernel.org/r/20240405-topic-smem_speedbin-v1-0-ce2b86425...@linaro.org

---
Konrad Dybcio (7):
  soc: qcom: Move some socinfo defines to the header
  soc: qcom: smem: Add a feature code getter
  drm/msm/adreno: Implement SMEM-based speed bin
  drm/msm/adreno: Add speedbin data for SM8550 / A740
  drm/msm/adreno: Define A530 speed bins explicitly
  drm/msm/adreno: Redo the speedbin assignment
  arm64: dts: qcom: sm8550: Wire up GPU speed bin & more OPPs

 arch/arm64/boot/dts/qcom/sm8550.dtsi   | 21 +++-
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c  | 34 
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c  | 54 ---
 drivers/gpu/drm/msm/adreno/adreno_device.c | 12 +
 drivers/gpu/drm/msm/adreno/adreno_gpu.c| 84 +++---
 drivers/gpu/drm/msm/adreno/adreno_gpu.h| 11 ++--
 drivers/soc/qcom/smem.c| 33 
 drivers/soc/qcom/socinfo.c |  8 ---
 include/linux/soc/qcom/smem.h  |  1 +
 include/linux/soc/qcom/socinfo.h   | 34 
 10 files changed, 185 insertions(+), 107 deletions(-)
---
base-commit: 234cb065ad82915ff8d06ce01e01c3e640b674d2
change-id: 20240404-topic-smem_speedbin-8deecd0bef0e

Best regards,
-- 
Konrad Dybcio 



Re: [PATCH v2] drm/msm/adreno: Add support for Adreno 505 GPU

2024-06-05 Thread Konrad Dybcio
On 4.06.2024 8:10 PM, Barnabás Czémán wrote:
> From: Daniil Titov 
> 
> This GPU is found on SoCs such as MSM8937 (450 MHz), MSM8940 (475 MHz),
> SDM439 (650 MHz).
> 
> Signed-off-by: Daniil Titov 
> Signed-off-by: Barnabás Czémán 
> ---

Reviewed-by: Konrad Dybcio 

Konrad


Re: [PATCH v2] drm/msm/adreno: Add support for Adreno 505 GPU

2024-06-05 Thread Konrad Dybcio
On 4.06.2024 8:10 PM, Barnabás Czémán wrote:
> From: Daniil Titov 
> 
> This GPU is found on SoCs such as MSM8937 (450 MHz), MSM8940 (475 MHz),
> SDM439 (650 MHz).
> 
> Signed-off-by: Daniil Titov 
> Signed-off-by: Barnabás Czémán 
> ---

Reviewed-by: Konrad Dybcio 

Konrad


[jira] [Updated] (MNG-8135) Profile activation based on OS properties is no longer case insensitive

2024-06-05 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/MNG-8135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated MNG-8135:
-
Description: 
This BUG is introduced by MNG-5726. Prior that change the os name, arch and 
version comparison was always case-insensitive. Afterwards it needs to match 
the lower-case variants.

When OS name, arch or version has capital letters, it won't activate the 
profile.

For example:
{code:java}


Mac OS X
aarch64

 {code}

  was:
This BUG is introduced by MNG-5726. Prior that change the os name, arch and 
version comparison was always case-insensitive. Afterwards it needs to match 
the lower-case variants.

When OS name has capital letters, it can not activate the profile.

For example:
{code:java}


Mac OS X
aarch64

 {code}


> Profile activation based on OS properties is no longer case insensitive
> ---
>
> Key: MNG-8135
> URL: https://issues.apache.org/jira/browse/MNG-8135
> Project: Maven
>  Issue Type: Bug
>  Components: Profiles
>Affects Versions: 3.9.7
>Reporter: Lijia Liu
>Priority: Major
> Fix For: 4.0.0, 3.9.8, 4.0.0-beta-4
>
>
> This BUG is introduced by MNG-5726. Prior that change the os name, arch and 
> version comparison was always case-insensitive. Afterwards it needs to match 
> the lower-case variants.
> When OS name, arch or version has capital letters, it won't activate the 
> profile.
> For example:
> {code:java}
> 
> 
> Mac OS X
> aarch64
> 
>  {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (MNG-8135) Profile activation based on OS properties is no longer case insensitive

2024-06-05 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/MNG-8135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated MNG-8135:
-
Summary: Profile activation based on OS properties is no longer case 
insensitive  (was: Activate profile by capital OS name fail)

> Profile activation based on OS properties is no longer case insensitive
> ---
>
> Key: MNG-8135
> URL: https://issues.apache.org/jira/browse/MNG-8135
> Project: Maven
>  Issue Type: Bug
>  Components: Profiles
>Affects Versions: 3.9.7
>Reporter: Lijia Liu
>Priority: Major
> Fix For: 4.0.0, 3.9.8, 4.0.0-beta-4
>
>
> This BUG is introduced by MNG-5726. Prior that change the os name, arch and 
> version comparison was always case-insensitive. Afterwards it needs to match 
> the lower-case variants.
> When OS name has capital letters, it can not activate the profile.
> For example:
> {code:java}
> 
> 
> Mac OS X
> aarch64
> 
>  {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (MNG-8135) Activate profile by capital OS name fail

2024-06-05 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/MNG-8135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated MNG-8135:
-
Description: 
This BUG is introduced by MNG-5726. Prior that change the os name, arch and 
version comparison was always case-insensitive. Afterwards it needs to match 
the lower-case variants.

When OS name has capital letters, it can not activate the profile.

For example:
{code:java}


Mac OS X
aarch64

 {code}

  was:
This BUG is introduced by MNG-5726.

When OS name has capital letters, it can not activate the profile.

For example:
{code:java}


Mac OS X
aarch64

 {code}


> Activate profile by capital OS name fail
> 
>
> Key: MNG-8135
> URL: https://issues.apache.org/jira/browse/MNG-8135
> Project: Maven
>  Issue Type: Bug
>  Components: Profiles
>Affects Versions: 3.9.7
>Reporter: Lijia Liu
>Priority: Major
>
> This BUG is introduced by MNG-5726. Prior that change the os name, arch and 
> version comparison was always case-insensitive. Afterwards it needs to match 
> the lower-case variants.
> When OS name has capital letters, it can not activate the profile.
> For example:
> {code:java}
> 
> 
> Mac OS X
> aarch64
> 
>  {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [PATCH] drm/msm/adreno: Add support for Adreno 505 GPU

2024-06-04 Thread Konrad Dybcio




On 6/4/24 19:33, Barnabás Czémán wrote:

On Tue, Jun 4, 2024 at 7:06 PM Konrad Dybcio  wrote:




On 6/4/24 18:45, Barnabás Czémán wrote:

On Tue, Jun 4, 2024 at 2:27 PM Barnabás Czémán  wrote:


On Tue, Jun 4, 2024 at 1:55 PM Konrad Dybcio  wrote:




On 6/4/24 02:20, Barnabás Czémán wrote:

From: Daniil Titov 

This GPU is found on SoCs such as MSM8937 (450 MHz), MSM8940 (475 MHz),
SDM439 (650 MHz).

Signed-off-by: Daniil Titov 
Signed-off-by: Barnabás Czémán 
---


This all looks very good, just a nit

[...]


+ /*
+  * Increase inactive period to 250 to avoid bouncing
+  * the GDSC which appears to make it grumpy
+  */
+ .inactive_period = 250,


Are you sure this is actually necessary?

Every A5XX GPU is using the same value, but i have never tried with
DRM_MSM_INACTIVE_PERIOD.

This was the original patch
https://lore.kernel.org/all/20180507224750.9383-1-jcro...@codeaurora.org/
where the inactive period was increased for a530. I cannot test
suspend on msm8937 yet.


The suspend here refers to device suspend, not system suspend. Adreno
goes into device suspend every time you stop using it, i.e. after the
rendering is done and there's no more work to do.

I suppose a good test scenario here would be to keep running and closing
kmscube in a rapid fashion and checking if the GPU starts crashing for
unknown reasons (the dmesg would denote that)


I have checked on a505 and a506 with this small script
while true; do kmscube; kill kmscube; done
none of them crashing, so i am going to change it.


Hmm.. not sure if it actually idled when tested in a tight loop.. If you're
running bash, try "while true; do kmscube &; sleep 0.08; pkill -f kmscube; sleep 
0.08;done"

Konrad


Re: [PATCH] drm/msm/adreno: Add support for Adreno 505 GPU

2024-06-04 Thread Konrad Dybcio




On 6/4/24 19:33, Barnabás Czémán wrote:

On Tue, Jun 4, 2024 at 7:06 PM Konrad Dybcio  wrote:




On 6/4/24 18:45, Barnabás Czémán wrote:

On Tue, Jun 4, 2024 at 2:27 PM Barnabás Czémán  wrote:


On Tue, Jun 4, 2024 at 1:55 PM Konrad Dybcio  wrote:




On 6/4/24 02:20, Barnabás Czémán wrote:

From: Daniil Titov 

This GPU is found on SoCs such as MSM8937 (450 MHz), MSM8940 (475 MHz),
SDM439 (650 MHz).

Signed-off-by: Daniil Titov 
Signed-off-by: Barnabás Czémán 
---


This all looks very good, just a nit

[...]


+ /*
+  * Increase inactive period to 250 to avoid bouncing
+  * the GDSC which appears to make it grumpy
+  */
+ .inactive_period = 250,


Are you sure this is actually necessary?

Every A5XX GPU is using the same value, but i have never tried with
DRM_MSM_INACTIVE_PERIOD.

This was the original patch
https://lore.kernel.org/all/20180507224750.9383-1-jcro...@codeaurora.org/
where the inactive period was increased for a530. I cannot test
suspend on msm8937 yet.


The suspend here refers to device suspend, not system suspend. Adreno
goes into device suspend every time you stop using it, i.e. after the
rendering is done and there's no more work to do.

I suppose a good test scenario here would be to keep running and closing
kmscube in a rapid fashion and checking if the GPU starts crashing for
unknown reasons (the dmesg would denote that)


I have checked on a505 and a506 with this small script
while true; do kmscube; kill kmscube; done
none of them crashing, so i am going to change it.


Hmm.. not sure if it actually idled when tested in a tight loop.. If you're
running bash, try "while true; do kmscube &; sleep 0.08; pkill -f kmscube; sleep 
0.08;done"

Konrad


Re: [PATCH] drm/msm/adreno: De-spaghettify the use of memory barriers

2024-06-04 Thread Konrad Dybcio




On 5/14/24 20:38, Akhil P Oommen wrote:

On Wed, May 08, 2024 at 07:46:31PM +0200, Konrad Dybcio wrote:

Memory barriers help ensure instruction ordering, NOT time and order
of actual write arrival at other observers (e.g. memory-mapped IP).
On architectures employing weak memory ordering, the latter can be a
giant pain point, and it has been as part of this driver.

Moreover, the gpu_/gmu_ accessors already use non-relaxed versions of
readl/writel, which include r/w (respectively) barriers.

Replace the barriers with a readback that ensures the previous writes
have exited the write buffer (as the CPU must flush the write to the
register it's trying to read back) and subsequently remove the hack
introduced in commit b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt
status in hw_init").

Fixes: b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt status in hw_init")
Signed-off-by: Konrad Dybcio 
---
  drivers/gpu/drm/msm/adreno/a6xx_gmu.c |  5 ++---
  drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 14 --
  2 files changed, 6 insertions(+), 13 deletions(-)


I prefer this version compared to the v2. A helper routine is
unnecessary here because:
1. there are very few scenarios where we have to read back the same
register.
2. we may accidently readback a write only register.


Which would still trigger an address dependency on the CPU, no?





diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 0e3dfd4c2bc8..4135a53b55a7 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -466,9 +466,8 @@ static int a6xx_rpmh_start(struct a6xx_gmu *gmu)
int ret;
u32 val;
  
-	gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, 1 << 1);

-   /* Wait for the register to finish posting */
-   wmb();
+   gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, BIT(1));
+   gmu_read(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ);


This is unnecessary because we are polling on a register on the same port 
below. But I think we
can replace "wmb()" above with "mb()" to avoid reordering between read
and write IO instructions.


Ok on the dropping readback part

+ AFAIU from Will's response, we can drop the barrier as well



  
  	ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_RSCC_CONTROL_ACK, val,

val & (1 << 1), 100, 1);
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 973872ad0474..0acbc38b8e70 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1713,22 +1713,16 @@ static int hw_init(struct msm_gpu *gpu)
}
  
  	/* Clear GBIF halt in case GX domain was not collapsed */

+   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);


We need a full barrier here to avoid reordering. Also, lets add a
comment about why we are doing this odd looking sequence.


+   gpu_read(gpu, REG_A6XX_GBIF_HALT);
if (adreno_is_a619_holi(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
gpu_write(gpu, REG_A6XX_RBBM_GPR0_CNTL, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();


We need a full barrier here.


+   gpu_read(gpu, REG_A6XX_RBBM_GPR0_CNTL);
} else if (a6xx_has_gbif(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
gpu_write(gpu, REG_A6XX_RBBM_GBIF_HALT, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();


We need a full barrier here.


Not sure we do between REG_A6XX_GBIF_HALT & REG_A6XX_RBBM_(GBIF_HALT/GPR0_CNTL),
but I suppose keeping the one after REG_A6XX_RBBM_(GBIF_HALT/GPR0_CNTL) makes
sense to avoid the possibility of configuring the GPU before it can access 
DRAM..




+   gpu_read(gpu, REG_A6XX_RBBM_GBIF_HALT);
}
  
-	/* Some GPUs are stubborn and take their sweet time to unhalt GBIF! */

-   if (adreno_is_a7xx(adreno_gpu) && a6xx_has_gbif(adreno_gpu))
-   spin_until(!gpu_read(gpu, REG_A6XX_GBIF_HALT_ACK));
-


Why is this removed?


Because it was a hack in the first place and the enforcement of GBIF
unhalt requests coming through before proceeding further removes the
necessity to check this (unless there's some hw-mandated delay we should
keep in mind, but kgsl doesn't have that and there doesn't seem to be
any from testing on 8[456]50).

Konrad


Re: [PATCH] drm/msm/adreno: De-spaghettify the use of memory barriers

2024-06-04 Thread Konrad Dybcio




On 5/14/24 20:38, Akhil P Oommen wrote:

On Wed, May 08, 2024 at 07:46:31PM +0200, Konrad Dybcio wrote:

Memory barriers help ensure instruction ordering, NOT time and order
of actual write arrival at other observers (e.g. memory-mapped IP).
On architectures employing weak memory ordering, the latter can be a
giant pain point, and it has been as part of this driver.

Moreover, the gpu_/gmu_ accessors already use non-relaxed versions of
readl/writel, which include r/w (respectively) barriers.

Replace the barriers with a readback that ensures the previous writes
have exited the write buffer (as the CPU must flush the write to the
register it's trying to read back) and subsequently remove the hack
introduced in commit b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt
status in hw_init").

Fixes: b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt status in hw_init")
Signed-off-by: Konrad Dybcio 
---
  drivers/gpu/drm/msm/adreno/a6xx_gmu.c |  5 ++---
  drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 14 --
  2 files changed, 6 insertions(+), 13 deletions(-)


I prefer this version compared to the v2. A helper routine is
unnecessary here because:
1. there are very few scenarios where we have to read back the same
register.
2. we may accidently readback a write only register.


Which would still trigger an address dependency on the CPU, no?





diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 0e3dfd4c2bc8..4135a53b55a7 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -466,9 +466,8 @@ static int a6xx_rpmh_start(struct a6xx_gmu *gmu)
int ret;
u32 val;
  
-	gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, 1 << 1);

-   /* Wait for the register to finish posting */
-   wmb();
+   gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, BIT(1));
+   gmu_read(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ);


This is unnecessary because we are polling on a register on the same port 
below. But I think we
can replace "wmb()" above with "mb()" to avoid reordering between read
and write IO instructions.


Ok on the dropping readback part

+ AFAIU from Will's response, we can drop the barrier as well



  
  	ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_RSCC_CONTROL_ACK, val,

val & (1 << 1), 100, 1);
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 973872ad0474..0acbc38b8e70 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1713,22 +1713,16 @@ static int hw_init(struct msm_gpu *gpu)
}
  
  	/* Clear GBIF halt in case GX domain was not collapsed */

+   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);


We need a full barrier here to avoid reordering. Also, lets add a
comment about why we are doing this odd looking sequence.


+   gpu_read(gpu, REG_A6XX_GBIF_HALT);
if (adreno_is_a619_holi(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
gpu_write(gpu, REG_A6XX_RBBM_GPR0_CNTL, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();


We need a full barrier here.


+   gpu_read(gpu, REG_A6XX_RBBM_GPR0_CNTL);
} else if (a6xx_has_gbif(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
gpu_write(gpu, REG_A6XX_RBBM_GBIF_HALT, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();


We need a full barrier here.


Not sure we do between REG_A6XX_GBIF_HALT & REG_A6XX_RBBM_(GBIF_HALT/GPR0_CNTL),
but I suppose keeping the one after REG_A6XX_RBBM_(GBIF_HALT/GPR0_CNTL) makes
sense to avoid the possibility of configuring the GPU before it can access 
DRAM..




+   gpu_read(gpu, REG_A6XX_RBBM_GBIF_HALT);
}
  
-	/* Some GPUs are stubborn and take their sweet time to unhalt GBIF! */

-   if (adreno_is_a7xx(adreno_gpu) && a6xx_has_gbif(adreno_gpu))
-   spin_until(!gpu_read(gpu, REG_A6XX_GBIF_HALT_ACK));
-


Why is this removed?


Because it was a hack in the first place and the enforcement of GBIF
unhalt requests coming through before proceeding further removes the
necessity to check this (unless there's some hw-mandated delay we should
keep in mind, but kgsl doesn't have that and there doesn't seem to be
any from testing on 8[456]50).

Konrad


Re: [PATCH] drm/msm/adreno: Add support for Adreno 505 GPU

2024-06-04 Thread Konrad Dybcio




On 6/4/24 18:45, Barnabás Czémán wrote:

On Tue, Jun 4, 2024 at 2:27 PM Barnabás Czémán  wrote:


On Tue, Jun 4, 2024 at 1:55 PM Konrad Dybcio  wrote:




On 6/4/24 02:20, Barnabás Czémán wrote:

From: Daniil Titov 

This GPU is found on SoCs such as MSM8937 (450 MHz), MSM8940 (475 MHz),
SDM439 (650 MHz).

Signed-off-by: Daniil Titov 
Signed-off-by: Barnabás Czémán 
---


This all looks very good, just a nit

[...]


+ /*
+  * Increase inactive period to 250 to avoid bouncing
+  * the GDSC which appears to make it grumpy
+  */
+ .inactive_period = 250,


Are you sure this is actually necessary?

Every A5XX GPU is using the same value, but i have never tried with
DRM_MSM_INACTIVE_PERIOD.

This was the original patch
https://lore.kernel.org/all/20180507224750.9383-1-jcro...@codeaurora.org/
where the inactive period was increased for a530. I cannot test
suspend on msm8937 yet.


The suspend here refers to device suspend, not system suspend. Adreno
goes into device suspend every time you stop using it, i.e. after the
rendering is done and there's no more work to do.

I suppose a good test scenario here would be to keep running and closing
kmscube in a rapid fashion and checking if the GPU starts crashing for
unknown reasons (the dmesg would denote that)


I can check on msm8953 with a506 maybe if a506 works fine with
DRM_MSM_INACTIVE_PERIOD
then a505 would be fine with it also.


The more testing the merrier :)

Konrad


Re: [PATCH] drm/msm/adreno: Add support for Adreno 505 GPU

2024-06-04 Thread Konrad Dybcio




On 6/4/24 18:45, Barnabás Czémán wrote:

On Tue, Jun 4, 2024 at 2:27 PM Barnabás Czémán  wrote:


On Tue, Jun 4, 2024 at 1:55 PM Konrad Dybcio  wrote:




On 6/4/24 02:20, Barnabás Czémán wrote:

From: Daniil Titov 

This GPU is found on SoCs such as MSM8937 (450 MHz), MSM8940 (475 MHz),
SDM439 (650 MHz).

Signed-off-by: Daniil Titov 
Signed-off-by: Barnabás Czémán 
---


This all looks very good, just a nit

[...]


+ /*
+  * Increase inactive period to 250 to avoid bouncing
+  * the GDSC which appears to make it grumpy
+  */
+ .inactive_period = 250,


Are you sure this is actually necessary?

Every A5XX GPU is using the same value, but i have never tried with
DRM_MSM_INACTIVE_PERIOD.

This was the original patch
https://lore.kernel.org/all/20180507224750.9383-1-jcro...@codeaurora.org/
where the inactive period was increased for a530. I cannot test
suspend on msm8937 yet.


The suspend here refers to device suspend, not system suspend. Adreno
goes into device suspend every time you stop using it, i.e. after the
rendering is done and there's no more work to do.

I suppose a good test scenario here would be to keep running and closing
kmscube in a rapid fashion and checking if the GPU starts crashing for
unknown reasons (the dmesg would denote that)


I can check on msm8953 with a506 maybe if a506 works fine with
DRM_MSM_INACTIVE_PERIOD
then a505 would be fine with it also.


The more testing the merrier :)

Konrad


Re: [PATCH] drm/msm/a6xx: Print SQE fw version

2024-06-04 Thread Konrad Dybcio




On 6/4/24 17:48, Rob Clark wrote:

From: Rob Clark 

Add the SQE fw version to dmesg and devcoredump.

Signed-off-by: Rob Clark 
---
  drivers/gpu/drm/msm/adreno/a6xx_gpu.c   | 32 +++--
  drivers/gpu/drm/msm/adreno/a6xx_gpu.h   |  1 +
  drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c |  2 ++
  3 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 56bfb228808d..5a2a005003c8 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -665,6 +665,32 @@ static int a7xx_cp_init(struct msm_gpu *gpu)
return a6xx_idle(gpu, ring) ? 0 : -EINVAL;
  }
  
+static uint32_t get_ucode_version(const uint32_t *data)

+{
+   uint32_t version;
+
+   /* NOTE: compared to kgsl, we've already stripped off the first dword: 
*/
+   version = data[0];
+
+   if ((version & 0xf) != 0xa)
+   return version;
+
+   version &= ~0xfff;
+   return  version | ((data[2] & 0xfff000) >> 12);


double space

Some GENMASKy defines w/ FIELD_GET would be nice here..

[...]

  
+	DRM_DEV_INFO(>pdev->dev, "Have SQE version %03x\n", get_ucode_version(buf));



"SQE FW version: [...]" instead?


+
/* A7xx is safe! */
if (adreno_is_a7xx(adreno_gpu) || adreno_is_a702(adreno_gpu))
return true;
@@ -714,7 +742,7 @@ static bool a6xx_ucode_check_version(struct a6xx_gpu 
*a6xx_gpu,
}
  
  		DRM_DEV_ERROR(>pdev->dev,

-   "a630 SQE ucode is too old. Have version %x need at least 
%x\n",
+   "a630 SQE ucode is too old. Have version %03x need at least 
%03x\n",
buf[0] & 0xfff, 0x190);


This func should probably get updated to use the new getter too,
getting rid of magic masks for e.g.

if (FIELD_GET(SQE_FW_MINMAJ, ver) > 0x190)
foobarbaz

Konrad


Re: [PATCH] drm/msm/a6xx: Print SQE fw version

2024-06-04 Thread Konrad Dybcio




On 6/4/24 17:48, Rob Clark wrote:

From: Rob Clark 

Add the SQE fw version to dmesg and devcoredump.

Signed-off-by: Rob Clark 
---
  drivers/gpu/drm/msm/adreno/a6xx_gpu.c   | 32 +++--
  drivers/gpu/drm/msm/adreno/a6xx_gpu.h   |  1 +
  drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c |  2 ++
  3 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 56bfb228808d..5a2a005003c8 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -665,6 +665,32 @@ static int a7xx_cp_init(struct msm_gpu *gpu)
return a6xx_idle(gpu, ring) ? 0 : -EINVAL;
  }
  
+static uint32_t get_ucode_version(const uint32_t *data)

+{
+   uint32_t version;
+
+   /* NOTE: compared to kgsl, we've already stripped off the first dword: 
*/
+   version = data[0];
+
+   if ((version & 0xf) != 0xa)
+   return version;
+
+   version &= ~0xfff;
+   return  version | ((data[2] & 0xfff000) >> 12);


double space

Some GENMASKy defines w/ FIELD_GET would be nice here..

[...]

  
+	DRM_DEV_INFO(>pdev->dev, "Have SQE version %03x\n", get_ucode_version(buf));



"SQE FW version: [...]" instead?


+
/* A7xx is safe! */
if (adreno_is_a7xx(adreno_gpu) || adreno_is_a702(adreno_gpu))
return true;
@@ -714,7 +742,7 @@ static bool a6xx_ucode_check_version(struct a6xx_gpu 
*a6xx_gpu,
}
  
  		DRM_DEV_ERROR(>pdev->dev,

-   "a630 SQE ucode is too old. Have version %x need at least 
%x\n",
+   "a630 SQE ucode is too old. Have version %03x need at least 
%03x\n",
buf[0] & 0xfff, 0x190);


This func should probably get updated to use the new getter too,
getting rid of magic masks for e.g.

if (FIELD_GET(SQE_FW_MINMAJ, ver) > 0x190)
foobarbaz

Konrad


Re: [PATCH 2/2] ARM: dts: qcom: Add initial support for HTC One (M8)

2024-06-04 Thread Konrad Dybcio




On 6/3/24 08:28, Alexandre Messier via B4 Relay wrote:

From: Alexandre Messier 

Add initial device tree for the HTC One (M8) smartphone.

Initial support includes:
  - eMMC
  - Power button
  - USB
  - Vibrator
  - Volume buttons (GPIO)
  - Wi-Fi

Signed-off-by: Alexandre Messier 
---


Reviewed-by: Konrad Dybcio 

Konrad



Re: [PATCH] drm/msm/adreno: Add support for Adreno 505 GPU

2024-06-04 Thread Konrad Dybcio




On 6/4/24 02:20, Barnabás Czémán wrote:

From: Daniil Titov 

This GPU is found on SoCs such as MSM8937 (450 MHz), MSM8940 (475 MHz),
SDM439 (650 MHz).

Signed-off-by: Daniil Titov 
Signed-off-by: Barnabás Czémán 
---


This all looks very good, just a nit

[...]


+   /*
+* Increase inactive period to 250 to avoid bouncing
+* the GDSC which appears to make it grumpy
+*/
+   .inactive_period = 250,


Are you sure this is actually necessary?

Konrad


Re: [PATCH] drm/msm/adreno: Add support for Adreno 505 GPU

2024-06-04 Thread Konrad Dybcio




On 6/4/24 02:20, Barnabás Czémán wrote:

From: Daniil Titov 

This GPU is found on SoCs such as MSM8937 (450 MHz), MSM8940 (475 MHz),
SDM439 (650 MHz).

Signed-off-by: Daniil Titov 
Signed-off-by: Barnabás Czémán 
---


This all looks very good, just a nit

[...]


+   /*
+* Increase inactive period to 250 to avoid bouncing
+* the GDSC which appears to make it grumpy
+*/
+   .inactive_period = 250,


Are you sure this is actually necessary?

Konrad


[jira] [Updated] (MENFORCER-505) Wrong documentation for new requireMatchingCoordinates rules

2024-06-03 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/MENFORCER-505?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated MENFORCER-505:
--
Labels:   (was: up-for-grabs)

> Wrong documentation for new requireMatchingCoordinates rules
> 
>
> Key: MENFORCER-505
> URL: https://issues.apache.org/jira/browse/MENFORCER-505
> Project: Maven Enforcer Plugin
>  Issue Type: Bug
>Reporter: Michael Keppler
>    Assignee: Konrad Windszus
>Priority: Minor
> Fix For: next-release
>
>
> There is a copy-paste error in 
> [https://github.com/apache/maven-enforcer/blob/f8430efe20020071273bab883cffb3a2e0f00107/enforcer-rules/src/site/apt/requireMatchingCoordinates.apt.vm#L65,]
>  where the closing tag does not match the opening tag.
> See 
> [https://maven.apache.org/enforcer/enforcer-rules/requireMatchingCoordinates.html]
>  line 19 for the result.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (MENFORCER-505) Wrong documentation for new requireMatchingCoordinates rules

2024-06-03 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/MENFORCER-505?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus resolved MENFORCER-505.
---
Fix Version/s: next-release
   Resolution: Fixed

> Wrong documentation for new requireMatchingCoordinates rules
> 
>
> Key: MENFORCER-505
> URL: https://issues.apache.org/jira/browse/MENFORCER-505
> Project: Maven Enforcer Plugin
>  Issue Type: Bug
>Reporter: Michael Keppler
>    Assignee: Konrad Windszus
>Priority: Minor
>  Labels: up-for-grabs
> Fix For: next-release
>
>
> There is a copy-paste error in 
> [https://github.com/apache/maven-enforcer/blob/f8430efe20020071273bab883cffb3a2e0f00107/enforcer-rules/src/site/apt/requireMatchingCoordinates.apt.vm#L65,]
>  where the closing tag does not match the opening tag.
> See 
> [https://maven.apache.org/enforcer/enforcer-rules/requireMatchingCoordinates.html]
>  line 19 for the result.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (MENFORCER-505) Wrong documentation for new requireMatchingCoordinates rules

2024-06-02 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/MENFORCER-505?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus reassigned MENFORCER-505:
-

Assignee: Konrad Windszus

> Wrong documentation for new requireMatchingCoordinates rules
> 
>
> Key: MENFORCER-505
> URL: https://issues.apache.org/jira/browse/MENFORCER-505
> Project: Maven Enforcer Plugin
>  Issue Type: Bug
>Reporter: Michael Keppler
>    Assignee: Konrad Windszus
>Priority: Minor
>  Labels: up-for-grabs
>
> There is a copy-paste error in 
> [https://github.com/apache/maven-enforcer/blob/f8430efe20020071273bab883cffb3a2e0f00107/enforcer-rules/src/site/apt/requireMatchingCoordinates.apt.vm#L65,]
>  where the closing tag does not match the opening tag.
> See 
> [https://maven.apache.org/enforcer/enforcer-rules/requireMatchingCoordinates.html]
>  line 19 for the result.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[OE-core] [PATCH] insane: error out on UNPACKDIR = WORKDIR

2024-06-01 Thread Konrad Weihmann
as this will clear WORKDIR and create race conditions
across various handling tasks

Signed-off-by: Konrad Weihmann 
---
 meta/classes-global/insane.bbclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/classes-global/insane.bbclass 
b/meta/classes-global/insane.bbclass
index 99736830b9..32d3d7637a 100644
--- a/meta/classes-global/insane.bbclass
+++ b/meta/classes-global/insane.bbclass
@@ -1605,10 +1605,13 @@ python () {
 sourcedir = d.getVar("S")
 builddir = d.getVar("B")
 workdir = d.getVar("WORKDIR")
+unpackdir = d.getVar("UNPACKDIR")
 if sourcedir == workdir:
 bb.fatal("Using S = ${WORKDIR} is no longer supported")
 if builddir == workdir:
 bb.fatal("Using B = ${WORKDIR} is no longer supported")
+if unpackdir == workdir:
+bb.fatal("Using UNPACKDIR = ${WORKDIR} is not supported")
 if sourcedir[-1] == '/':
 bb.warn("Recipe %s sets S variable with trailing slash '%s', remove 
it" % (d.getVar("PN"), d.getVar("S")))
 if builddir[-1] == '/':
-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#200094): 
https://lists.openembedded.org/g/openembedded-core/message/200094
Mute This Topic: https://lists.openembedded.org/mt/106423265/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [PATCH v3 1/3] arm64: dts: qcom: pm7250b: Add node for PMIC VBUS booster

2024-05-31 Thread Konrad Dybcio
On 30.05.2024 5:05 PM, Luca Weiss wrote:
> Add the required DTS node for the USB VBUS output regulator, which is
> available on PM7250B. This will provide the VBUS source to connected
> peripherals.
> 
> Reviewed-by: Bryan O'Donoghue 
> Signed-off-by: Luca Weiss 
> ---

Reviewed-by: Konrad Dybcio 

Konrad



Re: [PATCH 1/5] dt-bindings: remoteproc: qcom,sm8550-pas: Document the SA8775p ADSP, CDSP and GPDSP

2024-05-29 Thread Konrad Dybcio
On 22.05.2024 3:08 PM, Bartosz Golaszewski wrote:
> On Wed, May 22, 2024 at 3:06 PM  wrote:
>>
>> On 22/05/2024 15:04, Bartosz Golaszewski wrote:
>>> On Wed, May 22, 2024 at 2:42 PM  wrote:
>>>>
>>>> On 22/05/2024 14:08, Bartosz Golaszewski wrote:
>>>>> From: Tengfei Fan 
>>>>>
>>>>> Document the compatibles for the components used to boot the ADSP, CDSP0,
>>>>> CDSP1, GPDSP0 and GPDSP1 on the SA8775p SoC.
>>>>>
>>>>> Signed-off-by: Tengfei Fan 
>>>>> Co-developed-by: Bartosz Golaszewski 
>>>>> Signed-off-by: Bartosz Golaszewski 
>>>>> ---
>>>>>.../bindings/remoteproc/qcom,sm8550-pas.yaml   | 76 
>>>>> +-
>>>>>1 file changed, 75 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git 
>>>>> a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml 
>>>>> b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml
>>>>> index 73fda7565cd1..9d3a862c39e1 100644
>>>>> --- a/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml
>>>>> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml
>>>>> @@ -16,6 +16,11 @@ description:
>>>>>properties:
>>>>>  compatible:
>>>>>enum:
>>>>> +  - qcom,sa8775p-adsp-pas
>>>>> +  - qcom,sa8775p-cdsp0-pas
>>>>> +  - qcom,sa8775p-cdsp1-pas
>>>>> +  - qcom,sa8775p-gpdsp0-pas
>>>>> +  - qcom,sa8775p-gpdsp1-pas
>>>>>  - qcom,sm8550-adsp-pas
>>>>>  - qcom,sm8550-cdsp-pas
>>>>>  - qcom,sm8550-mpss-pas
>>>>> @@ -44,12 +49,13 @@ properties:
>>>>>
>>>>>  firmware-name:
>>>>>$ref: /schemas/types.yaml#/definitions/string-array
>>>>> +minItems: 1
>>>>
>>>> This will allow a single firmware name for all compatible,
>>>> which is wrong
>>>>
>>>
>>> So increasing the limit from the default under allOf doesn't seem to
>>> work, should I instead keep this and make the lower limit stricter for
>>> all other models?
>>
>> Yes add minItems in all the allOf:if: and add the missing allOf:if: for
>> the new compatibles to set the minItems, same for memory-region.
>>
>> Or you may simply spin off a new yaml, this one is getting quite large.
>>
> 
> Yeah, maybe that's a better idea.

+ if you get rid of the 0/1 in "nsp0/nsp1" you save a couple more lines

Konrad



[jira] [Commented] (SLING-12331) Update sling maven plugins to maven 3.8.x

2024-05-29 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/SLING-12331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17850329#comment-17850329
 ] 

Konrad Windszus commented on SLING-12331:
-

The proper fix is to change the Maven dependencies provided by the Maven 
distribution to scope {{provided}}. That way they are no longer downloaded (for 
no reason). Compare with https://issues.apache.org/jira/browse/MPLUGIN-370.

> Update sling maven plugins to maven 3.8.x
> -
>
> Key: SLING-12331
> URL: https://issues.apache.org/jira/browse/SLING-12331
> Project: Sling
>  Issue Type: Improvement
>  Components: Maven Plugins and Archetypes
>Reporter: Dirk Rudolph
>Priority: Major
>
> We recently got some security vulnerability reported related to maven-core, 
> which is a transitive dependency used in many / some of the sling maven 
> plugins. 
> While maven-core is always take from the maven installation in the current 
> version, the vulnerable jars are downloaded when using the plugins, and hence 
> found and reported by security scanners.
> We should update our maven plugins to use the 3.8.x version of maven at least.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [PATCH] drm/msm/adreno: Add A306A support

2024-05-29 Thread Konrad Dybcio
On 28.05.2024 9:43 PM, Barnabás Czémán wrote:
> From: Otto Pflüger 
> 
> Add support for Adreno 306A GPU what is found in MSM8917 SoC.
> This GPU marketing name is Adreno 308.
> 
> Signed-off-by: Otto Pflüger 
> [use internal name of the GPU, reword the commit message]
> Signed-off-by: Barnabás Czémán 
> ---

[...]


>  
> +static inline bool adreno_is_a306a(const struct adreno_gpu *gpu)
> +{
> + /* a306a marketing name is a308 */
> + return adreno_is_revn(gpu, 308);
> +}

The .c changes look good. Rob, do we still want .rev nowadays?



Re: [PATCH] drm/msm/adreno: Add A306A support

2024-05-29 Thread Konrad Dybcio
On 28.05.2024 9:43 PM, Barnabás Czémán wrote:
> From: Otto Pflüger 
> 
> Add support for Adreno 306A GPU what is found in MSM8917 SoC.
> This GPU marketing name is Adreno 308.
> 
> Signed-off-by: Otto Pflüger 
> [use internal name of the GPU, reword the commit message]
> Signed-off-by: Barnabás Czémán 
> ---

[...]


>  
> +static inline bool adreno_is_a306a(const struct adreno_gpu *gpu)
> +{
> + /* a306a marketing name is a308 */
> + return adreno_is_revn(gpu, 308);
> +}

The .c changes look good. Rob, do we still want .rev nowadays?



[plasmashell] [Bug 486260] When the panel's floating mode is disabled, the system tray applets (nm-applet, clipper) do not work.

2024-05-29 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=486260

Konrad Materka  changed:

   What|Removed |Added

 Resolution|WORKSFORME  |DUPLICATE

--- Comment #4 from Konrad Materka  ---


*** This bug has been marked as a duplicate of bug 485456 ***

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 485456] With Qt 6.7, System Tray popup is inappropriately resized to a tiny nub

2024-05-29 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=485456

Konrad Materka  changed:

   What|Removed |Added

 CC||jimmbird2...@gmail.com

--- Comment #38 from Konrad Materka  ---
*** Bug 486260 has been marked as a duplicate of this bug. ***

-- 
You are receiving this mail because:
You are watching all bug changes.

[jira] [Commented] (MNG-5726) Update OS Activation To Allow Wildcards In OS Version

2024-05-26 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-5726?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17849549#comment-17849549
 ] 

Konrad Windszus commented on MNG-5726:
--

[~sjaranowski] I did that already. What exactly are you missing?

> Update OS Activation To Allow Wildcards In OS Version
> -
>
> Key: MNG-5726
> URL: https://issues.apache.org/jira/browse/MNG-5726
> Project: Maven
>  Issue Type: New Feature
>  Components: Profiles
>Affects Versions: 3.1.1, 3.2.3
> Environment: RHEL/CentOs
>Reporter: Andy Lehane
>Assignee: Konrad Windszus
>Priority: Minor
> Fix For: 3.9.7, 4.0.0-alpha-13, 4.0.0
>
> Attachments: maven-os-version-patch-3.2.3.zip
>
>
> I'm attempting to use maven to build a legacy project that requires different 
> dependecies based on the operating system version, i.e:
>  - version 1.0 of "a platform specific library" for Red Hat Linux 5 
>  - version 1.1 of "a platform specific library" for Red Hat Linux 6
>  - version 1.4a of "a platform specific library" for Windows and
>  - version 1.3b of (a platform specific library" for Solaris.
> I can configure my pom file to get activate specific profiles for RHEL, Win 
> and Solaris but cannot distinguish between Red Hat 5 and 6 unless I use the 
> full version string, which is of the form "2.6.32-504.1.3.el6.x86_64".
> As this Linux version will change whenever patch updates are installed, this 
> will make maintaining the pom/project akward.
> To solve this, it would be good to be able to specify wildcard's in the os 
> version tag. I have taken a look at the range checking (for example, as 
> applied to the JdkVersion), but don't think this method would be sufficient, 
> as the specific part of the Red Hat version number we require is buried over 
> half way into the version string (i.e. "el6" of the version 
> "2.6.32-504.1.3.el6.x86_64").
> It would be nice to be able to have something like:
> {code}
> 
>   linux-rhel5
> 
>   false
>   
> unix
> Linux
> *el5*
>   
> 
> 
> .
> {code}
> I've taken a look at the OperatingSystemProfileActivator code and have 
> created a patch that will use ^ to signify that the text is a regular 
> expression, for example:
> {code}
> ^.*(el5).*
> {code}
> I've also kept the ! notation, so the following can also be used:
> {code}
> !^.*(el5).*
> {code}
> The patch added contains a unit test for the OperatingSystemProfileActivator 
> in the maven-model-builder project (warning: it's a nasty test but I couldn't 
> find a nicer way of being able to reliably manuplate the OS Version).
> I've also patch the OperatingSystemProfileActivator class in the maven-compat 
> project but have not been able to write a unit test for that class.
> Can this updated be considered for implementation/inclusion please?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [PATCH] drm/msm/dpu: drop duplicate drm formats from wb2_formats arrays

2024-05-24 Thread Konrad Dybcio
On 24.05.2024 5:01 PM, Junhao Xie wrote:
> There are duplicate items in wb2_formats_rgb and wb2_formats_rgb_yuv,
> which cause weston assertions failed.
> 
> weston: libweston/drm-formats.c:131: weston_drm_format_array_add_format:
> Assertion `!weston_drm_format_array_find_format(formats, format)' failed.
> 
> Signed-off-by: Junhao Xie 
> ---

Reviewed-by: Konrad Dybcio 

Konrad


Re: [PATCH] drm/msm/dpu: drop duplicate drm formats from wb2_formats arrays

2024-05-24 Thread Konrad Dybcio
On 24.05.2024 5:01 PM, Junhao Xie wrote:
> There are duplicate items in wb2_formats_rgb and wb2_formats_rgb_yuv,
> which cause weston assertions failed.
> 
> weston: libweston/drm-formats.c:131: weston_drm_format_array_add_format:
> Assertion `!weston_drm_format_array_find_format(formats, format)' failed.
> 
> Signed-off-by: Junhao Xie 
> ---

Reviewed-by: Konrad Dybcio 

Konrad


[plasmashell] [Bug 425271] XembedSNIProxy causes "high" cpu usage with certain screen arrangements

2024-05-23 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=425271

Konrad Materka  changed:

   What|Removed |Added

   Version Fixed In||6.1

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 425271] XembedSNIProxy causes "high" cpu usage with certain screen arrangements

2024-05-23 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=425271

Konrad Materka  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Latest Commit||https://invent.kde.org/plas
   ||ma/plasma-workspace/-/commi
   ||t/efecf88d2d77d8f4cd94edb3a
   ||83d10deb16a1e92
 Resolution|--- |FIXED

--- Comment #56 from Konrad Materka  ---
Git commit efecf88d2d77d8f4cd94edb3a83d10deb16a1e92 by Konrad Materka.
Committed on 23/05/2024 at 12:34.
Pushed by kmaterka into branch 'master'.

xembedsniproxy: Fix high CPU usage when 0,0 is off-screen

Reverts 69786a1ff94718daf4de2d814037e70df079ec97, which is no longer needed
after 50bbe56bb08f9b265ad56510e2adc37db66f4d2d

Initial workaround for Bug 357443 tries to detect and fix window stacking
issues (for example after compositor restart). Unfortunately, it causes
infinite loop when (0,0) position (were windows are originally positioned) is
off-screen (this can happen in some less commonmulti-screen setups).
Proper fix was added in !4324, so that faulty workaround is no longer needed.

M  +0-9xembed-sni-proxy/fdoselectionmanager.cpp
M  +1-14   xembed-sni-proxy/sniproxy.cpp
M  +0-2xembed-sni-proxy/sniproxy.h

https://invent.kde.org/plasma/plasma-workspace/-/commit/efecf88d2d77d8f4cd94edb3a83d10deb16a1e92

-- 
You are receiving this mail because:
You are watching all bug changes.

[jira] [Commented] (SLING-12322) Stream Reader should Return SC_OK if content length is less than specified range

2024-05-22 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/SLING-12322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17848818#comment-17848818
 ] 

Konrad Windszus commented on SLING-12322:
-

I don’t think this is compliant with 
https://datatracker.ietf.org/doc/html/rfc7233#section-4.1. What actual issue 
are you trying to solve?

> Stream Reader should Return SC_OK if content length is less than specified 
> range
> 
>
> Key: SLING-12322
> URL: https://issues.apache.org/jira/browse/SLING-12322
> Project: Sling
>  Issue Type: Bug
>  Components: Servlets
>Affects Versions: Servlets Get 2.2.0
>Reporter: Abhishek Garg
>Priority: Major
>
> if the Request contains following header :
> {code:java}
> Range: bytes=0-8388607 {code}
> and file length is less than this, then we should return SC_OK(200) instead 
> of 
> SC_PARTIAL_CONTENT(206).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Instalacja pv

2024-05-20 Thread Konrad Zieliński
Dzień dobry,

czy są Państwo otwarci na niezobowiązującą rozmowę na temat fotowoltaiki?

Jako firma specjalizująca się w instalacji i serwisie najlepszych jakościowo 
paneli słonecznych na rynku chciałbym przedstawić propozycję, jaką wspólnie z 
zespołem przygotowaliśmy dla Państwa obiektu.

Będę wdzięczny za wiadomość od Państwa czy możemy porozmawiać.


Pozdrawiam
Konrad Zieliński



[plasmashell] [Bug 487187] When any window is full screened, the drop down menu of any component stops displaying

2024-05-18 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=487187

Konrad Materka  changed:

   What|Removed |Added

 Resolution|--- |WAITINGFORINFO
 Status|REPORTED|NEEDSINFO

--- Comment #2 from Konrad Materka  ---
Hi, this is possibly a duplicate of Bug 485456. Are you using Wayland? Do you
see tiny nub were popup should appear?

-- 
You are receiving this mail because:
You are watching all bug changes.

[jira] [Updated] (MNG-8097) Validate that each dependency->type is a type registered in an artifact handler

2024-05-18 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/MNG-8097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated MNG-8097:
-
Description: 
Currently often the dependency's type is being set to the extension and the 
resolution is lenient, i.e. if there is no artifact handler defining the value 
given in {{dependency->type}} resolution transparently uses the type as 
extension.
That can potentially lead to two issues:

1. Resolution might fail with surprising error messages like
{code}
Could not resolve dependencies for project : The following artifacts could 
not be resolved: : Could not transfer artifact 
::: from/to ...
{code}
This is an issue for all types not defined by Maven Core itself, e.g. for 
https://jackrabbit.apache.org/filevault-package-maven-plugin/index.html which 
registers an artifact handler for type {{content-package}} with extension 
{{zip}}.
2. The information {{addedToClasspath}}, {{includesDependencies}} and 
{{classifier}} from the artifact handler is not evaluated

Compare with 
https://maven.apache.org/repositories/artifacts.html#but-where-do-i-set-artifact-extension

  was:
Currently often the dependency's type is being set to the extension and the 
resolution is lenient, i.e. if there is no artifact handler defining the value 
given in {{dependency->type}} resolution transparently uses the type as 
extension.
That can potentially lead to two issues:

1. Resolution might fail with surprising error messages like
{code}
Could not resolve dependencies for project : The following artifacts could 
not be resolved: : Could not transfer artifact 
::: from/to ...
{code}
This is an issue for all types not defined by Maven Core itself, e.g. for 
https://jackrabbit.apache.org/filevault-package-maven-plugin/index.html which 
registers an artifact handler for type {{content-package}} with extension 
{{zip}}.
2. The information {{addedToClasspath}}, {{includesDependencies}} and 
{{classifier}} from the artifact handler is not evaluated


> Validate that each dependency->type is a type registered in an artifact 
> handler
> ---
>
> Key: MNG-8097
> URL: https://issues.apache.org/jira/browse/MNG-8097
> Project: Maven
>  Issue Type: New Feature
>Reporter: Konrad Windszus
>Priority: Major
>
> Currently often the dependency's type is being set to the extension and the 
> resolution is lenient, i.e. if there is no artifact handler defining the 
> value given in {{dependency->type}} resolution transparently uses the type as 
> extension.
> That can potentially lead to two issues:
> 1. Resolution might fail with surprising error messages like
> {code}
> Could not resolve dependencies for project : The following artifacts 
> could not be resolved: : Could not transfer artifact 
> ::: from/to ...
> {code}
> This is an issue for all types not defined by Maven Core itself, e.g. for 
> https://jackrabbit.apache.org/filevault-package-maven-plugin/index.html which 
> registers an artifact handler for type {{content-package}} with extension 
> {{zip}}.
> 2. The information {{addedToClasspath}}, {{includesDependencies}} and 
> {{classifier}} from the artifact handler is not evaluated
> Compare with 
> https://maven.apache.org/repositories/artifacts.html#but-where-do-i-set-artifact-extension



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MNG-8050) Same repositories IDs in settings.xml and POM are not detected

2024-05-18 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/MNG-8050?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus closed MNG-8050.


> Same repositories IDs in settings.xml and POM are not detected
> --
>
> Key: MNG-8050
> URL: https://issues.apache.org/jira/browse/MNG-8050
> Project: Maven
>  Issue Type: Improvement
>Reporter: Konrad Windszus
>    Assignee: Konrad Windszus
>Priority: Major
> Fix For: 4.0.0, 4.0.0-beta-3
>
>
> When the same repository ID is used in repositories defined in 
>  # {{settings.xml}} and
>  # POM
> the one from the POM is just silently ignored and no ERROR is emitted.
> OTOH when defining repositories with the same ID in POM the following error 
> is emitted:
> {code}
> [ERROR] Some problems were encountered while processing the POMs:
> [ERROR] 'repositories.repository.id' must be unique 
> {code}
> A similar error should be emitted for repository ID clashes in 
> {{settings.xml}} (both local and global) and POM
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (MNG-8050) Same repositories IDs in settings.xml and POM are not detected

2024-05-18 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/MNG-8050?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus resolved MNG-8050.
--
Fix Version/s: 4.0.0
   4.0.0-beta-3
   Resolution: Fixed

Fixed in 
https://github.com/apache/maven/commit/ac80eeabc4cf28199cf65cb58b27eae590b3d16a.

> Same repositories IDs in settings.xml and POM are not detected
> --
>
> Key: MNG-8050
> URL: https://issues.apache.org/jira/browse/MNG-8050
> Project: Maven
>  Issue Type: Improvement
>Reporter: Konrad Windszus
>    Assignee: Konrad Windszus
>Priority: Major
> Fix For: 4.0.0, 4.0.0-beta-3
>
>
> When the same repository ID is used in repositories defined in 
>  # {{settings.xml}} and
>  # POM
> the one from the POM is just silently ignored and no ERROR is emitted.
> OTOH when defining repositories with the same ID in POM the following error 
> is emitted:
> {code}
> [ERROR] Some problems were encountered while processing the POMs:
> [ERROR] 'repositories.repository.id' must be unique 
> {code}
> A similar error should be emitted for repository ID clashes in 
> {{settings.xml}} (both local and global) and POM
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[plasmashell] [Bug 433079] On Wayland container windows created by XEmbedSNIProxy are not stacked below root window

2024-05-18 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=433079

Konrad Materka  changed:

   What|Removed |Added

 CC||e...@horse64.org

--- Comment #39 from Konrad Materka  ---
*** Bug 487166 has been marked as a duplicate of this bug. ***

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 487166] Sometimes clicking a tray icon will invoke the menu of a completely different tray icon

2024-05-18 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=487166

Konrad Materka  changed:

   What|Removed |Added

 Status|REPORTED|RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #3 from Konrad Materka  ---
Yes, it's the same issue. Thank you for your report!

*** This bug has been marked as a duplicate of bug 433079 ***

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 487127] Tray icons perhaps shouldn't be locked to "Always visible" (probably design issue? or not sure)

2024-05-18 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=487127

Konrad Materka  changed:

   What|Removed |Added

 Status|NEEDSINFO   |RESOLVED
 Resolution|WAITINGFORINFO  |INTENTIONAL

--- Comment #3 from Konrad Materka  ---
"Always show all entries" does what it says - it makes all icons always visible
in tray and never hides them in "hidden" section.
If you want mixed mode, so some icons are always hidden, some are always
visible and other hides when not needed then you can set each item manually. By
default Plasma hides icons that are not needed, for example "Notifications" is
shown only when they are notification, "Clipboard" only when there is something
in the clipboard etc. This is controlled by the app that creates tray icon, but
you can always overwrite default behavior.

Closing bug as it works as intended.

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 487166] Sometimes clicking a tray icon will invoke the menu of a completely different tray icon

2024-05-18 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=487166

--- Comment #1 from Konrad Materka  ---
Are you using Wayland? Is Bug 433079 related?

-- 
You are receiving this mail because:
You are watching all bug changes.

[plasmashell] [Bug 487127] Tray icons perhaps shouldn't be locked to "Always visible" (probably design issue? or not sure)

2024-05-17 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=487127

Konrad Materka  changed:

   What|Removed |Added

 Status|REPORTED|NEEDSINFO
 Resolution|--- |WAITINGFORINFO

--- Comment #1 from Konrad Materka  ---
Have you checked the "Always show all entries" option at the bottom? In this
case, this is expected behavior.

-- 
You are receiving this mail because:
You are watching all bug changes.

[jira] [Assigned] (SLING-12319) JcrResourceListener should expose the JCR Event's getIdentifier()

2024-05-16 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/SLING-12319?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus reassigned SLING-12319:
---

Assignee: (was: Konrad Windszus)

> JcrResourceListener should expose the JCR Event's getIdentifier()
> -
>
> Key: SLING-12319
> URL: https://issues.apache.org/jira/browse/SLING-12319
> Project: Sling
>  Issue Type: Improvement
>  Components: JCR
>Reporter: Mark Adamcin
>Priority: Major
>
> The JcrResourceChange 
> ([https://github.com/apache/sling-org-apache-sling-jcr-resource/blob/daa4777ba63264b940e6b9b64df24189828ccd17/src/main/java/org/apache/sling/jcr/resource/api/JcrResourceChange.java#L31]
>  ) should expose the value of the JCR Event's getIdentifier() method, which 
> is otherwise read in case it contains a path, but ultimately discarded: 
> [https://github.com/apache/sling-org-apache-sling-jcr-resource/blob/daa4777ba63264b940e6b9b64df24189828ccd17/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java#L116]
>  
> The use case for this is primarily to expose the jcr:uuid of deleted 
> mix:referenceable nodes to listeners, because once the node is deleted, the 
> jcr:uuid property can no longer be accessed by the event path.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (JCRVLT-754) check-release does not work for filevault anymore

2024-05-16 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/JCRVLT-754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17846855#comment-17846855
 ] 

Konrad Windszus commented on JCRVLT-754:


bq. no sha1 is generated anymore; however, this is what is put into the 
generated vote template.

The SHA1 is generated, but no longer persisted. It is used in the email 
template: 
https://github.com/apache/jackrabbit-filevault/pull/331/files#diff-9c5fb3d1b7e3b0f54bc5c4182965c4fe1f9023d449017cece3005d3f90e8e4d8R300

> check-release does not work for filevault anymore
> -
>
> Key: JCRVLT-754
> URL: https://issues.apache.org/jira/browse/JCRVLT-754
> Project: Jackrabbit FileVault
>  Issue Type: Task
>Reporter: Julian Reschke
>    Assignee: Konrad Windszus
>Priority: Major
> Fix For: 3.7.4
>
>
> Since https://issues.apache.org/jira/browse/JCRVLT-742, no sha1 is generated 
> anymore; however, this is what is put into the generated vote template.
> The proper fix likely would be to put the SHA512 checksum into the vote 
> template.
> Furthermore, the basename of the source artefact changed from"src" to 
> "source-release". This needs to be adjusted in the check script.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (JCRVLT-742) Stop generating MD5, SHA1 and SHA512 with Ant

2024-05-16 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/JCRVLT-742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17846854#comment-17846854
 ] 

Konrad Windszus commented on JCRVLT-742:


FTR: The SHA1 is still generated and used in the email template being 
generated, but no longer persisted as file: 
https://github.com/apache/jackrabbit-filevault/pull/331/files#diff-9c5fb3d1b7e3b0f54bc5c4182965c4fe1f9023d449017cece3005d3f90e8e4d8R300

> Stop generating MD5, SHA1 and SHA512 with Ant
> -
>
> Key: JCRVLT-742
> URL: https://issues.apache.org/jira/browse/JCRVLT-742
> Project: Jackrabbit FileVault
>  Issue Type: Improvement
>  Components: package maven plugin
>    Reporter: Konrad Windszus
>Assignee: Konrad Windszus
>Priority: Major
> Fix For: 3.7.4, package-maven-plugin-1.3.8
>
>
> Currently there is still manual generation of MD5, SHA1 and SHA512 checksum 
> via Ant in 
> https://github.com/apache/jackrabbit-filevault/blob/3c9f668fc608c815db154b2569bf16c71f668428/pom.xml#L325-L340
>  and 
> https://github.com/apache/jackrabbit-filevault-package-maven-plugin/blob/c0433155e825130d1c9a435f5fb837af8e9c46d4/pom.xml#L744-L759.
> MD5 and SHA1 should no longer be provided according to 
> https://infra.apache.org/release-distribution.html#sigs-and-sums and SHA512 
> is automatically created through the ASF parent pom 
> (https://maven.apache.org/pom/asf/#the-apache-release-profile).
> In https://jackrabbit.apache.org/jcr/downloads.html#vlt we only link the 
> SHA512 anyways.
> Note: This is only about ASF dist not about the checksums used in Maven 
> repositories which are transparently created by Maven Resolver.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (JCRVLT-754) check-release does not work for filevault anymore

2024-05-16 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/JCRVLT-754?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus reassigned JCRVLT-754:
--

Assignee: Konrad Windszus

> check-release does not work for filevault anymore
> -
>
> Key: JCRVLT-754
> URL: https://issues.apache.org/jira/browse/JCRVLT-754
> Project: Jackrabbit FileVault
>  Issue Type: Task
>Reporter: Julian Reschke
>    Assignee: Konrad Windszus
>Priority: Major
> Fix For: 3.7.4
>
>
> Since https://issues.apache.org/jira/browse/JCRVLT-742, no sha1 is generated 
> anymore; however, this is what is put into the generated vote template.
> The proper fix likely would be to put the SHA512 checksum into the vote 
> template.
> Furthermore, the basename of the source artefact changed from"src" to 
> "source-release". This needs to be adjusted in the check script.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (JCRVLT-753) FORCE_REMOVE_CONFLICTING_ID Strategy Causing Constraint Violation Exception in AEM Replication

2024-05-16 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/JCRVLT-753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17846849#comment-17846849
 ] 

Konrad Windszus commented on JCRVLT-753:


We should at least clarify the javadoc of 
https://jackrabbit.apache.org/filevault/apidocs/org/apache/jackrabbit/vault/fs/api/IdConflictPolicy.html
 to make it clear that {{FORCE_REMOVE_CONFLICTING_ID}} may lead to exceptions 
as well.

> FORCE_REMOVE_CONFLICTING_ID Strategy Causing Constraint Violation Exception 
> in AEM Replication
> --
>
> Key: JCRVLT-753
> URL: https://issues.apache.org/jira/browse/JCRVLT-753
> Project: Jackrabbit FileVault
>  Issue Type: Bug
>  Components: vlt
>Reporter: Danilo Banjac
>Assignee: Konrad Windszus
>Priority: Major
>  Labels: vault
>
> {*}Issue Description{*}:
> Recent updates to the replication conflict resolution strategy in Adobe 
> Experience Manager (AEM) using JCR Filevault have led to failures when 
> attempting to replicate content packages. Specifically, the shift from the 
> *LEGACY* to the *FORCE_REMOVE_CONFLICTING_ID* strategy causes 
> *javax.jcr.nodetype.ConstraintViolationException: OakConstraint0026* due to 
> the attempted deletion of mandatory child nodes during the replication 
> process.
> {*}Steps to Reproduce{*}:
> 1. Create a content package with a primary node of type *nt:file* and a 
> mandatory child node {*}jcr:content{*}.
> 2. Update the version of the content package, ensuring the *jcr:uuid* of the 
> *jcr:content* node remains unchanged.
> 3. Replicate the updated content package.
> {*}Observed Behavior{*}:
> - The replication framework attempts to remove the conflicting *jcr:content* 
> node due to the identical {*}jcr:uuid{*}.
> - The deletion operation fails because the parent *nt:file* node requires the 
> *jcr:content* child node, resulting in a {*}ConstraintViolationException{*}: 
> "{*}Mandatory child node jcr:content cannot be removed.{*}"
> {*}Root Cause{*}:
> The *FORCE_REMOVE_CONFLICTING_ID* conflict resolution strategy does not 
> account for the constraints of mandatory child nodes in the JCR repository, 
> leading to violations when trying to remove these nodes.
> {*}Impact{*}:
> This issue prevents successful replication of updated content packages in 
> AEM, disrupting content management workflows and generating errors in the log.
> *Nodes Used for Testing*
> {noformat}
> {
>   "jcr:primaryType": "nt:file",
>   "jcr:createdBy": "sling-distribution-importer",
>   "jcr:created": "Tue May 14 2024 10:13:41 GMT+",
>   "jcr:content": {
> "jcr:primaryType": "nt:resource",
> "jcr:mixinTypes": [
>   "vlt:Package"
> ],
> "jcr:lastModifiedBy": "admin",
> "jcr:mimeType": "application/zip",
> "jcr:lastModified": "Tue May 14 2024 10:13:32 GMT+",
> ":jcr:data": 35146,
> "jcr:uuid": "cef51ff7-f3fc-4a41-b765-ca4ceb4246ce",
> "vlt:definition": {
>   "jcr:primaryType": "vlt:PackageDefinition",
>   "testedWith": "",
>   "lastUnpacked": "Tue May 14 2024 10:13:41 GMT+",
>   "lastUnpackedBy": "sling-distribution-importer",
>   "requiresRestart": false,
>   "requiresRoot": false,
>   "lastWrapped": "Fri Apr 26 2024 12:27:44 GMT+",
>   "buildCount": "17",
>   "providerLink": "",
>   "providerName": "",
>   "jcr:created": "Fri Apr 26 2024 12:27:44 GMT+",
>   "name": "global-truststore",
>   "group": "admin-tasks",
>   "version": "15.0",
>   "dependencies": [],
>   "fixedBugs": "",
>   "jcr:lastModified": "Fri Apr 26 2024 12:27:44 GMT+",
>   "lastUnwrapped": "Tue May 14 2024 10:13:32 GMT+",
>   "providerUrl": "",
>   "screenshots": {
> "jcr:primaryType": "nt:unstructured"
>   },
>   "filter": {
> "jcr:primaryType": "nt:unstructured",
> "f0": {
>   "jcr:primaryType": "nt:unstructured",
>   "propertyRules": [],
>   "mode": "replace",
>   "root": "/etc/truststore",
>   "rules": []
> }
>   }
> }
>   }
> }{noformat}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (MNG-7375) Potential NPE in o.a.m.artifact.repository.metadata.Metadata.merge(...) with invalid/incomplete plugin metadata

2024-05-15 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17846728#comment-17846728
 ] 

Konrad Windszus edited comment on MNG-7375 at 5/15/24 6:15 PM:
---

Although true, this is due to a limitation in modello: 
https://github.com/codehaus-plexus/modello/blob/8467ab87f95557c8c6409f5ebe613caf240836b3/modello-plugins/modello-plugin-xsd/src/main/java/org/codehaus/modello/plugin/xsd/XsdGenerator.java#L245-L247
Compare with 
https://github.com/apache/maven/blob/maven-3.9.x/maven-plugin-api/src/main/mdo/plugin.mdo#L75-L80


was (Author: kwin):
Although true, this is due to a limitation in modello: 
https://github.com/codehaus-plexus/modello/blob/8467ab87f95557c8c6409f5ebe613caf240836b3/modello-plugins/modello-plugin-xsd/src/main/java/org/codehaus/modello/plugin/xsd/XsdGenerator.java#L245-L247

> Potential NPE in o.a.m.artifact.repository.metadata.Metadata.merge(...) with 
> invalid/incomplete plugin metadata
> ---
>
> Key: MNG-7375
> URL: https://issues.apache.org/jira/browse/MNG-7375
> Project: Maven
>  Issue Type: Improvement
>  Components: Artifacts and Repositories
>Affects Versions: 3.8.4
>Reporter: Konrad Windszus
>Priority: Major
> Attachments: NEXUS-30749 - Broken groupId metadata and follow-up NPE 
> during 
> org.sonatype.nexus.maven.staging.deploy.strategy.AbstractDeployStrategy.deployUp
>  - Sonatype JIRA.pdf
>
>
> Currently the metadata at 
> https://repository.apache.org/service/local/repositories/snapshots/content/org/apache/jackrabbit/maven-metadata.xml
>  contains an invalid entry without a prefix:
> {code:xml}
> 
>   
> 
>   Apache Jackrabbit FileVault - Package Maven Plugin
>   filevault-package
>   filevault-package-maven-plugin
> 
> 
>   filevault-package-maven-plugin
>   filevault-package-maven-plugin
> 
>   
> 
> {code}
> This leads to an NPE when trying to deploy a new version with 
> {{org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(...)}}:
> {noformat}
> Caused by: java.lang.NullPointerException
> at org.apache.maven.artifact.repository.metadata.Metadata.merge 
> (Metadata.java:276)
> at 
> org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.updateRepositoryMetadata
>  (AbstractRepositoryMetadata.java:121)
> at 
> org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository
>  (AbstractRepositoryMetadata.java:67)
> at org.apache.maven.artifact.repository.metadata.MetadataBridge.merge 
> (MetadataBridge.java:65)
> at org.eclipse.aether.internal.impl.DefaultDeployer.upload 
> (DefaultDeployer.java:433)
> at org.eclipse.aether.internal.impl.DefaultDeployer.deploy 
> (DefaultDeployer.java:321)
> at org.eclipse.aether.internal.impl.DefaultDeployer.deploy 
> (DefaultDeployer.java:213)
> at org.eclipse.aether.internal.impl.DefaultRepositorySystem.deploy 
> (DefaultRepositorySystem.java:386)
> at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy 
> (DefaultArtifactDeployer.java:142)
> {noformat}
> Although this happened in the context of using 
> "[org.sonatype.plugins:nexus-staging-maven-plugin|https://github.com/sonatype/nexus-maven-plugins]:1.6.8;
>  (issue https://issues.sonatype.org/browse/NEXUS-30749 opened, exported to  
> [^NEXUS-30749 - Broken groupId metadata and follow-up NPE during 
> org.sonatype.nexus.maven.staging.deploy.strategy.AbstractDeployStrategy.deployUp
>  - Sonatype JIRA.pdf] ), the affected code is in Maven.
> The metadata is probably invalid but the Metadata class should be more robust 
> when trying to do the merge in 
> https://github.com/apache/maven/blob/951b5ee95f40147abbc2bb9d928e408b85d5aef3/maven-repository-metadata/src/main/mdo/metadata.mdo#L100
>  and just ignore all plugin entries without all mandatory elements.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MNG-7375) Potential NPE in o.a.m.artifact.repository.metadata.Metadata.merge(...) with invalid/incomplete plugin metadata

2024-05-15 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17846728#comment-17846728
 ] 

Konrad Windszus commented on MNG-7375:
--

Although true, this is due to a limitation in modello: 
https://github.com/codehaus-plexus/modello/blob/8467ab87f95557c8c6409f5ebe613caf240836b3/modello-plugins/modello-plugin-xsd/src/main/java/org/codehaus/modello/plugin/xsd/XsdGenerator.java#L245-L247

> Potential NPE in o.a.m.artifact.repository.metadata.Metadata.merge(...) with 
> invalid/incomplete plugin metadata
> ---
>
> Key: MNG-7375
> URL: https://issues.apache.org/jira/browse/MNG-7375
> Project: Maven
>  Issue Type: Improvement
>  Components: Artifacts and Repositories
>Affects Versions: 3.8.4
>Reporter: Konrad Windszus
>Priority: Major
> Attachments: NEXUS-30749 - Broken groupId metadata and follow-up NPE 
> during 
> org.sonatype.nexus.maven.staging.deploy.strategy.AbstractDeployStrategy.deployUp
>  - Sonatype JIRA.pdf
>
>
> Currently the metadata at 
> https://repository.apache.org/service/local/repositories/snapshots/content/org/apache/jackrabbit/maven-metadata.xml
>  contains an invalid entry without a prefix:
> {code:xml}
> 
>   
> 
>   Apache Jackrabbit FileVault - Package Maven Plugin
>   filevault-package
>   filevault-package-maven-plugin
> 
> 
>   filevault-package-maven-plugin
>   filevault-package-maven-plugin
> 
>   
> 
> {code}
> This leads to an NPE when trying to deploy a new version with 
> {{org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(...)}}:
> {noformat}
> Caused by: java.lang.NullPointerException
> at org.apache.maven.artifact.repository.metadata.Metadata.merge 
> (Metadata.java:276)
> at 
> org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.updateRepositoryMetadata
>  (AbstractRepositoryMetadata.java:121)
> at 
> org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository
>  (AbstractRepositoryMetadata.java:67)
> at org.apache.maven.artifact.repository.metadata.MetadataBridge.merge 
> (MetadataBridge.java:65)
> at org.eclipse.aether.internal.impl.DefaultDeployer.upload 
> (DefaultDeployer.java:433)
> at org.eclipse.aether.internal.impl.DefaultDeployer.deploy 
> (DefaultDeployer.java:321)
> at org.eclipse.aether.internal.impl.DefaultDeployer.deploy 
> (DefaultDeployer.java:213)
> at org.eclipse.aether.internal.impl.DefaultRepositorySystem.deploy 
> (DefaultRepositorySystem.java:386)
> at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy 
> (DefaultArtifactDeployer.java:142)
> {noformat}
> Although this happened in the context of using 
> "[org.sonatype.plugins:nexus-staging-maven-plugin|https://github.com/sonatype/nexus-maven-plugins]:1.6.8;
>  (issue https://issues.sonatype.org/browse/NEXUS-30749 opened, exported to  
> [^NEXUS-30749 - Broken groupId metadata and follow-up NPE during 
> org.sonatype.nexus.maven.staging.deploy.strategy.AbstractDeployStrategy.deployUp
>  - Sonatype JIRA.pdf] ), the affected code is in Maven.
> The metadata is probably invalid but the Metadata class should be more robust 
> when trying to do the merge in 
> https://github.com/apache/maven/blob/951b5ee95f40147abbc2bb9d928e408b85d5aef3/maven-repository-metadata/src/main/mdo/metadata.mdo#L100
>  and just ignore all plugin entries without all mandatory elements.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (JCRVLT-753) FORCE_REMOVE_CONFLICTING_ID Strategy Causing Constraint Violation Exception in AEM Replication

2024-05-15 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/JCRVLT-753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17846704#comment-17846704
 ] 

Konrad Windszus commented on JCRVLT-753:


[~dbanjac] Can you provide a failing IT in a PR?

However I don't have a clever idea how to solve this edge case as all options 
outlined above by [~reschke] seem quite unexpected to the user either so any 
other suggestions would be much appreciated.

> FORCE_REMOVE_CONFLICTING_ID Strategy Causing Constraint Violation Exception 
> in AEM Replication
> --
>
> Key: JCRVLT-753
> URL: https://issues.apache.org/jira/browse/JCRVLT-753
> Project: Jackrabbit FileVault
>  Issue Type: Bug
>  Components: vlt
>Reporter: Danilo Banjac
>Assignee: Konrad Windszus
>Priority: Major
>  Labels: vault
>
> {*}Issue Description{*}:
> Recent updates to the replication conflict resolution strategy in Adobe 
> Experience Manager (AEM) using JCR Filevault have led to failures when 
> attempting to replicate content packages. Specifically, the shift from the 
> *LEGACY* to the *FORCE_REMOVE_CONFLICTING_ID* strategy causes 
> *javax.jcr.nodetype.ConstraintViolationException: OakConstraint0026* due to 
> the attempted deletion of mandatory child nodes during the replication 
> process.
> {*}Steps to Reproduce{*}:
> 1. Create a content package with a primary node of type *nt:file* and a 
> mandatory child node {*}jcr:content{*}.
> 2. Update the version of the content package, ensuring the *jcr:uuid* of the 
> *jcr:content* node remains unchanged.
> 3. Replicate the updated content package.
> {*}Observed Behavior{*}:
> - The replication framework attempts to remove the conflicting *jcr:content* 
> node due to the identical {*}jcr:uuid{*}.
> - The deletion operation fails because the parent *nt:file* node requires the 
> *jcr:content* child node, resulting in a {*}ConstraintViolationException{*}: 
> "{*}Mandatory child node jcr:content cannot be removed.{*}"
> {*}Root Cause{*}:
> The *FORCE_REMOVE_CONFLICTING_ID* conflict resolution strategy does not 
> account for the constraints of mandatory child nodes in the JCR repository, 
> leading to violations when trying to remove these nodes.
> {*}Impact{*}:
> This issue prevents successful replication of updated content packages in 
> AEM, disrupting content management workflows and generating errors in the log.
> *Nodes Used for Testing*
> {noformat}
> {
>   "jcr:primaryType": "nt:file",
>   "jcr:createdBy": "sling-distribution-importer",
>   "jcr:created": "Tue May 14 2024 10:13:41 GMT+",
>   "jcr:content": {
> "jcr:primaryType": "nt:resource",
> "jcr:mixinTypes": [
>   "vlt:Package"
> ],
> "jcr:lastModifiedBy": "admin",
> "jcr:mimeType": "application/zip",
> "jcr:lastModified": "Tue May 14 2024 10:13:32 GMT+",
> ":jcr:data": 35146,
> "jcr:uuid": "cef51ff7-f3fc-4a41-b765-ca4ceb4246ce",
> "vlt:definition": {
>   "jcr:primaryType": "vlt:PackageDefinition",
>   "testedWith": "",
>   "lastUnpacked": "Tue May 14 2024 10:13:41 GMT+",
>   "lastUnpackedBy": "sling-distribution-importer",
>   "requiresRestart": false,
>   "requiresRoot": false,
>   "lastWrapped": "Fri Apr 26 2024 12:27:44 GMT+",
>   "buildCount": "17",
>   "providerLink": "",
>   "providerName": "",
>   "jcr:created": "Fri Apr 26 2024 12:27:44 GMT+",
>   "name": "global-truststore",
>   "group": "admin-tasks",
>   "version": "15.0",
>   "dependencies": [],
>   "fixedBugs": "",
>   "jcr:lastModified": "Fri Apr 26 2024 12:27:44 GMT+",
>   "lastUnwrapped": "Tue May 14 2024 10:13:32 GMT+",
>   "providerUrl": "",
>   "screenshots": {
> "jcr:primaryType": "nt:unstructured"
>   },
>   "filter": {
> "jcr:primaryType": "nt:unstructured",
> "f0": {
>   "jcr:primaryType": "nt:unstructured",
>   "propertyRules": [],
>   "mode": "replace",
>   "root": "/etc/truststore",
>   "rules": []
> }
>   }
> }
>   }
> }{noformat}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [PATCH] drm/msm: Add obj flags to gpu devcoredump

2024-05-14 Thread Konrad Dybcio




On 5/13/24 17:51, Rob Clark wrote:

From: Rob Clark 

When debugging faults, it is useful to know how the BO is mapped (cached
vs WC, gpu readonly, etc).

Signed-off-by: Rob Clark 
---


Acked-by: Konrad Dybcio 

Konrad


Re: [PATCH] drm/msm: Add obj flags to gpu devcoredump

2024-05-14 Thread Konrad Dybcio




On 5/13/24 17:51, Rob Clark wrote:

From: Rob Clark 

When debugging faults, it is useful to know how the BO is mapped (cached
vs WC, gpu readonly, etc).

Signed-off-by: Rob Clark 
---


Acked-by: Konrad Dybcio 

Konrad


[plasmashell] [Bug 486989] System Tray Context Menu sets its size to 0x0 (practically invisble) everytime the floating system bar switches to fixed mode.

2024-05-14 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=486989

Konrad Materka  changed:

   What|Removed |Added

 Resolution|--- |WAITINGFORINFO
 Status|REPORTED|NEEDSINFO

--- Comment #1 from Konrad Materka  ---
Is context menu sized incorrectly or extended applet? I'm asking, because
similar issue was already reported: Bug 485456

-- 
You are receiving this mail because:
You are watching all bug changes.

API Regions and Split-Packages

2024-05-13 Thread Konrad Windszus
Hi,
I have a question about 
https://github.com/apache/sling-org-apache-sling-feature-apiregions and split 
packages.
How are split-packages supposed to be treated by the resolver in case an 
imported-package from bundle a in region A can be resolved from bundle b (in 
region A) and bundle c (in global region).
Is there any special rules applied here for split-packages across regions?

Thanks in advance,
Konrad

Re: [vz-dev] Gateway?

2024-05-13 Thread Konrad Wilhelm
On Mon, 13 May 2024 09:22:28 +0200, you wrote:

>Am Montag, dem 13.05.2024 um 08:39 +0200 schrieb Daniel Lauckner:
>> Die modernen Messeinrichtungen (eHz) haben 2 optische Schnittstellen. Eine 
>> vorne, die wir mit dem Lesekopf anzapfen. Eine hinten.
>> Die Gateways werden an der rückseitigen Schnittstelle angeschlossen, der 
>> Lesekopf ist da in der Zählerplatte fixiert und verbleibt beim Zählertausch.
>
>Danke für die Info. Weißt Du auch, welche Protokolle verwendet werden? 
>
>Meine Vermutung ist, das neue Zähler verstärkt MBus verwenden werden,
>weil die Gateways auch über MBus kommunizieren.
>
>Gruß,
>Joachim
Die Beschreibung der Schnittstelle, die man mit einem IR-Kopf abgreift (direkt
neben der Taschenlampenschnittstelle)
findet man z. B. sehr detailliert hier:
https://www.stadtwerke-rheine.de/de/Netze/Stromnetz/Betriebsanleitung-mME-DD3-2023-11-23.pdf

Funktioniert bei mir gut.

l.
--
Konrad Wilhelm 
Südstr. 3, D48329 Havixbeck Tel. 02507-7705


[PATCH v2] drm/msm/adreno: De-spaghettify the use of memory barriers

2024-05-09 Thread Konrad Dybcio
Memory barriers help ensure instruction ordering, NOT time and order
of actual write arrival at other observers (e.g. memory-mapped IP).
On architectures employing weak memory ordering, the latter can be a
giant pain point, and it has been as part of this driver.

Moreover, the gpu_/gmu_ accessors already use non-relaxed versions of
readl/writel, which include r/w (respectively) barriers.

Replace the barriers with a readback that ensures the previous writes
have exited the write buffer (as the CPU must flush the write to the
register it's trying to read back) and subsequently remove the hack
introduced in commit b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt
status in hw_init").

Fixes: b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt status in hw_init")
Signed-off-by: Konrad Dybcio 
---
Changes in v2:

* Introduce gpu_write_flush() and use it
* Don't accidentally break a630 by trying to write to non-existent GBIF
---
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c |  4 +---
 drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 10 ++
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 16 
 drivers/gpu/drm/msm/msm_gpu.h | 14 --
 4 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 0e3dfd4c2bc8..fb2f8a03da41 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -466,9 +466,7 @@ static int a6xx_rpmh_start(struct a6xx_gmu *gmu)
int ret;
u32 val;
 
-   gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, 1 << 1);
-   /* Wait for the register to finish posting */
-   wmb();
+   gmu_write_flush(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, BIT(1));
 
ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_RSCC_CONTROL_ACK, val,
val & (1 << 1), 100, 1);
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.h 
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.h
index 94b6c5cab6f4..ab7f581f0d24 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.h
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.h
@@ -111,6 +111,16 @@ static inline void gmu_write(struct a6xx_gmu *gmu, u32 
offset, u32 value)
writel(value, gmu->mmio + (offset << 2));
 }
 
+/*
+ * Use for timing-critical writes that must reach the hardware immediately
+ * (to work around write buffering), e.g. for reset registers.
+ */
+static inline void gmu_write_flush(struct a6xx_gmu *gmu, u32 offset, u32 value)
+{
+   gmu_write(gmu, offset, value);
+   gmu_read(gmu, offset);
+}
+
 static inline void
 gmu_write_bulk(struct a6xx_gmu *gmu, u32 offset, const u32 *data, u32 size)
 {
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index cf0b1de1c071..ef7eaa6d5e5c 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1714,21 +1714,13 @@ static int hw_init(struct msm_gpu *gpu)
 
/* Clear GBIF halt in case GX domain was not collapsed */
if (adreno_is_a619_holi(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
-   gpu_write(gpu, REG_A6XX_RBBM_GPR0_CNTL, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();
+   gpu_write_flush(gpu, REG_A6XX_GBIF_HALT, 0);
+   gpu_write_flush(gpu, REG_A6XX_RBBM_GPR0_CNTL, 0);
} else if (a6xx_has_gbif(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
-   gpu_write(gpu, REG_A6XX_RBBM_GBIF_HALT, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();
+   gpu_write_flush(gpu, REG_A6XX_GBIF_HALT, 0);
+   gpu_write_flush(gpu, REG_A6XX_RBBM_GBIF_HALT, 0);
}
 
-   /* Some GPUs are stubborn and take their sweet time to unhalt GBIF! */
-   if (adreno_is_a7xx(adreno_gpu) && a6xx_has_gbif(adreno_gpu))
-   spin_until(!gpu_read(gpu, REG_A6XX_GBIF_HALT_ACK));
-
gpu_write(gpu, REG_A6XX_RBBM_SECVID_TSB_CNTL, 0);
 
if (adreno_is_a619_holi(adreno_gpu))
diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h
index a0c1bd6d1d5b..45d00acd5b1b 100644
--- a/drivers/gpu/drm/msm/msm_gpu.h
+++ b/drivers/gpu/drm/msm/msm_gpu.h
@@ -553,14 +553,24 @@ struct msm_gpu_state {
struct msm_gpu_state_bo *bos;
 };
 
+static inline u32 gpu_read(struct msm_gpu *gpu, u32 reg)
+{
+   return readl(gpu->mmio + (reg << 2));
+}
+
 static inline void gpu_write(struct msm_gpu *gpu, u32 reg, u32 data)
 {
writel(data, gpu->mmio + (reg << 2));
 }
 
-static inline u32 gpu_read(struct msm_gpu *gpu, u32 reg)
+/*
+ * Use for timing-critical writes that must reach the hardware immediately
+ * (to work around write buffering), e.g. for reset registers.
+ */
+static inline void gpu_write_flush(struct msm_gpu *gpu, u32 reg, u32 data)
 {
-  

[PATCH v2] drm/msm/adreno: De-spaghettify the use of memory barriers

2024-05-09 Thread Konrad Dybcio
Memory barriers help ensure instruction ordering, NOT time and order
of actual write arrival at other observers (e.g. memory-mapped IP).
On architectures employing weak memory ordering, the latter can be a
giant pain point, and it has been as part of this driver.

Moreover, the gpu_/gmu_ accessors already use non-relaxed versions of
readl/writel, which include r/w (respectively) barriers.

Replace the barriers with a readback that ensures the previous writes
have exited the write buffer (as the CPU must flush the write to the
register it's trying to read back) and subsequently remove the hack
introduced in commit b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt
status in hw_init").

Fixes: b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt status in hw_init")
Signed-off-by: Konrad Dybcio 
---
Changes in v2:

* Introduce gpu_write_flush() and use it
* Don't accidentally break a630 by trying to write to non-existent GBIF
---
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c |  4 +---
 drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 10 ++
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 16 
 drivers/gpu/drm/msm/msm_gpu.h | 14 --
 4 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 0e3dfd4c2bc8..fb2f8a03da41 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -466,9 +466,7 @@ static int a6xx_rpmh_start(struct a6xx_gmu *gmu)
int ret;
u32 val;
 
-   gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, 1 << 1);
-   /* Wait for the register to finish posting */
-   wmb();
+   gmu_write_flush(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, BIT(1));
 
ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_RSCC_CONTROL_ACK, val,
val & (1 << 1), 100, 1);
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.h 
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.h
index 94b6c5cab6f4..ab7f581f0d24 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.h
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.h
@@ -111,6 +111,16 @@ static inline void gmu_write(struct a6xx_gmu *gmu, u32 
offset, u32 value)
writel(value, gmu->mmio + (offset << 2));
 }
 
+/*
+ * Use for timing-critical writes that must reach the hardware immediately
+ * (to work around write buffering), e.g. for reset registers.
+ */
+static inline void gmu_write_flush(struct a6xx_gmu *gmu, u32 offset, u32 value)
+{
+   gmu_write(gmu, offset, value);
+   gmu_read(gmu, offset);
+}
+
 static inline void
 gmu_write_bulk(struct a6xx_gmu *gmu, u32 offset, const u32 *data, u32 size)
 {
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index cf0b1de1c071..ef7eaa6d5e5c 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1714,21 +1714,13 @@ static int hw_init(struct msm_gpu *gpu)
 
/* Clear GBIF halt in case GX domain was not collapsed */
if (adreno_is_a619_holi(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
-   gpu_write(gpu, REG_A6XX_RBBM_GPR0_CNTL, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();
+   gpu_write_flush(gpu, REG_A6XX_GBIF_HALT, 0);
+   gpu_write_flush(gpu, REG_A6XX_RBBM_GPR0_CNTL, 0);
} else if (a6xx_has_gbif(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
-   gpu_write(gpu, REG_A6XX_RBBM_GBIF_HALT, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();
+   gpu_write_flush(gpu, REG_A6XX_GBIF_HALT, 0);
+   gpu_write_flush(gpu, REG_A6XX_RBBM_GBIF_HALT, 0);
}
 
-   /* Some GPUs are stubborn and take their sweet time to unhalt GBIF! */
-   if (adreno_is_a7xx(adreno_gpu) && a6xx_has_gbif(adreno_gpu))
-   spin_until(!gpu_read(gpu, REG_A6XX_GBIF_HALT_ACK));
-
gpu_write(gpu, REG_A6XX_RBBM_SECVID_TSB_CNTL, 0);
 
if (adreno_is_a619_holi(adreno_gpu))
diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h
index a0c1bd6d1d5b..45d00acd5b1b 100644
--- a/drivers/gpu/drm/msm/msm_gpu.h
+++ b/drivers/gpu/drm/msm/msm_gpu.h
@@ -553,14 +553,24 @@ struct msm_gpu_state {
struct msm_gpu_state_bo *bos;
 };
 
+static inline u32 gpu_read(struct msm_gpu *gpu, u32 reg)
+{
+   return readl(gpu->mmio + (reg << 2));
+}
+
 static inline void gpu_write(struct msm_gpu *gpu, u32 reg, u32 data)
 {
writel(data, gpu->mmio + (reg << 2));
 }
 
-static inline u32 gpu_read(struct msm_gpu *gpu, u32 reg)
+/*
+ * Use for timing-critical writes that must reach the hardware immediately
+ * (to work around write buffering), e.g. for reset registers.
+ */
+static inline void gpu_write_flush(struct msm_gpu *gpu, u32 reg, u32 data)
 {
-  

[Bug 2064208] Re: Installer crashes when booting from USB on Raspberry Pi

2024-05-09 Thread Konrad Krasowski
Adding to the above:

1. @waveform - thank you so much for the new image!!! - it works!
Nothing has worked for me until now, even the initial ubuntu setup from
sd card (tried other options: usb stick, sd card via usb adapter, nvme),
no matter how I flashed it (r-imager, balenda etcher). I always ended up
with failed installation pop-up window, without even displaying the
graphic glitch with the progress bar. Now I have managed successfully to
set ubuntu 24.04 lts on my pi from the sd card as well as the nvme!

2. Test hardware details:
   - Raspberry pi 5 with 8gb ram
   - micro sd SanDisc Extreme V30 32GB flashed with Balena Etcher on mac
   - nvme Lexar NM790 1TB (Gen 4x4) flashed with pi-imager using custom image 
on my pi when the above got  running

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2064208

Title:
  Installer crashes when booting from USB on Raspberry Pi

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/2064208/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

[PATCH] drm/msm/adreno: De-spaghettify the use of memory barriers

2024-05-08 Thread Konrad Dybcio
Memory barriers help ensure instruction ordering, NOT time and order
of actual write arrival at other observers (e.g. memory-mapped IP).
On architectures employing weak memory ordering, the latter can be a
giant pain point, and it has been as part of this driver.

Moreover, the gpu_/gmu_ accessors already use non-relaxed versions of
readl/writel, which include r/w (respectively) barriers.

Replace the barriers with a readback that ensures the previous writes
have exited the write buffer (as the CPU must flush the write to the
register it's trying to read back) and subsequently remove the hack
introduced in commit b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt
status in hw_init").

Fixes: b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt status in hw_init")
Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c |  5 ++---
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 14 --
 2 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 0e3dfd4c2bc8..4135a53b55a7 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -466,9 +466,8 @@ static int a6xx_rpmh_start(struct a6xx_gmu *gmu)
int ret;
u32 val;
 
-   gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, 1 << 1);
-   /* Wait for the register to finish posting */
-   wmb();
+   gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, BIT(1));
+   gmu_read(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ);
 
ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_RSCC_CONTROL_ACK, val,
val & (1 << 1), 100, 1);
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 973872ad0474..0acbc38b8e70 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1713,22 +1713,16 @@ static int hw_init(struct msm_gpu *gpu)
}
 
/* Clear GBIF halt in case GX domain was not collapsed */
+   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
+   gpu_read(gpu, REG_A6XX_GBIF_HALT);
if (adreno_is_a619_holi(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
gpu_write(gpu, REG_A6XX_RBBM_GPR0_CNTL, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();
+   gpu_read(gpu, REG_A6XX_RBBM_GPR0_CNTL);
} else if (a6xx_has_gbif(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
gpu_write(gpu, REG_A6XX_RBBM_GBIF_HALT, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();
+   gpu_read(gpu, REG_A6XX_RBBM_GBIF_HALT);
}
 
-   /* Some GPUs are stubborn and take their sweet time to unhalt GBIF! */
-   if (adreno_is_a7xx(adreno_gpu) && a6xx_has_gbif(adreno_gpu))
-   spin_until(!gpu_read(gpu, REG_A6XX_GBIF_HALT_ACK));
-
gpu_write(gpu, REG_A6XX_RBBM_SECVID_TSB_CNTL, 0);
 
if (adreno_is_a619_holi(adreno_gpu))

---
base-commit: 93a39e4766083050ca0ecd6a3548093a3b9eb60c
change-id: 20240508-topic-adreno-a2d199cd4152

Best regards,
-- 
Konrad Dybcio 



[PATCH] drm/msm/adreno: De-spaghettify the use of memory barriers

2024-05-08 Thread Konrad Dybcio
Memory barriers help ensure instruction ordering, NOT time and order
of actual write arrival at other observers (e.g. memory-mapped IP).
On architectures employing weak memory ordering, the latter can be a
giant pain point, and it has been as part of this driver.

Moreover, the gpu_/gmu_ accessors already use non-relaxed versions of
readl/writel, which include r/w (respectively) barriers.

Replace the barriers with a readback that ensures the previous writes
have exited the write buffer (as the CPU must flush the write to the
register it's trying to read back) and subsequently remove the hack
introduced in commit b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt
status in hw_init").

Fixes: b77532803d11 ("drm/msm/a6xx: Poll for GBIF unhalt status in hw_init")
Signed-off-by: Konrad Dybcio 
---
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c |  5 ++---
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 14 --
 2 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
index 0e3dfd4c2bc8..4135a53b55a7 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
@@ -466,9 +466,8 @@ static int a6xx_rpmh_start(struct a6xx_gmu *gmu)
int ret;
u32 val;
 
-   gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, 1 << 1);
-   /* Wait for the register to finish posting */
-   wmb();
+   gmu_write(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ, BIT(1));
+   gmu_read(gmu, REG_A6XX_GMU_RSCC_CONTROL_REQ);
 
ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_RSCC_CONTROL_ACK, val,
val & (1 << 1), 100, 1);
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 973872ad0474..0acbc38b8e70 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1713,22 +1713,16 @@ static int hw_init(struct msm_gpu *gpu)
}
 
/* Clear GBIF halt in case GX domain was not collapsed */
+   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
+   gpu_read(gpu, REG_A6XX_GBIF_HALT);
if (adreno_is_a619_holi(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
gpu_write(gpu, REG_A6XX_RBBM_GPR0_CNTL, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();
+   gpu_read(gpu, REG_A6XX_RBBM_GPR0_CNTL);
} else if (a6xx_has_gbif(adreno_gpu)) {
-   gpu_write(gpu, REG_A6XX_GBIF_HALT, 0);
gpu_write(gpu, REG_A6XX_RBBM_GBIF_HALT, 0);
-   /* Let's make extra sure that the GPU can access the memory.. */
-   mb();
+   gpu_read(gpu, REG_A6XX_RBBM_GBIF_HALT);
}
 
-   /* Some GPUs are stubborn and take their sweet time to unhalt GBIF! */
-   if (adreno_is_a7xx(adreno_gpu) && a6xx_has_gbif(adreno_gpu))
-   spin_until(!gpu_read(gpu, REG_A6XX_GBIF_HALT_ACK));
-
gpu_write(gpu, REG_A6XX_RBBM_SECVID_TSB_CNTL, 0);
 
if (adreno_is_a619_holi(adreno_gpu))

---
base-commit: 93a39e4766083050ca0ecd6a3548093a3b9eb60c
change-id: 20240508-topic-adreno-a2d199cd4152

Best regards,
-- 
Konrad Dybcio 



[jira] [Updated] (JCRVLT-751) ExportOptions.rootPath not properly converted to platform name format

2024-05-08 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/JCRVLT-751?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated JCRVLT-751:
---
Resolution: Fixed
Status: Resolved  (was: Patch Available)

Fixed in 
https://github.com/apache/jackrabbit-filevault/commit/33b23e126e7e7260582dd43d4b9f4c93958da674.

> ExportOptions.rootPath not properly converted to platform name format
> -
>
> Key: JCRVLT-751
> URL: https://issues.apache.org/jira/browse/JCRVLT-751
> Project: Jackrabbit FileVault
>  Issue Type: Bug
>  Components: vlt
>Affects Versions: 3.7.2
>Reporter: Timothée Maret
>Assignee: Konrad Windszus
>Priority: Major
>  Labels: vault
> Fix For: 3.7.4
>
>
> AEM has a user synchronisation capability in the publish tier. The 
> synchronisation mechanism relies on FileVault to export and import content.
> Users stored in the repository under a path that starts with a _ and that 
> contain another _ can be exported but fail to be re-imported. For instance, 
> the user stored under the path /home/users/test/_6k_test-user-a won't be 
> imported.
> Debugging this issue, it seems that FileVault treats the _6k_ pattern as a 
> namespace and thus skip the resource upon import because the paths don't 
> match.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (FELIX-6704) Improve error logging for exceptions thrown from Configuration Plugins in ConfigurationManager

2024-05-07 Thread Konrad Windszus (Jira)
Konrad Windszus created FELIX-6704:
--

 Summary: Improve error logging for exceptions thrown from 
Configuration Plugins in ConfigurationManager
 Key: FELIX-6704
 URL: https://issues.apache.org/jira/browse/FELIX-6704
 Project: Felix
  Issue Type: Improvement
  Components: Configuration Admin
Affects Versions: configadmin-1.9.24
Reporter: Konrad Windszus


Currently all throwables are caught in 
https://github.com/apache/felix-dev/blob/517f9a0c89cad1866f315255568b40c568f5239d/configadmin/src/main/java/org/apache/felix/cm/impl/ConfigurationManager.java#L932
 and logged. 
The important factory or configuration PID is not emitted in the log message 
though.

Example:

{code}
07.05.2024 20:41:33.820 *ERROR* [FelixLogListener] 
LogService.org.apache.felix.configadmin Service 
[org.apache.felix.cm.ConfigurationAdmin,47, 
[org.osgi.service.cm.ConfigurationAdmin]] Unexpected problem calling 
configuration plugin [org.osgi.service.cm.ConfigurationPlugin, id=41, 
bundle=38/slinginstall:org.apache.felix.configadmin.plugin.interpolation-1.2.6.jar]
 (org.apache.felix.log.LogException: 
org.osgi.util.converter.ConversionException: Cannot convert TO BE PROVIDED to 
class java.lang.Integer)
org.apache.felix.log.LogException: org.osgi.util.converter.ConversionException: 
Cannot convert TO BE PROVIDED to class java.lang.Integer
at org.osgi.util.converter.ConvertingImpl.to(ConvertingImpl.java:243)
at 
org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:183)
at 
org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:151)
at 
org.osgi.util.converter.CustomConverterImpl$ConvertingWrapper.to(CustomConverterImpl.java:141)
at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.convertType(InterpolationConfigurationPlugin.java:308)
at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.lambda$replace$0(InterpolationConfigurationPlugin.java:197)
at 
org.apache.felix.configadmin.plugin.interpolation.Interpolator.replace(Interpolator.java:149)
at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.replace(InterpolationConfigurationPlugin.java:179)
at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.getNewValue(InterpolationConfigurationPlugin.java:171)
at 
org.apache.felix.configadmin.plugin.interpolation.InterpolationConfigurationPlugin.modifyConfiguration(InterpolationConfigurationPlugin.java:133)
at 
org.apache.felix.cm.impl.ConfigurationManager.callPlugins(ConfigurationManager.java:928)
 [org.apache.felix.configadmin:1.9.24]
at 
org.apache.felix.cm.impl.ConfigurationAdapter.getProcessedProperties(ConfigurationAdapter.java:293)
 [org.apache.felix.configadmin:1.9.24]
at 
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.getConfigurationInfo(RegionConfigurationSupport.java:532)
 [org.apache.felix.scr:2.2.4]
at 
org.apache.felix.scr.impl.manager.RegionConfigurationSupport.configurationEvent(RegionConfigurationSupport.java:333)
 [org.apache.felix.scr:2.2.4]
at 
org.apache.felix.scr.impl.manager.RegionConfigurationSupport$2.configurationEvent(RegionConfigurationSupport.java:115)
 [org.apache.felix.scr:2.2.4]
at 
org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.sendEvent(ConfigurationManager.java:1721)
 [org.apache.felix.configadmin:1.9.24]
at 
org.apache.felix.cm.impl.ConfigurationManager$FireConfigurationEvent.run(ConfigurationManager.java:1662)
 [org.apache.felix.configadmin:1.9.24]
at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:122) 
[org.apache.felix.configadmin:1.9.24]
at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:84) 
[org.apache.felix.configadmin:1.9.24]
at java.base/java.lang.Thread.run(Thread.java:829)
{code}

For debugging purposes the configuration PID is the most crucial bit of 
information and this is missing from this log message.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [PATCH v3 3/3] arm64: dts: qcom: msm8998: set qcom,no-msa-ready-indicator for wifi

2024-05-07 Thread Konrad Dybcio




On 5/6/24 12:39, Marc Gonzalez wrote:

On 29/04/2024 16:07, Marc Gonzalez wrote:


The ath10k driver waits for an "MSA_READY" indicator
to complete initialization. If the indicator is not
received, then the device remains unusable.

cf. ath10k_qmi_driver_event_work()

Several msm8998-based devices are affected by this issue.
Oddly, it seems safe to NOT wait for the indicator, and
proceed immediately when QMI_EVENT_SERVER_ARRIVE.

Jeff Johnson wrote:

   The feedback I received was "it might be ok to change all ath10k qmi
   to skip waiting for msa_ready", and it was pointed out that ath11k
   (and ath12k) do not wait for it.

   However with so many deployed devices, "might be ok" isn't a strong
   argument for changing the default behavior.

cf. also
https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_835_(MSM8998)#WLAN

Signed-off-by: Marc Gonzalez 
---
  arch/arm64/boot/dts/qcom/msm8998.dtsi | 1 +
  1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi 
b/arch/arm64/boot/dts/qcom/msm8998.dtsi
index 67b8374ddf02f..4e6245095adfc 100644
--- a/arch/arm64/boot/dts/qcom/msm8998.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi
@@ -3234,6 +3234,7 @@ wifi: wifi@1880 {
iommus = <_smmu 0x1900>,
 <_smmu 0x1901>;
qcom,snoc-host-cap-8bit-quirk;
+   qcom,no-msa-ready-indicator;
};
};
  };



Bjorn,

This patch is supposed to go through your tree, right?


Reviewed-by: Konrad Dybcio 

Konrad



[jira] [Comment Edited] (MPLUGIN-522) The auto prerequisites are way to aggressive

2024-05-07 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/MPLUGIN-522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17844188#comment-17844188
 ] 

Konrad Windszus edited comment on MPLUGIN-522 at 5/7/24 8:18 AM:
-

bq. why it gets "highest class version present on classpath"? Why not compiler 
target instead? ... 

Because in general it is fair to assume that every class being embedded in the 
plugin is supposed to be executed. That requires a Java version capable of 
digesting the class version. Not every class being shipped with the plugin is 
necessarily compiled in the same build.

bq. Similarly, if I have one class that is Java 22, the plugin prerequisite is 
NOT Java 22.

It the class is in the plugin classpath I would assume that this is necessary 
for plugin execution (not necessarily for each mojo). If the class isn't being 
called then it shouldn't be there in the first place...

bq.  if I compile against 3.9.6 Maven APIs, that – due backward compatibility – 
does NOT mean plugin "has a prerequisite of 3.9.6". As we all know, they are 
happily working even with 3.6.3 or even 3.2.x.

What you describe is not backwards-compatibility but forwards-compatibility. 
Each minor Maven version may add new methods/classes to Maven API in a 
backwards-compatible way. Therefore it is fair to assume that the Maven API you 
compile against is the minimally required Maven version.

What you are running into are edge cases which IMHO justify that you override 
the automatically created values (i.e. one class with bytecode for Java22 not 
being executed by the Mojo for some reason, compiling against a newer Maven 
version than you require). I don't want plugins to not state prerequisites at 
all just because plugin developers are too lazy,  because that is very 
frustrating for users not complying with those (unexplicit) prerequisites.


was (Author: kwin):
bq. why it gets "highest class version present on classpath"? Why not compiler 
target instead?

Because in general it is fair to assume that every class being embedded in the 
plugin is supposed to be executed. That requires a Java version capable of 
digesting the class version. Not every class being shipped with the plugin is 
necessarily compiled in the same build.

bq.  if I compile against 3.9.6 Maven APIs, that – due backward compatibility – 
does NOT mean plugin "has a prerequisite of 3.9.6". As we all know, they are 
happily working even with 3.6.3 or even 3.2.x.

What you describe is not backwards-compatibility but forwards-compatibility. 
Each minor Maven version may add new methods/classes to Maven API in a 
backwards-compatible way. Therefore it is fair to assume that the Maven API you 
compile against is the minimally required Maven version.

What you are running into are edge cases which IMHO justify that you override 
the automatically created values (i.e. one class with bytecode for Java22 not 
being executed by the Mojo for some reason, compiling against a newer Maven 
version than you require). I don't want plugins to not state prerequisites at 
all just because plugin developers are too lazy,  because that is very 
frustrating for users not complying with those (unexplicit) prerequisites.

> The auto prerequisites are way to aggressive
> 
>
> Key: MPLUGIN-522
> URL: https://issues.apache.org/jira/browse/MPLUGIN-522
> Project: Maven Plugin Tools
>  Issue Type: Bug
>  Components: Plugin Plugin
>Reporter: Tamas Cservenak
>Priority: Major
>
> IMHO the implementation done in MPLUGIN-425 and MPLUGIN-424 are wrong.
> They are way too aggresive and violate backward compatibility: if new feature 
> is not explicitly set by user, code should not "come up" with some automatic 
> value. By having the value not set simply means user does not want to use it.
> This is especially true for (maven or java) prerequisite, as it creates HARD 
> BREAKAGE if not met. Use of prerequisite is opt-in, but now it is FORCED onto 
> user.
> [~kwin] 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (MPLUGIN-522) The auto prerequisites are way to aggressive

2024-05-07 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/MPLUGIN-522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17844188#comment-17844188
 ] 

Konrad Windszus edited comment on MPLUGIN-522 at 5/7/24 8:10 AM:
-

bq. why it gets "highest class version present on classpath"? Why not compiler 
target instead?

Because in general it is fair to assume that every class being embedded in the 
plugin is supposed to be executed. That requires a Java version capable of 
digesting the class version. Not every class being shipped with the plugin is 
necessarily compiled in the same build.

bq.  if I compile against 3.9.6 Maven APIs, that – due backward compatibility – 
does NOT mean plugin "has a prerequisite of 3.9.6". As we all know, they are 
happily working even with 3.6.3 or even 3.2.x.

What you describe is not backwards-compatibility but forwards-compatibility. 
Each minor Maven version may add new methods/classes to Maven API in a 
backwards-compatible way. Therefore it is fair to assume that the Maven API you 
compile against is the minimally required Maven version.

What you are running into are edge cases which IMHO justify that you override 
the automatically created values (i.e. one class with bytecode for Java22 not 
being executed by the Mojo for some reason, compiling against a newer Maven 
version than you require). I don't want plugins to not state prerequisites at 
all just because plugin developers are too lazy,  because that is very 
frustrating for users not complying with those (unexplicit) prerequisites.


was (Author: kwin):
bq. why it gets "highest class version present on classpath"? Why not compiler 
target instead?

Because in general it is fair to assume that every class being embedded in the 
plugin is supposed to be executed. That requires a Java version capable of 
digesting the class version. Not every class being shipped with the plugin is 
necessarily compiled in the same build.

bq.  if I compile against 3.9.6 Maven APIs, that – due backward compatibility – 
does NOT mean plugin "has a prerequisite of 3.9.6". As we all know, they are 
happily working even with 3.6.3 or even 3.2.x.

What you describe is not backwards-compatibility but forwards-compatibility. 
Each minor Maven version may add new methods/classes to Maven API in a 
backwards-compatible way. Therefore it is fair to assume that the Maven API you 
compile against is the minimally required Maven version.

What you are running into are edge cases which IMHO justify that you override 
the automatically created values (i.e. one class with bytecode for Java22 not 
being executed by the Mojo for some reason, compiling against a newer Maven 
version than you require). I don't want plugins to not state prerequisites at 
all just because plugin developers are too lazy.

> The auto prerequisites are way to aggressive
> 
>
> Key: MPLUGIN-522
> URL: https://issues.apache.org/jira/browse/MPLUGIN-522
> Project: Maven Plugin Tools
>  Issue Type: Bug
>  Components: Plugin Plugin
>Reporter: Tamas Cservenak
>Priority: Major
>
> IMHO the implementation done in MPLUGIN-425 and MPLUGIN-424 are wrong.
> They are way too aggresive and violate backward compatibility: if new feature 
> is not explicitly set by user, code should not "come up" with some automatic 
> value. By having the value not set simply means user does not want to use it.
> This is especially true for (maven or java) prerequisite, as it creates HARD 
> BREAKAGE if not met. Use of prerequisite is opt-in, but now it is FORCED onto 
> user.
> [~kwin] 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MPLUGIN-522) The auto prerequisites are way to aggressive

2024-05-07 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/MPLUGIN-522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17844188#comment-17844188
 ] 

Konrad Windszus commented on MPLUGIN-522:
-

> why it gets "highest class version present on classpath"? Why not compiler 
> target instead?

Because in general it is fair to assume that every class being embedded in the 
plugin is supposed to be executed. That requires a Java version capable of 
digesting the class version. Not every class being shipped with the plugin is 
necessarily compiled in the same build.

>  if I compile against 3.9.6 Maven APIs, that – due backward compatibility – 
> does NOT mean plugin "has a prerequisite of 3.9.6". As we all know, they are 
> happily working even with 3.6.3 or even 3.2.x.

What you describe is not backwards-compatibility but forwards-compatibility. 
Each minor Maven version may add new methods/classes to Maven API in a 
backwards-compatible way. Therefore it is fair to assume that the Maven API you 
compile against is the minimally required Maven version.

What you are running into are edge cases which IMHO justify that you override 
the automatically created values (i.e. one class with bytecode for Java22 not 
being executed by the Mojo for some reason, compiling against a newer Maven 
version than you require). I don't want plugins to not state prerequisites at 
all just because plugin developers are too lazy.

> The auto prerequisites are way to aggressive
> 
>
> Key: MPLUGIN-522
> URL: https://issues.apache.org/jira/browse/MPLUGIN-522
> Project: Maven Plugin Tools
>  Issue Type: Bug
>  Components: Plugin Plugin
>Reporter: Tamas Cservenak
>Priority: Major
>
> IMHO the implementation done in MPLUGIN-425 and MPLUGIN-424 are wrong.
> They are way too aggresive and violate backward compatibility: if new feature 
> is not explicitly set by user, code should not "come up" with some automatic 
> value. By having the value not set simply means user does not want to use it.
> This is especially true for (maven or java) prerequisite, as it creates HARD 
> BREAKAGE if not met. Use of prerequisite is opt-in, but now it is FORCED onto 
> user.
> [~kwin] 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (MPLUGIN-522) The auto prerequisites are way to aggressive

2024-05-07 Thread Konrad Windszus (Jira)


[ 
https://issues.apache.org/jira/browse/MPLUGIN-522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17844188#comment-17844188
 ] 

Konrad Windszus edited comment on MPLUGIN-522 at 5/7/24 8:08 AM:
-

bq. why it gets "highest class version present on classpath"? Why not compiler 
target instead?

Because in general it is fair to assume that every class being embedded in the 
plugin is supposed to be executed. That requires a Java version capable of 
digesting the class version. Not every class being shipped with the plugin is 
necessarily compiled in the same build.

bq.  if I compile against 3.9.6 Maven APIs, that – due backward compatibility – 
does NOT mean plugin "has a prerequisite of 3.9.6". As we all know, they are 
happily working even with 3.6.3 or even 3.2.x.

What you describe is not backwards-compatibility but forwards-compatibility. 
Each minor Maven version may add new methods/classes to Maven API in a 
backwards-compatible way. Therefore it is fair to assume that the Maven API you 
compile against is the minimally required Maven version.

What you are running into are edge cases which IMHO justify that you override 
the automatically created values (i.e. one class with bytecode for Java22 not 
being executed by the Mojo for some reason, compiling against a newer Maven 
version than you require). I don't want plugins to not state prerequisites at 
all just because plugin developers are too lazy.


was (Author: kwin):
> why it gets "highest class version present on classpath"? Why not compiler 
> target instead?

Because in general it is fair to assume that every class being embedded in the 
plugin is supposed to be executed. That requires a Java version capable of 
digesting the class version. Not every class being shipped with the plugin is 
necessarily compiled in the same build.

>  if I compile against 3.9.6 Maven APIs, that – due backward compatibility – 
> does NOT mean plugin "has a prerequisite of 3.9.6". As we all know, they are 
> happily working even with 3.6.3 or even 3.2.x.

What you describe is not backwards-compatibility but forwards-compatibility. 
Each minor Maven version may add new methods/classes to Maven API in a 
backwards-compatible way. Therefore it is fair to assume that the Maven API you 
compile against is the minimally required Maven version.

What you are running into are edge cases which IMHO justify that you override 
the automatically created values (i.e. one class with bytecode for Java22 not 
being executed by the Mojo for some reason, compiling against a newer Maven 
version than you require). I don't want plugins to not state prerequisites at 
all just because plugin developers are too lazy.

> The auto prerequisites are way to aggressive
> 
>
> Key: MPLUGIN-522
> URL: https://issues.apache.org/jira/browse/MPLUGIN-522
> Project: Maven Plugin Tools
>  Issue Type: Bug
>  Components: Plugin Plugin
>Reporter: Tamas Cservenak
>Priority: Major
>
> IMHO the implementation done in MPLUGIN-425 and MPLUGIN-424 are wrong.
> They are way too aggresive and violate backward compatibility: if new feature 
> is not explicitly set by user, code should not "come up" with some automatic 
> value. By having the value not set simply means user does not want to use it.
> This is especially true for (maven or java) prerequisite, as it creates HARD 
> BREAKAGE if not met. Use of prerequisite is opt-in, but now it is FORCED onto 
> user.
> [~kwin] 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: Zusäutzliche Festplatte dauerhaft einbinden + Speed-Test

2024-05-06 Thread Konrad Rosenbaum


On 06/05/2024 13:44, Gerd G wrote:

Man kann natürlich auch einfach mal was mit "dd" auf den Datenträger schreiben 
und sich dabei die Zeit und Datenmenge
ansehen.

Bei den Tools ist Vorsicht geboten, sie sind mit root Rechten nutzbar und man 
kann bei falsche Nutzung dabei auch Dinge
kaputt machen.


Vorsichtshalber: man kann sich nicht nur was dabei kaputtmachen - ich 
habe mir auch schonmal die Daten auf einer ANDEREN Platte geschrottet, 
indem ich nicht aufgepasst habe. Also ganz genau schauen was man 
eintippt und mindestens 3x lesen, sicherstellen dass man das richtige 
Device angegeben hat und mit Man-Page vergleichen bevor man Enter drückt!



    Konrad



OpenPGP_0xBE96A6EE776FE5D0.asc
Description: OpenPGP public key


OpenPGP_signature.asc
Description: OpenPGP digital signature


Re: [VOTE] Release Maven Site Plugin version 4.0.0-M14

2024-05-06 Thread Konrad Windszus
Hi,
There was a longer discussion in 
https://www.mail-archive.com/dev@maven.apache.org/msg132078.html (for some 
reason cannot find the thread in 
https://lists.apache.org/list.html?dev@maven.apache.org) and we kind of came to 
an agreement to reserve plugin major version 4 for plugins leveraging Maven 4 
API.
So should we rename this to m-site-p 3.13.x?
This requires adaptation in the source code with regards to the since javadoc 
tag.
WDYT?
Konrad

> On 5. May 2024, at 21:29, Michael Osipov  wrote:
> 
> Hi,
> 
> we solved 4 issues:
> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317923=12354123
> 
> There are still a couple of issues left in JIRA:
> https://issues.apache.org/jira/issues/?jql=project%20%3D%20MSITE%20AND%20resolution%20%3D%20Unresolved
> 
> Staging repo:
> https://repository.apache.org/content/repositories/maven-2109/
> https://repository.apache.org/content/repositories/maven-2109/org/apache/maven/plugins/maven-site-plugin/4.0.0-M14/maven-site-plugin-4.0.0-M14-source-release.zip
> 
> Source release checksum(s):
> maven-site-plugin-4.0.0-M14-source-release.zip
> sha512: 
> cf9b896e1bc10b0bb81ded66f343e478da4da21300d10ac586ac08a8640bc7c11f25ff49d8f443c12e98011608c5d2db308d9b0b7ec1d9378d84616712b5b660
> 
> Staging site:
> https://maven.apache.org/plugins-archives/maven-site-plugin-LATEST/
> 
> Guide to testing staged releases:
> https://maven.apache.org/guides/development/guide-testing-releases.html
> 
> Vote open for 72 hours.
> 
> [ ] +1
> [ ] +0
> [ ] -1
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
> 



[jira] [Updated] (JCR-5051) ISO9075.encodePath/encode should preserve wildcard

2024-05-05 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/JCR-5051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated JCR-5051:
-
Description: 
Currently the wildcard {{"*"}} is escaped as well to {{"_x002a_"}}.
This is not intended as in the context of XPath the wildcard is an allowed 
character in the grammar 
(https://www.w3.org/TR/xpath20/#prod-xpath-ElementNameOrWildcard).
Not sure if ISO9075 is used for other purposes so it might be better to 
explicitly add another method to keep the wildcard in place. 

  was:
Currently the wildcard {{"*"}} is escaped as well to {{"_x002a_"}}.
This is not intended as in the context of XPath the wildcard is an allowed 
character in the grammar 
(https://www.w3.org/TR/xpath20/#prod-xpath-ElementNameOrWildcard).
Not sure if ISO9075 is used for other purposes so it might be better to 
explicitly add another method to keep the wildcard in place.


> ISO9075.encodePath/encode should preserve wildcard
> --
>
> Key: JCR-5051
> URL: https://issues.apache.org/jira/browse/JCR-5051
> Project: Jackrabbit Content Repository
>  Issue Type: New Feature
>  Components: jackrabbit-jcr-commons
>Reporter: Konrad Windszus
>Priority: Major
>
> Currently the wildcard {{"*"}} is escaped as well to {{"_x002a_"}}.
> This is not intended as in the context of XPath the wildcard is an allowed 
> character in the grammar 
> (https://www.w3.org/TR/xpath20/#prod-xpath-ElementNameOrWildcard).
> Not sure if ISO9075 is used for other purposes so it might be better to 
> explicitly add another method to keep the wildcard in place. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (JCR-5051) ISO9075.encodePath/encode should preserve wildcard

2024-05-05 Thread Konrad Windszus (Jira)


 [ 
https://issues.apache.org/jira/browse/JCR-5051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konrad Windszus updated JCR-5051:
-
Description: 
Currently the wildcard {{"*"}} is escaped as well to {{"_x002a_"}}.
This is not intended as in the context of XPath the wildcard is an allowed 
character in the grammar 
(https://www.w3.org/TR/xpath20/#prod-xpath-ElementNameOrWildcard).
Not sure if ISO9075 is used for other purposes so it might be better to 
explicitly add another method to keep the wildcard in place.

  was:
Currently the wildcard {{*}} is escaped as well to {{_x002a_}}.
This is not intended as in the context of XPath the wildcard is an allowed 
character in the grammar 
(https://www.w3.org/TR/xpath20/#prod-xpath-ElementNameOrWildcard).
Not sure if ISO9075 is used for other purposes so it might be better to 
explicitly add another method to keep the wildcard in place.


> ISO9075.encodePath/encode should preserve wildcard
> --
>
> Key: JCR-5051
> URL: https://issues.apache.org/jira/browse/JCR-5051
> Project: Jackrabbit Content Repository
>  Issue Type: New Feature
>  Components: jackrabbit-jcr-commons
>Reporter: Konrad Windszus
>Priority: Major
>
> Currently the wildcard {{"*"}} is escaped as well to {{"_x002a_"}}.
> This is not intended as in the context of XPath the wildcard is an allowed 
> character in the grammar 
> (https://www.w3.org/TR/xpath20/#prod-xpath-ElementNameOrWildcard).
> Not sure if ISO9075 is used for other purposes so it might be better to 
> explicitly add another method to keep the wildcard in place.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (JCR-5051) ISO9075.encodePath/encode should preserve wildcard

2024-05-05 Thread Konrad Windszus (Jira)
Konrad Windszus created JCR-5051:


 Summary: ISO9075.encodePath/encode should preserve wildcard
 Key: JCR-5051
 URL: https://issues.apache.org/jira/browse/JCR-5051
 Project: Jackrabbit Content Repository
  Issue Type: New Feature
  Components: jackrabbit-jcr-commons
Reporter: Konrad Windszus


Currently the wildcard {{*}} is escaped as well to {{_x002a_}}.
This is not intended as in the context of XPath the wildcard is an allowed 
character in the grammar 
(https://www.w3.org/TR/xpath20/#prod-xpath-ElementNameOrWildcard).
Not sure if ISO9075 is used for other purposes so it might be better to 
explicitly add another method to keep the wildcard in place.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[plasmashell] [Bug 485456] With Qt 6.7, System Tray popup is inappropriately resized to a tiny nub

2024-05-03 Thread Konrad Materka
https://bugs.kde.org/show_bug.cgi?id=485456

Konrad Materka  changed:

   What|Removed |Added

 CC||k...@rad1an.aleeas.com

--- Comment #24 from Konrad Materka  ---
*** Bug 486476 has been marked as a duplicate of this bug. ***

-- 
You are receiving this mail because:
You are watching all bug changes.

  1   2   3   4   5   6   7   8   9   10   >