Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
fa20fd0
VFIO: Add the SPR_DSA and SPR_IAX devices to the denylist
fenrus75 Mar 21, 2024
8da3a84
dmaengine: idxd: add a new security check to deal with a hardware err…
fenrus75 Apr 24, 2024
21a8f1c
dmaengine: idxd: add a write() method for applications to submit work
nikhilprao Apr 24, 2024
cc219cb
keys: Fix overwrite of key expiration on instantiation
Mar 15, 2024
ddb0273
wifi: mt76: mt7915: add missing chanctx ops
greearb Mar 27, 2024
b019fcc
Linux 6.9.1
gregkh May 17, 2024
a8c1ad2
ZEN: Add sysctl and CONFIG to disallow unprivileged CLONE_NEWUSER
heftig Sep 16, 2019
373866d
drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is set
martinezjavier May 19, 2022
2cd747d
arch/Kconfig: Default to maximum amount of ASLR bits
heftig Jan 13, 2024
308d531
docs: kernel_include.py: Fix build with docutils 0.21.1
heftig Apr 13, 2024
85c0510
amdgpu: enable overdrive by default
BoukeHaarsma23 Dec 12, 2023
9c38019
drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model
Samsagax Jun 21, 2023
696dcc5
drm: panel-orientation-quirks: Add quirk for AYA NEO Founder edition
Samsagax Jun 21, 2023
10eb4cd
drm: panel-orientation-quirks: Add quirk for AYA NEO GEEK
Samsagax Jun 21, 2023
cede4d0
drm: panel-orientation-quirks: Add quirk for Ayn Loki Zero
BoukeHaarsma23 Oct 7, 2023
9c5cb4f
drm: panel-orientation-quirks: Add quirk for Ayn Loki Max
BoukeHaarsma23 Oct 7, 2023
6127393
Ayaneo geek headset patch
BoukeHaarsma23 Sep 22, 2023
b62b72b
ayaneo 2 headphone fix
BoukeHaarsma23 Sep 22, 2023
07bce11
HID: asus: fix more n-key report descriptors if n-key quirked
flukejones Dec 2, 2023
309a530
HID: asus: make asus_kbd_init() generic, remove rog_nkey_led_init()
flukejones Dec 2, 2023
b0de133
HID: asus: add ROG Ally N-Key ID and keycodes
flukejones Nov 29, 2023
9ea9f9f
HID: asus: add ROG Ally xpad settings
flukejones Dec 1, 2023
7a07635
HACK: add KConfig to enable driver-specific color mgmt props
melissawen Apr 22, 2023
4f6589f
Don't create color_mgmt_properties on asics < SIENNA_CICHLID
BoukeHaarsma23 Dec 15, 2023
025468c
drm: Add GPU reset sysfs event
contactshashanksharma Mar 7, 2022
8be4d27
drm/amdgpu: add work function for GPU reset event
contactshashanksharma Mar 7, 2022
5a3e3c7
drm/amdgpu: schedule GPU reset event work function
Mar 10, 2022
a167209
oxp-sensors: hwmon: Add OrangePi Neo PWM fan control
pastaq Mar 28, 2024
43dea56
oxp-sensors: hwmon: Add OneXPlayer 2 and OneXFly
pastaq Mar 28, 2024
969c7fb
oxp-sensors: hwmon: Add support for AYANEO 2s, air 1s, geek 1s and ku…
pastaq Mar 28, 2024
e3e37b1
oxp-sensors: hwmon: Add GPD Win Mini
pastaq Mar 28, 2024
1bb0ad7
platform/x86: asus-wmi: add support for 2024 ROG Mini-LED
flukejones Mar 10, 2024
28397ba
platform/x86: asus-wmi: add support for Vivobook GPU MUX
flukejones Mar 10, 2024
e7e60c1
platform/x86: asus-wmi: add support variant of TUF RGB
flukejones Mar 10, 2024
63c4469
platform/x86: asus-wmi: support toggling POST sound
flukejones Mar 10, 2024
6d94319
platform/x86: asus-wmi: store a min default for ppt options
flukejones Mar 10, 2024
0e04ad9
platform/x86: asus-wmi: adjust formatting of ppt-<name>() functions
flukejones Mar 25, 2024
c2b41eb
platform/x86: asus-wmi: ROG Ally increase wait time, allow MCU powersave
flukejones Mar 24, 2024
b531f33
platform/x86: asus-wmi: Add support for MCU powersave
flukejones Mar 25, 2024
660b637
platform/x86: asus-wmi: cleanup main struct to avoid some holes
flukejones Mar 25, 2024
c10b77f
bump the sensitivity of AMD SFH
antheas Mar 3, 2024
d1c9df0
IIO: add aya neo tablet identifier
BoukeHaarsma23 Apr 10, 2024
9cfd358
iio: imu: Add driver for Bosch BMI260 IMU
justinweiss Feb 14, 2024
cf880cc
Codec: Add aw87xxx codec with partial acpi implementation
ruineka Apr 25, 2024
a08def2
drm/nouveau: use tile_mode and pte_kind for VM_BIND bo allocations
mohamexiety Apr 30, 2024
fc783d2
Updated AW87xxx driver to be more verbose for debugging purposes, but…
CVMagic May 16, 2024
5d79930
linux-chimeraos v6.9.1-chos1
BoukeHaarsma23 May 19, 2024
9a7a467
Revert "drm/nouveau: use tile_mode and pte_kind for VM_BIND bo alloca…
BoukeHaarsma23 May 19, 2024
35b6190
drm/nouveau: use tile_mode and pte_kind for VM_BIND bo allocations
mohamexiety May 9, 2024
24cdf77
linux-chimeraos v6.9.1-chos2
BoukeHaarsma23 May 19, 2024
6c957c3
Updated AW87xxx driver to automatically enumerate a second I2C chip i…
CVMagic May 19, 2024
be9b1cb
linux-chimeraos v6.9.1-chos3
BoukeHaarsma23 May 19, 2024
123ddfc
Updated AW87xxx driver to implement Suspend and Resume.
CVMagic May 22, 2024
ea1a76a
Added Realtek HDA patch for AYN Loki MiniPro
CVMagic May 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions Documentation/ABI/testing/sysfs-driver-hid-asus
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/gamepad_mode
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Set the mode the ROG Ally xpad operates in:
- 1 = Game mode
- 2 = WASD mode
- 3 = Mouse mode
This setting applies instantly and applies settings that were previously changed
under that mode which are:
- deadzones
- anti-deadzones
- button mapping
- button turbo settings
- response curves

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/apply
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Apply the settings that have been stored in attributes so far. Because there are
many individual settings across a dozen packets this separation is required to
prevent spamming the MCU when userspace applications apply many changes at once.

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/reset_btn_mapping
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Reset a gamepad mode to its default button mapping.

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/axis_<x/y/z>_<left/right>/deadzone
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Set the inner and outer deadzones of joysticks and triggers. These settings are not
written to the MCU until `apply` is set.
- range 0-64 (corresponds to 0-100%)

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/axis_<x/y/z>_<left/right>/deadzone_index
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Descriptive labels for joystick deadzone array.

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/axis_<x/y>_<left/right>/anti-deadzone
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Set the joystick anti-deadzone feature:
- range 0-32 (corresponds to 0-50%)

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/axis_<x/y/z>_<left/right>/calibration
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Calibration values for the joysticks and trigger analogues. There are no default
values as the calibration is determined in userspace.

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/axis_<x/y/z>_<left/right>/calibration_index
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Descriptive labels for joystick and triggers calibration array.

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/axis_<x/y>_<left/right>/rc_point<n>
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Set the joystick response curve. There are 4 points available with 1 being the lowest
point and 4 being the highest point.
- range 0-64 (corresponds to 0-100%)

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/axis_<x/y>_<left/right>/rc_point_index
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Descriptive labels for joystick response curve points.

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/btn_<label>/turbo
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Set the turbo mode of the button:
- 0 = no turbo, a separate press and release is registered on press and release
- 1-16 = interval between presses if button held down in steps of 1000ms/16
These settings are not written to the MCU until `apply` is set.

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/vibration_intensity
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Set the vibration intensity for left and right haptics. Applies instantly.

