lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9221ccef-f1b9-4491-83e2-7116b7523857@ixit.cz>
Date: Thu, 11 Dec 2025 11:41:20 +0100
From: David Heidelberg <david@...t.cz>
To: Arnd Bergmann <arnd@...db.de>, Catalin Marinas <catalin.marinas@....com>,
 Will Deacon <will@...nel.org>, Casey Connolly <casey.connolly@...aro.org>,
 Casey Connolly <casey@...nolly.tech>, Joel Selvaraj <foss@...lselvaraj.com>,
 Alexander Martinz <amartinz@...ftphones.com>,
 Dzmitry Sankouski <dsankouski@...il.com>,
 Pablo Correa Gómez <ablocorrea@...mail.com>
Cc: Guido Günther <agx@...xcpu.org>,
 linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
 phone-devel@...r.kernel.org
Subject: Re: [PATCH QUESTION] arm64: configs: Add Snapdragon 845 config
 fragment

On 03/12/2025 22:35, Arnd Bergmann wrote:
> On Wed, Nov 26, 2025, at 17:19, David Heidelberg via B4 Relay wrote:
>>
>> This patch is a question, if it would be viable to introduce this
>> configuration fragment as part of mainline kernel, so keeping it in sync
>> with recent kernel updates would be more straighforward.
> 
> I don't mind the idea of having additional fragments for specific
> purposes, but as others have said this one does not seem that useful.
> 
> I think it does too many things at once and is still too specific to
> a relatively uncommon usecase. Having an SDM845 specific fragment is
> clearly too narrow, but I can see us adding a fragment for phones
> overall, which would then turn on options for Qualcomm, Mediatek
> and Samsung based phones.

I agree there are too specific things. I sent this as a conversation 
starter more than "a fragment to ship".

Having something like a pure mobile fragment would be awesome.
Bringing up phones is challenging enough, so when people have one more 
pillar to rely on, it'll definitely accelerate work.

I believe it would help many close-to-mainline projects to have a more 
stable base in the kernel instead of every repository playing on own 
small playground.

> 
>> +# Samsung S9 SM-G9600(starqltechn)
>> +CONFIG_SND_SOC_MAX98512=y
>> +CONFIG_SND_SOC_MAXIM_DSM=y
>> +CONFIG_SND_SOC_MAXIM_DSM_CAL=y
>> +CONFIG_DRM_PANEL_SAMSUNG_S6E3HA8=y
>> +CONFIG_TOUCHSCREEN_S6SY761=m
>> +CONFIG_MFD_SEC_CORE=m
>> +CONFIG_REGULATOR_S2DOS05=m
>> +CONFIG_MFD_MAX77705=m
>> +CONFIG_LEDS_MAX77705=m
>> +CONFIG_CHARGER_MAX77705=m
>> +CONFIG_BATTERY_MAX17042=m
>> +CONFIG_INPUT_MAX77693_HAPTIC=m
>> +CONFIG_PWM_CLK=m
>> +
>> +# SHIFT6mq
>> +CONFIG_DRM_PANEL_VISIONOX_RM69299=y
>> +CONFIG_SND_SOC_TFA989X=m
> 
> I think overall we can be fairly liberal with adding
> more loadable modules to the common defconfig, but much
> less so the built-in drivers.
> 
>> +# SOC
>> +CONFIG_FORCE_NR_CPUS=y
>> +CONFIG_NR_CPUS=8
> 
> This would break other devices that have more CPUs, which in turn
> makes it impossible to combine the fragment with other fragments.

Yes, I just used the original data from the fragment, as we know it's 8 
cores, it's safe option. For the final fragment this will go away (if we 
talk about mobile generic fragment).

> 
>> +CONFIG_SCSI_UFS_QCOM=y
>> +CONFIG_QCOM_GSBI=y
>> +CONFIG_QCOM_LLCC=y
>> +CONFIG_QCOM_OCMEM=y
>> +CONFIG_QCOM_RMTFS_MEM=y
>> +CONFIG_QCOM_SOCINFO=y
>> +CONFIG_QCOM_WCNSS_CTRL=y
>> +CONFIG_QCOM_APR=y
>> +CONFIG_POWER_RESET_QCOM_PON=y
>> +CONFIG_QCOM_SPMI_TEMP_ALARM=y
>> +CONFIG_QCOM_LMH=y
>> +CONFIG_SCHED_CLUSTER=y
>> +CONFIG_SND_SOC_QDSP6_Q6VOICE=m
>> +CONFIG_SCSI_UFS_BSG=y
>> +CONFIG_PHY_QCOM_QMP_PCIE=y
>> +CONFIG_BACKLIGHT_CLASS_DEVICE=y
>> +CONFIG_INTERCONNECT_QCOM_OSM_L3=y
> 
> Again, these should mosely be loadable modules.

Probably, some of these workarounds are here because of some issue in 
the kernel, which leads to boot failure.

There will be more of these bug-avoid changes.

We'll test how many of these are necessary.

The question is, if documented, could we push some of these into the 
initial fragments? I assume fixing some of these may take some time.

> 
>> +# Notification LED
>> +# Must be builtin as it won't be automatically modprobed
>> +CONFIG_LEDS_TRIGGER_PATTERN=y
> 
> This sounds like bug that we should fix and not work around.
> 
>> +# Graphics
>> +CONFIG_DRM=y
>> +CONFIG_FB_SIMPLE=y
> 
> I don't want to enable more fbdev drivers. Right now the
> only one we enable is FB_EFI, and we should probably replace
> that with DRM_SIMPLEDRM in order to turn off CONFIG_FB
> entirely.

