mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 08:20:40 -04:00
Merge tag 'i3c/for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux
Pull i3c updates from Alexandre Belloni:
"This adds support for the I3C HCI controller of the AMD SoC which as
expected requires quirks. Also fixes for the other drivers, including
rate selection fixes for svc.
Core:
- allow adjusting first broadcast address speed
Drivers:
- cdns: few fixes
- mipi-i3c-hci: Add AMD SoC I3C controller support and quirks, fix
get_i3c_mode
- svc: adjust rates, fix race condition"
* tag 'i3c/for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
i3c: master: svc: Fix use after free vulnerability in svc_i3c_master Driver Due to Race Condition
i3c: master: cdns: Fix use after free vulnerability in cdns_i3c_master Driver Due to Race Condition
i3c: master: svc: adjust SDR according to i3c spec
i3c: master: svc: use slow speed for first broadcast address
i3c: master: support to adjust first broadcast address speed
i3c/master: cmd_v1: Fix the rule for getting i3c mode
i3c: master: cdns: fix module autoloading
i3c: mipi-i3c-hci: Add a quirk to set Response buffer threshold
i3c: mipi-i3c-hci: Add a quirk to set timing parameters
i3c: mipi-i3c-hci: Relocate helper macros to HCI header file
i3c: mipi-i3c-hci: Add a quirk to set PIO mode
i3c: mipi-i3c-hci: Read HC_CONTROL_PIO_MODE only after i3c hci v1.1
i3c: mipi-i3c-hci: Add AMDI5017 ACPI ID to the I3C Support List
This commit is contained in:
@@ -277,6 +277,20 @@ enum i3c_bus_mode {
|
||||
I3C_BUS_MODE_MIXED_SLOW,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum i3c_open_drain_speed - I3C open-drain speed
|
||||
* @I3C_OPEN_DRAIN_SLOW_SPEED: Slow open-drain speed for sending the first
|
||||
* broadcast address. The first broadcast address at this speed
|
||||
* will be visible to all devices on the I3C bus. I3C devices
|
||||
* working in I2C mode will turn off their spike filter when
|
||||
* switching into I3C mode.
|
||||
* @I3C_OPEN_DRAIN_NORMAL_SPEED: Normal open-drain speed in I3C bus mode.
|
||||
*/
|
||||
enum i3c_open_drain_speed {
|
||||
I3C_OPEN_DRAIN_SLOW_SPEED,
|
||||
I3C_OPEN_DRAIN_NORMAL_SPEED,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum i3c_addr_slot_status - I3C address slot status
|
||||
* @I3C_ADDR_SLOT_FREE: address is free
|
||||
@@ -436,6 +450,7 @@ struct i3c_bus {
|
||||
* NULL.
|
||||
* @enable_hotjoin: enable hot join event detect.
|
||||
* @disable_hotjoin: disable hot join event detect.
|
||||
* @set_speed: adjust I3C open drain mode timing.
|
||||
*/
|
||||
struct i3c_master_controller_ops {
|
||||
int (*bus_init)(struct i3c_master_controller *master);
|
||||
@@ -464,6 +479,7 @@ struct i3c_master_controller_ops {
|
||||
struct i3c_ibi_slot *slot);
|
||||
int (*enable_hotjoin)(struct i3c_master_controller *master);
|
||||
int (*disable_hotjoin)(struct i3c_master_controller *master);
|
||||
int (*set_speed)(struct i3c_master_controller *master, enum i3c_open_drain_speed speed);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user