What: /sys/bus/usb/devices/1-3:1.0/0003:0B05:1ABE.0001/vibration_intensity_index
Date: December 2023
Contact: linux-input@vger.kernel.org
Description: Descriptive labels for index points of vibration_intensity.
26 changes: 26 additions & 0 deletions Documentation/ABI/testing/sysfs-platform-asus-wmi
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,14 @@ Description:
Change the mini-LED mode:
* 0 - Single-zone,
* 1 - Multi-zone
* 2 - Multi-zone strong (available on newer generation mini-led)

What: /sys/devices/platform/<platform>/available_mini_led_mode
Date: Jun 2023
KernelVersion: 6.10
Contact: "Luke Jones" <luke@ljones.dev>
Description:
List the available mini-led modes.

What: /sys/devices/platform/<platform>/ppt_pl1_spl
Date: Jun 2023
Expand Down Expand Up @@ -186,3 +194,21 @@ Contact: "Luke Jones" <luke@ljones.dev>
Description:
Set the target temperature limit of the Nvidia dGPU:
* min=75, max=87

What: /sys/devices/platform/<platform>/boot_sound
Date: Jun 2023
KernelVersion: 6.10
Contact: "Luke Jones" <luke@ljones.dev>
Description:
Set if the BIOS POST sound is played on boot.
* 0 - False,
* 1 - True