Useful with debugging, but this can handle Mobian, NixOS Mobile, pmOS by 
their fragments, so that's fine to drop.

> 
>> +# Power management
>> +CONFIG_PM_AUTOSLEEP=y
>> +CONFIG_PM_WAKELOCKS=y
>> +
>> +# MGLRU
>> +CONFIG_LRU_GEN=y
>> +CONFIG_LRU_GEN_ENABLED=y
>> +
>> +# Usage clamping (scale CPU for specific tasks)
>> +CONFIG_UCLAMP_TASK=y
>> +CONFIG_UCLAMP_TASK_GROUP=y
> 
> We can discuss changing the defaults for these in the defconfig,
> but this doesn't seem to belong with the other stuff.

Great :)

> 
>> +# HID/Input
>> +CONFIG_LCD_CLASS_DEVICE=m
> 
> This is not an input option

Thanks, removed.

> 
>> +CONFIG_I2C_HID=y
>> +CONFIG_HID_GENERIC=m
>> +CONFIG_UHID=m
>> +CONFIG_USB_HID=m
>> +CONFIG_INPUT_EVDEV=y
>> +CONFIG_BT_HIDP=m
>> +CONFIG_INPUT_JOYDEV=m
>> +CONFIG_HID_ACCUTOUCH=m
>> +CONFIG_HID_ACRUX=m
>> +CONFIG_HID_ACRUX_FF=y
>> +CONFIG_HID_ALPS=m
>> +CONFIG_HID_APPLEIR=m
> 
> This looks like you are just enabling every single USB HID
> driver, which is probably not something we want in a commonly
> used fragment, though having a well-maintained fragment for
> popular pluggable USB devices may be useful for others as well.

Yeah, this part make sense for distro-specific.

> 
>> +# Qcom stuff
>> +CONFIG_RPMSG_CHAR=y
>> +CONFIG_QCOM_Q6V5_ADSP=m
>> +CONFIG_BT_RFCOMM=m
>> +CONFIG_BT_RFCOMM_TTY=y
>> +CONFIG_BT_BNEP=m
>> +CONFIG_BT_BNEP_MC_FILTER=y
>> +CONFIG_BT_BNEP_PROTO_FILTER=y
>> +CONFIG_BT_HS=y
>> +CONFIG_BT_LE=y
>> +CONFIG_HID_BATTERY_STRENGTH=y
>> +CONFIG_HIDRAW=y
>> +CONFIG_QCOM_COINCELL=m
>> +CONFIG_QCOM_FASTRPC=m
>> +CONFIG_QCOM_SPMI_VADC=y
>> +CONFIG_QCOM_SPMI_ADC5=y
>> +CONFIG_PHY_QCOM_QMP=y
>> +CONFIG_PHY_QCOM_QUSB2=y
>> +CONFIG_PHY_QCOM_QMP_UFS=y
>> +CONFIG_TYPEC=y
>> +CONFIG_PHY_QCOM_QMP_COMBO=y
>> +CONFIG_LEDS_CLASS_FLASH=y
>> +CONFIG_TCP_CONG_ADVANCED=y
>> +CONFIG_TCP_CONG_WESTWOOD=y
>> +CONFIG_DEFAULT_WESTWOOD=y
>> +CONFIG_BLK_DEV_RAM=y
>> +CONFIG_BLK_DEV_RAM_SIZE=8192
>> +CONFIG_BTRFS_FS=y
>> +CONFIG_BTRFS_FS_POSIX_ACL=y
>> +CONFIG_F2FS_FS=y
> 
> Most of these don't look like "Qcom stuff" to me. In particular
> BTRFS is probably not something you'd even want to enable on
> a phone, though that could be part of a generic distro config
> that we have discussed several times in the past.

Yeah, pmOS specific changes will be dropped.

> 
>> +# WLAN debugging
>> +CONFIG_ATH10K_DEBUG=y
>> +CONFIG_ATH10K_DEBUGFS=y
>> +CONFIG_ATH10K_SPECTRAL=y
> 
> This particular one seem arbitrary, but having a "debugging"
> fragment is something others may find helpful as well. The
> hard part there is figuring out which debug options are the
> most helpful for the least overhead, as everyone is debugging
> different bugs.

I was thinking having "fragment pack" for "early bringup-er", something 
like common things you need to verify, when you setting up
  - regulators
  - clocks
  - serial
  - framebuffer

When people are new to the kernel development and still don't know all, 
I think this may accelerate their progress.


> 
>> +# Disable all unrelated stuffs afaik
>> +CONFIG_ARCH_BLAIZE=n
>> +CONFIG_ARCH_SPARX5=n
>> +CONFIG_HIBERNATION=n
>> +CONFIG_FW_LOADER_USER_HELPER=n
>> +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=n
>> +CONFIG_BLK_DEV_NVME=n
> 
> It feels wrong to turn things off in the same fragment
> that turns other things on.

Here, would it make sense to do 3-4 categories, dropping things which 
CANNOT in general setups on devices such as:

  - servers (phone battery, vibrator, etc.)
  - desktops and laptops (embedded drivers, etc.)
  - mobile, e.g., phone and tablets (RAID array on PCIe, network routing 
chip, etc.)
  - basic embedded and routers

If we go by the Pareto principle (~ 80/20) with low effort and easy 
maintenance, we could manage smaller, more efficient images. 
Distributions (or people) who don't want to risk any inconvenience or 
have an obscure setup will just not use the fragments.

What do you think?

If there is a consensus on some parts, I'll prepare some basic small series.

David

P.S. Sorry for the late reply, Thunderbird decided to encrypt my Draft, 
but somehow forgot how to decrypt it...

> 
>        Arnd

-- 
David Heidelberg


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