Heiner Kallweit
2fa7d74ff5
eeprom: ee1004: Remove not needed debug message
...
If a user is interested in such transfer statistics he can simply
switch on smbus tracing.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/6169f52e-6ede-d7cc-7f8b-cced55b693d0@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-06-04 15:28:27 +02:00
Heiner Kallweit
5fe3cba0bf
eeprom: ee1004: Add helper ee1004_cleanup
...
Factor out the cleanup code to a new helper ee1004_cleanup().
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/9738cbc7-458d-276f-4012-66551f105d90@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:40 +02:00
Heiner Kallweit
8700a7328e
eeprom: ee1004: Add constant EE1004_NUM_PAGES
...
Add a constant for the number of pages.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/6167f9c5-995a-03c3-c324-e93e2a6c969b@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:40 +02:00
Heiner Kallweit
8aeacb7a2d
eeprom: ee1004: Move call to ee1004_set_current_page to ee1004_eeprom_read
...
Moving the call to ee1004_set_current_page() to ee1004_eeprom_read()
allows to simplify the code.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/2829a131-51e3-8865-462a-564080158b0b@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
6f68dbd6cc
eeprom: ee1004: Improve error handling in ee1004_read
...
Simplify the error handling and make it better readable. No functional
change intended.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/13ad7b39-e722-d70a-e25b-03d1fb1734a7@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
6601017e2a
eeprom: ee1004: Factor out setting page to ee1004_set_current_page
...
Factor out setting the page, this makes the code better readable.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/21e0966f-e6c9-045f-b130-bd9fb071f0d7@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
b2cd8a2f8e
eeprom: ee1004: Cache current page at initialization of first device only
...
The value of ee1004_current_page applies to all SPD eeproms connected
to the adapter. Therefore it's sufficient if we set ee1004_current_page
when the first device is added.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/b9240e58-08bb-3d71-7a9c-9a323b470ab6@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
2ac99039c5
eeprom: ee1004: Switch to i2c probe_new callback
...
Switch to the new i2c_driver probe callback version.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/eb5be659-7427-46c5-66c2-b39650e08ea3@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
3c03dad765
eeprom: ee1004: Improve creating dummy devices
...
i2c_new_dummy_device() calls i2c_new_client_device() that complains
if it fails to create the device. Therefore we don't have to emit an
error message in case of failure. In addition ensure that
ee1004_set_page is only set if creating the device succeeded.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/d38df5ac-6ecb-7d5f-b5c3-39bfc6a1e8a1@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
08e5138aa4
eeprom: ee1004: Improve check for SMBUS features
...
We have to read 512 bytes only, therefore read performance isn't really
a concern. Don't bother the user if i2c block read isn't supported.
For i2c_smbus_read_i2c_block_data_or_emulated() to work it's sufficient
if I2C_FUNC_SMBUS_READ_I2C_BLOCK or I2C_FUNC_SMBUS_READ_BYTE_DATA is
supported. Therefore remove the check for I2C_FUNC_SMBUS_READ_WORD_DATA.
In addition check for I2C_FUNC_SMBUS_WRITE_BYTE (included in
I2C_FUNC_SMBUS_BYTE) which is needed for setting the page.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/840c668e-6310-e933-e50e-5abeaecfb39c@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
b97ba92e29
eeprom: ee1004: Remove usage of i2c_adapter_id in adapter comparison
...
We can compare the adapter pointers directly instead of using
i2c_adapter_id().
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/99a3f94d-e7ca-e01d-6a78-81e109fde086@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
64bf274711
eeprom: ee1004: Remove not needed check in ee1004_eeprom_read
...
i2c_smbus_read_i2c_block_data_or_emulated() checks its length argument,
so we don't have to do it. In addition remove the unlikely hint from
the checks, we do i2c reads and therefore are in a slow path.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/eb2a8bff-43ec-c763-a417-9d741e6f0034@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
7abdadfcf1
eeprom: ee1004: Remove not needed check in ee1004_read
...
sysfs_kf_bin_read() checks this for us already. In addition
the function works correctly also w/o this check.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/33889bff-3614-4b73-5010-701635e1edab@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
7adbd54fb2
eeprom: ee1004: Use kobj_to_i2c_client to simplify the code
...
Switch to helper kobj_to_i2c_client() to simplify the code.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/4ae57f09-b803-6ae3-c734-87e733a56eb8@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-27 14:49:39 +02:00
Heiner Kallweit
b63866efa1
eeprom: ee1004: Let device core handle attribute eeprom
...
Instead of creating/removing the attribute ourselves, just declare the
attribute and let the device core handle it. This allows to simplify
the code.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com >
Link: https://lore.kernel.org/r/8a6c77f2-f84a-311b-c2b9-21798f690e4d@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-05-21 22:13:13 +02:00
Liu Shixin
4292aa977f
eeprom: ee1004: use module_i2c_driver to simplify the code
...
Use the module_i2c_driver() macro to make the code smaller
and a bit simpler.
Signed-off-by: Liu Shixin <liushixin2@huawei.com >
Link: https://lore.kernel.org/r/20200918030225.3902750-1-liushixin2@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-10-02 11:36:37 +02:00
Wolfram Sang
80257121f4
misc: eeprom: ee1004: convert to i2c_new_dummy_device
...
Move from i2c_new_dummy() to i2c_new_dummy_device(), so we now get an
ERRPTR which we use in error handling.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com >
Link: https://lore.kernel.org/r/20190722172616.3982-2-wsa+renesas@sang-engineering.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-07-25 10:06:54 +02:00
Greg Kroah-Hartman
0154ec71d5
Merge 5.2-rc4 into char-misc-next
...
We want the char/misc driver fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-06-09 09:11:21 +02:00
Thomas Gleixner
2874c5fd28
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
...
Based on 1 normalized pattern(s):
this program is free software you can redistribute it and or modify
it under the terms of the gnu general public license as published by
the free software foundation either version 2 of the license or at
your option any later version
extracted by the scancode license scanner the SPDX license identifier
GPL-2.0-or-later
has been chosen to replace the boilerplate/reference in 3029 file(s).
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Allison Randal <allison@lohutok.net >
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-05-30 11:26:32 -07:00
Jean Delvare
31641e34e8
eeprom: ee1004: Deal with nack on page selection
...
Some EE1004 implementations will not properly ack page selection
commands. They still set the page correctly, so there is no actual
error. Deal with this case gracefully by checking the currently
selected page after we receive a nack. If the page is set right then
we can continue.
Signed-off-by: Jean Delvare <jdelvare@suse.de >
Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-05-24 20:42:50 +02:00
Jean Delvare
5d45875174
eeprom: ee1004: Move selected page detection to a separate function
...
No functional change, this is in preparation for future needs.
Signed-off-by: Jean Delvare <jdelvare@suse.de >
Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-05-24 20:42:50 +02:00
Jean Delvare
3b7584a296
eeprom: New ee1004 driver for DDR4 memory
...
The EEPROMs which hold the SPD data on DDR4 memory modules are no
longer standard AT24C02-compatible EEPROMs. They are 512-byte EEPROMs
which use only 1 I2C address for data access. You need to switch
between the lower page and the upper page of data by sending commands
on the SMBus.
Signed-off-by: Jean Delvare <jdelvare@suse.de >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2018-10-15 20:51:46 +02:00