What: /sys/devices/platform/<platform>/mcu_powersave
Date: Mar 2023
KernelVersion: 6.10
Contact: "Luke Jones" <luke@ljones.dev>
Description:
Set if the MCU can go in to low-power mode on system sleep
* 0 - False,
* 1 - True
2 changes: 1 addition & 1 deletion Documentation/sphinx/kernel_include.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def _run(self):
# HINT: this is the only line I had to change / commented out:
#path = utils.relative_path(None, path)

path = nodes.reprunicode(path)
path = str(path)
encoding = self.options.get(
'encoding', self.state.document.settings.input_encoding)
e_handler=self.state.document.settings.input_encoding_error_handler
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 6
PATCHLEVEL = 9
SUBLEVEL = 0
EXTRAVERSION =
SUBLEVEL = 1
EXTRAVERSION = -chos3
NAME = Hurr durr I'ma ninja sloth

# *DOCUMENTATION*
Expand Down
4 changes: 2 additions & 2 deletions arch/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1033,7 +1033,7 @@ config ARCH_MMAP_RND_BITS
int "Number of bits to use for ASLR of mmap base address" if EXPERT
range ARCH_MMAP_RND_BITS_MIN ARCH_MMAP_RND_BITS_MAX
default ARCH_MMAP_RND_BITS_DEFAULT if ARCH_MMAP_RND_BITS_DEFAULT
default ARCH_MMAP_RND_BITS_MIN
default ARCH_MMAP_RND_BITS_MAX
depends on HAVE_ARCH_MMAP_RND_BITS
help
This value can be used to select the number of bits to use to
Expand Down Expand Up @@ -1067,7 +1067,7 @@ config ARCH_MMAP_RND_COMPAT_BITS
int "Number of bits to use for ASLR of mmap base address for compatible applications" if EXPERT
range ARCH_MMAP_RND_COMPAT_BITS_MIN ARCH_MMAP_RND_COMPAT_BITS_MAX
default ARCH_MMAP_RND_COMPAT_BITS_DEFAULT if ARCH_MMAP_RND_COMPAT_BITS_DEFAULT
default ARCH_MMAP_RND_COMPAT_BITS_MIN
default ARCH_MMAP_RND_COMPAT_BITS_MAX
depends on HAVE_ARCH_MMAP_RND_COMPAT_BITS
help
This value can be used to select the number of bits to use to
Expand Down
77 changes: 77 additions & 0 deletions drivers/dma/idxd/cdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,18 @@ static int idxd_cdev_mmap(struct file *filp, struct vm_area_struct *vma)
int rc;

dev_dbg(&pdev->dev, "%s called\n", __func__);

/*
* Due to an erratum in some of the devices supported by the driver,
* direct user submission to the device can be unsafe.
* (See the INTEL-SA-01084 security advisory)
*
* For the devices that exhibit this behavior, require that the user
* has CAP_SYS_RAWIO capabilities.
*/
if (!idxd->user_submission_safe && !capable(CAP_SYS_RAWIO))
return -EPERM;

