|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3 |
|
| #
e794dc30 |
| 13-Feb-2025 |
Andy Shevchenko <[email protected]> |
i2c: Introduce i2c_10bit_addr_*_from_msg() helpers
There are already a lot of drivers that have been using i2c_8bit_addr_from_msg() for 7-bit addresses, now it's time to have the similar for 10-bit
i2c: Introduce i2c_10bit_addr_*_from_msg() helpers
There are already a lot of drivers that have been using i2c_8bit_addr_from_msg() for 7-bit addresses, now it's time to have the similar for 10-bit addresses.
Signed-off-by: Andy Shevchenko <[email protected]> Reviewed-by: AngeloGioacchino Del Regno <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Andi Shyti <[email protected]>
show more ...
|
| #
fbc54ae4 |
| 13-Feb-2025 |
Andy Shevchenko <[email protected]> |
i2c: Unexport i2c_of_match_device()
i2c_of_match_device() is not used anymore outside of I²C framework, unexport it.
Signed-off-by: Andy Shevchenko <[email protected]> Reviewed-by:
i2c: Unexport i2c_of_match_device()
i2c_of_match_device() is not used anymore outside of I²C framework, unexport it.
Signed-off-by: Andy Shevchenko <[email protected]> Reviewed-by: Vladimir Zapolskiy <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc2 |
|
| #
3bfa08fe |
| 05-Feb-2025 |
Wolfram Sang <[email protected]> |
Revert "i2c: Replace list-based mechanism for handling auto-detected clients"
This reverts commit 56a50667cbcfaf95eea9128d5676af94e54b51a8. Mux handling is not sufficiently implemented. It needs mor
Revert "i2c: Replace list-based mechanism for handling auto-detected clients"
This reverts commit 56a50667cbcfaf95eea9128d5676af94e54b51a8. Mux handling is not sufficiently implemented. It needs more time.
Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
| #
c4d3dfd8 |
| 05-Feb-2025 |
Wolfram Sang <[email protected]> |
Revert "i2c: Replace list-based mechanism for handling userspace-created clients"
This reverts commit 3cfe39b3a845593a485ab1c716615979004ef9f6. Mux handling is not sufficiently implemented. It needs
Revert "i2c: Replace list-based mechanism for handling userspace-created clients"
This reverts commit 3cfe39b3a845593a485ab1c716615979004ef9f6. Mux handling is not sufficiently implemented. It needs more time.
Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.14-rc1, v6.13 |
|
| #
27c3f0e6 |
| 15-Jan-2025 |
Wolfram Sang <[email protected]> |
i2c: add kdoc for the new debugfs entry of clients
When adding the new debugfs entry, its kdoc equivalent was forgotten. Add it now.
Fixes: d06905d68610 ("i2c: add core-managed per-client directory
i2c: add kdoc for the new debugfs entry of clients
When adding the new debugfs entry, its kdoc equivalent was forgotten. Add it now.
Fixes: d06905d68610 ("i2c: add core-managed per-client directory in debugfs") Reported-by: Stephen Rothwell <[email protected]> Closes: https://lore.kernel.org/r/[email protected] Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc7 |
|
| #
d06905d6 |
| 09-Jan-2025 |
Wolfram Sang <[email protected]> |
i2c: add core-managed per-client directory in debugfs
More and more I2C client drivers use debugfs entries and currently they need to manage a subdir for their files on their own. This means inconsi
i2c: add core-managed per-client directory in debugfs
More and more I2C client drivers use debugfs entries and currently they need to manage a subdir for their files on their own. This means inconsistent naming for these subdirs and they are scattered all over the debugfs-tree as well. Not to mention the duplicated code.
Let the I2C core provide and maintain a proper directory per client.
Note: It was considered to save the additional pointer in 'struct i2c_client' and only provide a subdir when requested via a helper function. When sketching this approach, more and more corner cases appeared, though, so the current solution with its simple and unabiguous code was chosen.
Signed-off-by: Wolfram Sang <[email protected]> Reviewed-by: Guenter Roeck <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6 |
|
| #
3cfe39b3 |
| 01-Nov-2024 |
Heiner Kallweit <[email protected]> |
i2c: Replace list-based mechanism for handling userspace-created clients
Similar to the list of auto-detected clients, we can also replace the list of userspace-created clients with flagging such cl
i2c: Replace list-based mechanism for handling userspace-created clients
Similar to the list of auto-detected clients, we can also replace the list of userspace-created clients with flagging such client devices.
Signed-off-by: Heiner Kallweit <[email protected]> [wsa: fixed description of the new flag; reordered new code in 'device_store' to have single exit point; fixed whitespace errors; folded cleanup patch into this one] Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
| #
56a50667 |
| 01-Nov-2024 |
Heiner Kallweit <[email protected]> |
i2c: Replace list-based mechanism for handling auto-detected clients
So far a list is used to track auto-detected clients per driver. The same functionality can be achieved much simpler by flagging
i2c: Replace list-based mechanism for handling auto-detected clients
So far a list is used to track auto-detected clients per driver. The same functionality can be achieved much simpler by flagging auto-detected clients.
Two notes regarding the usage of driver_for_each_device: In our case it can't fail, however the function is annotated __must_check. So a little workaround is needed to avoid a compiler warning. Then we may remove nodes from the list over which we iterate. This is safe, see the explanation at the beginning of lib/klist.c.
Signed-off-by: Heiner Kallweit <[email protected]> [wsa: fixed description of the new flag] Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4 |
|
| #
8d3cefaf |
| 15-Aug-2024 |
Heiner Kallweit <[email protected]> |
i2c: core: Lock address during client device instantiation
Krzysztof reported an issue [0] which is caused by parallel attempts to instantiate the same I2C client device. This can happen if driver s
i2c: core: Lock address during client device instantiation
Krzysztof reported an issue [0] which is caused by parallel attempts to instantiate the same I2C client device. This can happen if driver supports auto-detection, but certain devices are also instantiated explicitly. The original change isn't actually wrong, it just revealed that I2C core isn't prepared yet to handle this scenario. Calls to i2c_new_client_device() can be nested, therefore we can't use a simple mutex here. Parallel instantiation of devices at different addresses is ok, so we just have to prevent parallel instantiation at the same address. We can use a bitmap with one bit per 7-bit I2C client address, and atomic bit operations to set/check/clear bits. Now a parallel attempt to instantiate a device at the same address will result in -EBUSY being returned, avoiding the "sysfs: cannot create duplicate filename" splash.
Note: This patch version includes small cosmetic changes to the Tested-by version, only functional change is that address locking is supported for slave addresses too.
[0] https://lore.kernel.org/linux-i2c/[email protected]/T/#m12706546e8e2414d8f1a0dc61c53393f731685cc
Fixes: caba40ec3531 ("eeprom: at24: Probe for DDR3 thermal sensor in the SPD case") Cc: [email protected] Tested-by: Krzysztof Piotr Oledzki <[email protected]> Signed-off-by: Heiner Kallweit <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
| #
71833e79 |
| 14-Aug-2024 |
Richard Fitzgerald <[email protected]> |
i2c: Use IS_REACHABLE() for substituting empty ACPI functions
Replace IS_ENABLED() with IS_REACHABLE() to substitute empty stubs for: i2c_acpi_get_i2c_resource() i2c_acpi_client_count()
i2c: Use IS_REACHABLE() for substituting empty ACPI functions
Replace IS_ENABLED() with IS_REACHABLE() to substitute empty stubs for: i2c_acpi_get_i2c_resource() i2c_acpi_client_count() i2c_acpi_find_bus_speed() i2c_acpi_new_device_by_fwnode() i2c_adapter *i2c_acpi_find_adapter_by_handle() i2c_acpi_waive_d0_probe()
commit f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI functions") partially fixed this conditional to depend on CONFIG_I2C, but used IS_ENABLED(), which is wrong since CONFIG_I2C is tristate.
CONFIG_ACPI is boolean but let's also change it to use IS_REACHABLE() to future-proof it against becoming tristate.
Somehow despite testing various combinations of CONFIG_I2C and CONFIG_ACPI we missed the combination CONFIG_I2C=m, CONFIG_ACPI=y.
Signed-off-by: Richard Fitzgerald <[email protected]> Fixes: f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI functions") Reported-by: kernel test robot <[email protected]> Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ Reviewed-by: Takashi Iwai <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.11-rc3, v6.11-rc2 |
|
| #
f17c06c6 |
| 02-Aug-2024 |
Richard Fitzgerald <[email protected]> |
i2c: Fix conditional for substituting empty ACPI functions
Add IS_ENABLED(CONFIG_I2C) to the conditional around a bunch of ACPI functions.
The conditional around these functions depended only on CO
i2c: Fix conditional for substituting empty ACPI functions
Add IS_ENABLED(CONFIG_I2C) to the conditional around a bunch of ACPI functions.
The conditional around these functions depended only on CONFIG_ACPI. But the functions are implemented in I2C core, so are only present if CONFIG_I2C is enabled.
Signed-off-by: Richard Fitzgerald <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.11-rc1 |
|
| #
385ac870 |
| 16-Jul-2024 |
Wolfram Sang <[email protected]> |
i2c: header: improve kdoc for i2c_algorithm
Reword the explanation of @xfer, the old one was confusing and mixing up terminology. Other than that, capitalize some words correctly and use full line l
i2c: header: improve kdoc for i2c_algorithm
Reword the explanation of @xfer, the old one was confusing and mixing up terminology. Other than that, capitalize some words correctly and use full line length.
Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
| #
d83763e4 |
| 16-Jul-2024 |
Wolfram Sang <[email protected]> |
i2c: header: remove unneeded stuff regarding i2c_algorithm
The forward declaration is not needed anymore. The sentence about "following structs" became obsolete when struct i2c_algorithm became a kd
i2c: header: remove unneeded stuff regarding i2c_algorithm
The forward declaration is not needed anymore. The sentence about "following structs" became obsolete when struct i2c_algorithm became a kdoc. The paragraph about return values can go because we have this information in kdoc already.
Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.10 |
|
| #
5d89b5bd |
| 12-Jul-2024 |
Wolfram Sang <[email protected]> |
i2c: document new callbacks in i2c_algorithm
When updating the callbacks, adding their kernel-doc was forgotten. Add it now.
Reported-by: Stephen Rothwell <[email protected]> Closes: https://lor
i2c: document new callbacks in i2c_algorithm
When updating the callbacks, adding their kernel-doc was forgotten. Add it now.
Reported-by: Stephen Rothwell <[email protected]> Closes: https://lore.kernel.org/r/[email protected] Fixes: a93c2e5fe766 ("i2c: reword i2c_algorithm according to newest specification") Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc7 |
|
| #
a93c2e5f |
| 06-Jul-2024 |
Wolfram Sang <[email protected]> |
i2c: reword i2c_algorithm according to newest specification
Start changing the wording of the I2C main header wrt. the newest I2C v7 and SMBus 3.2 specifications and replace "master/slave" with more
i2c: reword i2c_algorithm according to newest specification
Start changing the wording of the I2C main header wrt. the newest I2C v7 and SMBus 3.2 specifications and replace "master/slave" with more appropriate terms. The first step renames the members of struct i2c_algorithm. Once all in-tree users are converted, the anonymous union will go away again. All this work will also pave the way for finally seperating the monolithic header into more fine-grained headers like "i2c/clients.h" etc.
Signed-off-by: Wolfram Sang <[email protected]> Reviewed-by: Andi Shyti <[email protected]> Signed-off-by: Andi Shyti <[email protected]>
show more ...
|
| #
d69d8048 |
| 01-Jul-2024 |
Greg Kroah-Hartman <[email protected]> |
driver core: have match() callback in struct bus_type take a const *
In the match() callback, the struct device_driver * should not be changed, so change the function callback to be a const *. This
driver core: have match() callback in struct bus_type take a const *
In the match() callback, the struct device_driver * should not be changed, so change the function callback to be a const *. This is one step of many towards making the driver core safe to have struct device_driver in read-only memory.
Because the match() callback is in all busses, all busses are modified to handle this properly. This does entail switching some container_of() calls to container_of_const() to properly handle the constant *.
For some busses, like PCI and USB and HV, the const * is cast away in the match callback as those busses do want to modify those structures at this point in time (they have a local lock in the driver structure.) That will have to be changed in the future if they wish to have their struct device * in read-only-memory.
Cc: Rafael J. Wysocki <[email protected]> Reviewed-by: Alex Elder <[email protected]> Acked-by: Sumit Garg <[email protected]> Link: https://lore.kernel.org/r/2024070136-wrongdoer-busily-01e8@gregkh Signed-off-by: Greg Kroah-Hartman <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc6, v6.10-rc5, v6.10-rc4 |
|
| #
1cbf3472 |
| 14-Jun-2024 |
Sakari Ailus <[email protected]> |
i2c: Add nop fwnode operations
Add nop variants of i2c_find_device_by_fwnode(), i2c_find_adapter_by_fwnode() and i2c_get_adapter_by_fwnode() for use without CONFIG_I2C.
Signed-off-by: Sakari Ailus
i2c: Add nop fwnode operations
Add nop variants of i2c_find_device_by_fwnode(), i2c_find_adapter_by_fwnode() and i2c_get_adapter_by_fwnode() for use without CONFIG_I2C.
Signed-off-by: Sakari Ailus <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc3, v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5 |
|
| #
e61bcf42 |
| 15-Apr-2024 |
Heiner Kallweit <[email protected]> |
i2c: Remove I2C_CLASS_SPD
Remove this class after all users have been gone.
Signed-off-by: Heiner Kallweit <[email protected]> Signed-off-by: Andi Shyti <[email protected]>
|
|
Revision tags: v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8 |
|
| #
f311507c |
| 06-Mar-2024 |
Hsin-Yu.Chen <[email protected]> |
i2c: remove redundant condition
I2C_M_RD is defined as and guaranteed to be 1 and 'flag & I2C_M_RD' is one or zero. No need for an additional condition to obtain the value.
Signed-off-by: Hsin-Yu.C
i2c: remove redundant condition
I2C_M_RD is defined as and guaranteed to be 1 and 'flag & I2C_M_RD' is one or zero. No need for an additional condition to obtain the value.
Signed-off-by: Hsin-Yu.Chen <[email protected]> Reviewed-by: Andi Shyti <[email protected]> [wsa: slightly updated commit message] Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.8-rc7, v6.8-rc6 |
|
| #
eb520344 |
| 19-Feb-2024 |
Ricardo B. Marliere <[email protected]> |
i2c: constify the struct device_type usage
Since commit aed65af1cc2f ("drivers: make device_type const"), the driver core can properly handle constant struct device_type. Move the i2c_adapter_type a
i2c: constify the struct device_type usage
Since commit aed65af1cc2f ("drivers: make device_type const"), the driver core can properly handle constant struct device_type. Move the i2c_adapter_type and i2c_client_type variables to be constant structures as well, placing it into read-only memory which can not be modified at runtime.
Signed-off-by: Ricardo B. Marliere <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.8-rc5, v6.8-rc4, v6.8-rc3, v6.8-rc2, v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7 |
|
| #
94959c0e |
| 19-Dec-2023 |
Greg Kroah-Hartman <[email protected]> |
i2c: make i2c_bus_type const
Now that the driver core can properly handle constant struct bus_type, move the i2c_bus_type variable to be a constant structure as well, placing it into read-only memor
i2c: make i2c_bus_type const
Now that the driver core can properly handle constant struct bus_type, move the i2c_bus_type variable to be a constant structure as well, placing it into read-only memory which can not be modified at runtime.
Note, the sound/soc/rockchip/rk3399_gru_sound.c also needed tweaking as it decided to save off a pointer to a bus type for internal stuff, and it was using the i2c_bus_type as well.
Signed-off-by: Greg Kroah-Hartman <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc6, v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1 |
|
| #
73febd77 |
| 12-Nov-2023 |
Wolfram Sang <[email protected]> |
i2c: create debugfs entry per adapter
Two drivers already implement custom debugfs handling for their i2c_adapter and more will come. So, let the core create a debugfs directory per adapter and pass
i2c: create debugfs entry per adapter
Two drivers already implement custom debugfs handling for their i2c_adapter and more will come. So, let the core create a debugfs directory per adapter and pass that to drivers for their debugfs files.
Signed-off-by: Wolfram Sang <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
| #
b60db383 |
| 23-Nov-2023 |
Heiner Kallweit <[email protected]> |
include/linux/i2c.h: remove I2C_CLASS_DDC support
After removal of the legacy EEPROM driver and I2C_CLASS_DDC support in olpc_dcon there's no i2c client driver left supporting I2C_CLASS_DDC. Class-b
include/linux/i2c.h: remove I2C_CLASS_DDC support
After removal of the legacy EEPROM driver and I2C_CLASS_DDC support in olpc_dcon there's no i2c client driver left supporting I2C_CLASS_DDC. Class-based device auto-detection is a legacy mechanism and shouldn't be used in new code. So we can remove this class completely now.
Signed-off-by: Heiner Kallweit <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.6, v6.6-rc7, v6.6-rc6, v6.6-rc5, v6.6-rc4, v6.6-rc3, v6.6-rc2, v6.6-rc1 |
|
| #
5eb1e6e4 |
| 05-Sep-2023 |
Uwe Kleine-König <[email protected]> |
i2c: Drop legacy callback .probe_new()
Now that all drivers are converted to the (new) .probe() callback, the temporary .probe_new() can go away. \o/
Link: https://lore.kernel.org/linux-i2c/2023062
i2c: Drop legacy callback .probe_new()
Now that all drivers are converted to the (new) .probe() callback, the temporary .probe_new() can go away. \o/
Link: https://lore.kernel.org/linux-i2c/[email protected] Reviewed-by: Javier Martinez Canillas <[email protected]> Reviewed-by: Jean Delvare <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|
|
Revision tags: v6.5, v6.5-rc7, v6.5-rc6, v6.5-rc5, v6.5-rc4, v6.5-rc3, v6.5-rc2, v6.5-rc1, v6.4, v6.4-rc7, v6.4-rc6 |
|
| #
564d73c4 |
| 07-Jun-2023 |
Biju Das <[email protected]> |
i2c: Add i2c_get_match_data()
Add i2c_get_match_data() to get match data for I2C, ACPI and DT-based matching, so that we can optimize the driver code.
Suggested-by: Geert Uytterhoeven <geert+renesa
i2c: Add i2c_get_match_data()
Add i2c_get_match_data() to get match data for I2C, ACPI and DT-based matching, so that we can optimize the driver code.
Suggested-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Biju Das <[email protected]> [wsa: simplified var initialization] Signed-off-by: Wolfram Sang <[email protected]>
show more ...
|