rc = check_vma(wq, vma, __func__);
if (rc < 0)
return rc;
Expand All @@ -414,6 +426,70 @@ static int idxd_cdev_mmap(struct file *filp, struct vm_area_struct *vma)
vma->vm_page_prot);
}

static int idxd_submit_user_descriptor(struct idxd_user_context *ctx,
struct dsa_hw_desc __user *udesc)
{
struct idxd_wq *wq = ctx->wq;
struct idxd_dev *idxd_dev = &wq->idxd->idxd_dev;
const uint64_t comp_addr_align = is_dsa_dev(idxd_dev) ? 0x20 : 0x40;
void __iomem *portal = idxd_wq_portal_addr(wq);
struct dsa_hw_desc descriptor __aligned(64);
int rc;

rc = copy_from_user(&descriptor, udesc, sizeof(descriptor));
if (rc)
return -EFAULT;

/*
* DSA devices are capable of indirect ("batch") command submission.
* On devices where direct user submissions are not safe, we cannot
* allow this since there is no good way for us to verify these
* indirect commands.
*/
if (is_dsa_dev(idxd_dev) && descriptor.opcode == DSA_OPCODE_BATCH &&
!wq->idxd->user_submission_safe)
return -EINVAL;
/*
* As per the programming specification, the completion address must be
* aligned to 32 or 64 bytes. If this is violated the hardware
* engine can get very confused (security issue).
*/
if (!IS_ALIGNED(descriptor.completion_addr, comp_addr_align))
return -EINVAL;

if (wq_dedicated(wq))
iosubmit_cmds512(portal, &descriptor, 1);
else {
descriptor.priv = 0;
descriptor.pasid = ctx->pasid;
rc = idxd_enqcmds(wq, portal, &descriptor);
if (rc < 0)
return rc;
}

return 0;
}

static ssize_t idxd_cdev_write(struct file *filp, const char __user *buf, size_t len,
loff_t *unused)
{
struct dsa_hw_desc __user *udesc = (struct dsa_hw_desc __user *)buf;
struct idxd_user_context *ctx = filp->private_data;
ssize_t written = 0;
int i;

for (i = 0; i < len/sizeof(struct dsa_hw_desc); i++) {
int rc = idxd_submit_user_descriptor(ctx, udesc + i);

if (rc)
return written ? written : rc;

written += sizeof(struct dsa_hw_desc);
}

return written;
}

static __poll_t idxd_cdev_poll(struct file *filp,
struct poll_table_struct *wait)
{
Expand All @@ -436,6 +512,7 @@ static const struct file_operations idxd_cdev_fops = {
.open = idxd_cdev_open,
.release = idxd_cdev_release,
.mmap = idxd_cdev_mmap,
.write = idxd_cdev_write,
.poll = idxd_cdev_poll,
};

Expand Down
3 changes: 3 additions & 0 deletions drivers/dma/idxd/idxd.h
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@ struct idxd_driver_data {
int evl_cr_off;
int cr_status_off;
int cr_result_off;
bool user_submission_safe;
load_device_defaults_fn_t load_device_defaults;
};

Expand Down Expand Up @@ -374,6 +375,8 @@ struct idxd_device {

struct dentry *dbgfs_dir;
struct dentry *dbgfs_evl_file;

bool user_submission_safe;
};

static inline unsigned int evl_ent_size(struct idxd_device *idxd)
Expand Down
4 changes: 4 additions & 0 deletions drivers/dma/idxd/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ static struct idxd_driver_data idxd_driver_data[] = {
.align = 32,
.dev_type = &dsa_device_type,
.evl_cr_off = offsetof(struct dsa_evl_entry, cr),
.user_submission_safe = false, /* See INTEL-SA-01084 security advisory */
.cr_status_off = offsetof(struct dsa_completion_record, status),
.cr_result_off = offsetof(struct dsa_completion_record, result),
},
Expand All @@ -57,6 +58,7 @@ static struct idxd_driver_data idxd_driver_data[] = {
.align = 64,
.dev_type = &iax_device_type,
.evl_cr_off = offsetof(struct iax_evl_entry, cr),
.user_submission_safe = false, /* See INTEL-SA-01084 security advisory */
.cr_status_off = offsetof(struct iax_completion_record, status),
.cr_result_off = offsetof(struct iax_completion_record, error_code),
.load_device_defaults = idxd_load_iaa_device_defaults,
Expand Down Expand Up @@ -774,6 +776,8 @@ static int idxd_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
dev_info(&pdev->dev, "Intel(R) Accelerator Device (v%x)\n",
idxd->hw.version);

idxd->user_submission_safe = data->user_submission_safe;

return 0;

err_dev_register:
Expand Down
3 changes: 0 additions & 3 deletions drivers/dma/idxd/registers.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@
#include <uapi/linux/idxd.h>

/* PCI Config */
#define PCI_DEVICE_ID_INTEL_DSA_SPR0 0x0b25
#define PCI_DEVICE_ID_INTEL_IAX_SPR0 0x0cfe

#define DEVICE_VERSION_1 0x100
#define DEVICE_VERSION_2 0x200

Expand Down
27 changes: 25 additions & 2 deletions drivers/dma/idxd/sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1197,12 +1197,35 @@ static ssize_t wq_enqcmds_retries_store(struct device *dev, struct device_attrib
static struct device_attribute dev_attr_wq_enqcmds_retries =
__ATTR(enqcmds_retries, 0644, wq_enqcmds_retries_show, wq_enqcmds_retries_store);

static ssize_t op_cap_show_common(struct device *dev, char *buf, unsigned long *opcap_bmap)
{
ssize_t pos;
int i;

pos = 0;
for (i = IDXD_MAX_OPCAP_BITS/64 - 1; i >= 0; i--) {
unsigned long val = opcap_bmap[i];

/* On systems where direct user submissions are not safe, we need to clear out
* the BATCH capability from the capability mask in sysfs since we cannot support
* that command on such systems.
*/
if (i == DSA_OPCODE_BATCH/64 && !confdev_to_idxd(dev)->user_submission_safe)
clear_bit(DSA_OPCODE_BATCH % 64, &val);

pos += sysfs_emit_at(buf, pos, "%*pb", 64, &val);
pos += sysfs_emit_at(buf, pos, "%c", i == 0 ? '\n' : ',');
}

return pos;
}

static ssize_t wq_op_config_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct idxd_wq *wq = confdev_to_wq(dev);

return sysfs_emit(buf, "%*pb\n", IDXD_MAX_OPCAP_BITS, wq->opcap_bmap);
return op_cap_show_common(dev, buf, wq->opcap_bmap);
}

static int idxd_verify_supported_opcap(struct idxd_device *idxd, unsigned long *opmask)
Expand Down Expand Up @@ -1455,7 +1478,7 @@ static ssize_t op_cap_show(struct device *dev,
{
struct idxd_device *idxd = confdev_to_idxd(dev);

return sysfs_emit(buf, "%*pb\n", IDXD_MAX_OPCAP_BITS, idxd->opcap_bmap);
return op_cap_show_common(dev, buf, idxd->opcap_bmap);
}
static DEVICE_ATTR_RO(op_cap);

Expand Down
18 changes: 17 additions & 1 deletion drivers/firmware/sysfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,22 @@
#include <linux/screen_info.h>
#include <linux/sysfb.h>

static int skip_simpledrm;

static int __init simpledrm_disable(char *opt)
{
if (!opt)
return -EINVAL;

get_option(&opt, &skip_simpledrm);

if (skip_simpledrm)
pr_info("The simpledrm driver will not be probed\n");

return 0;
}
early_param("nvidia-drm.modeset", simpledrm_disable);

static struct platform_device *pd;
static DEFINE_MUTEX(disable_lock);
static bool disabled;
Expand Down Expand Up @@ -134,7 +150,7 @@ static __init int sysfb_init(void)

/* try to create a simple-framebuffer device */
compatible = sysfb_parse_mode(si, &mode);
if (compatible) {
if (compatible && !skip_simpledrm) {
pd = sysfb_create_simplefb(si, &mode, parent);
if (!IS_ERR(pd))
goto unlock_mutex;
Expand Down
Loading