<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/w1/slaves, branch linux-5.12.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-07-20T14:02:05Z</updated>
<entry>
<title>w1: ds2438: fixing bug that would always get page0</title>
<updated>2021-07-20T14:02:05Z</updated>
<author>
<name>Luiz Sampaio</name>
</author>
<published>2021-05-19T22:30:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02a208801f2fceeca8ce2a3e6ba11ded656c00d4'/>
<id>urn:sha1:02a208801f2fceeca8ce2a3e6ba11ded656c00d4</id>
<content type='text'>
[ Upstream commit 1f5e7518f063728aee0679c5086b92d8ea429e11 ]

The purpose of the w1_ds2438_get_page function is to get the register
values at the page passed as the pageno parameter. However, the page0 was
hardcoded, such that the function always returned the page0 contents. Fixed
so that the function can retrieve any page.

Signed-off-by: Luiz Sampaio &lt;sampaio.ime@gmail.com&gt;
Link: https://lore.kernel.org/r/20210519223046.13798-5-sampaio.ime@gmail.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>w1: w1_therm: Fix conversion result for negative temperatures</title>
<updated>2021-01-27T13:59:16Z</updated>
<author>
<name>Ivan Zaentsev</name>
</author>
<published>2021-01-21T09:30:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2f6055c26f1913763eabc66c7c27d0693561e966'/>
<id>urn:sha1:2f6055c26f1913763eabc66c7c27d0693561e966</id>
<content type='text'>
DS18B20 device driver returns an incorrect value for negative temperatures
due to a missing sign-extension in w1_DS18B20_convert_temp().

Fix by using s16 temperature value when converting to int.

Fixes: 9ace0b4dab1c (w1: w1_therm: Add support for GXCAS GX20MH01 device.)
Cc: stable &lt;stable@vger.kernel.org&gt;
Reported-by: Paweł Marciniak &lt;sunwire@gmail.com&gt;
Signed-off-by: Ivan Zaentsev &lt;ivan.zaentsev@wirenboard.ru&gt;
Link: https://lore.kernel.org/r/20210121093021.224764-1-ivan.zaentsev@wirenboard.ru
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>w1: w1_therm: Rename conflicting sysfs attribute 'eeprom' to 'eeprom_cmd'</title>
<updated>2020-11-12T07:50:13Z</updated>
<author>
<name>Ivan Zaentsev</name>
</author>
<published>2020-11-12T06:49:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=439e8f6f1e5d1ca973da278499078e213dad63bb'/>
<id>urn:sha1:439e8f6f1e5d1ca973da278499078e213dad63bb</id>
<content type='text'>
Duplicate attribute 'eeprom' is defined in:
1) Documentation/ABI/testing/sysfs-driver-w1_therm
2) Documentation/ABI/stable/sysfs-driver-w1_ds28e04

Both drivers define an attribute: /sys/bus/w1/devices/.../eeprom
with conflicting behavior.

Fix by renaming the newer one in w1_therm.c to 'eeprom_cmd'.

Reported-by: Mauro Carvalho Chehab &lt;mchehab+huawei@kernel.org&gt;
Suggested-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Link: https://lore.kernel.org/lkml/20201029152845.6bbb39ce@coco.lan/
Signed-off-by: Ivan Zaentsev &lt;ivan.zaentsev@wirenboard.ru&gt;
Link: https://lore.kernel.org/r/20201112064931.8471-1-ivan.zaentsev@wirenboard.ru
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>w1: w1_therm: make w1_poll_completion static</title>
<updated>2020-10-05T12:49:24Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
</author>
<published>2020-10-05T12:37:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=05dbb62853351cd90a538bff213aacc070dc1550'/>
<id>urn:sha1:05dbb62853351cd90a538bff213aacc070dc1550</id>
<content type='text'>
kernel test robot rightly points out that w1_poll_completion() should be
static, so mark it as such.

Cc: Ivan Zaentsev &lt;ivan.zaentsev@wirenboard.ru&gt;
Reported-by: kernel test robot &lt;lkp@intel.com&gt;
Link: https://lore.kernel.org/r/20201005123703.GA800532@kroah.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>w1: Constify static w1_family_ops structs</title>
<updated>2020-10-05T11:21:49Z</updated>
<author>
<name>Rikard Falkeborn</name>
</author>
<published>2020-10-04T19:32:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=57de2dfcabba91daedd66ac006b71734983975d6'/>
<id>urn:sha1:57de2dfcabba91daedd66ac006b71734983975d6</id>
<content type='text'>
The only usage of these structs is to assign their address to the fops
field in the w1_family struct, which is a const pointer. Make them const
to allow the compiler to put them in read-only memory.

This was done with the following Coccinelle semantic patch
(http://coccinelle.lip6.fr/):

// &lt;smpl&gt;
@r1 disable optional_qualifier @
identifier i;
position p;
@@
static struct w1_family_ops i@p = {...};

@ok1@
identifier r1.i;
position p;
identifier s;
@@
static struct w1_family s = {
	.fops=&amp;i@p,
};

@bad1@
position p!={r1.p,ok1.p};
identifier r1.i;
@@
i@p

@depends on !bad1 disable optional_qualifier@
identifier r1.i;
@@
static
+const
struct w1_family_ops i={};
// &lt;/smpl&gt;

Signed-off-by: Rikard Falkeborn &lt;rikard.falkeborn@gmail.com&gt;
Link: https://lore.kernel.org/r/20201004193202.4044-3-rikard.falkeborn@gmail.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>w1: w1_therm: Add support for GXCAS GX20MH01 device.</title>
<updated>2020-10-02T09:49:54Z</updated>
<author>
<name>Ivan Zaentsev</name>
</author>
<published>2020-09-04T16:00:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9ace0b4dab1c3913810c50948d714afcbd2c767e'/>
<id>urn:sha1:9ace0b4dab1c3913810c50948d714afcbd2c767e</id>
<content type='text'>
GX20MH01 device shares family number 0x28 with DS18B20. The device
is generally compatible with DS18B20. Added are the lowest 2^-5, 2^-6
temperature bits in Config register; R2 bit in Config register
enabling 13 and 14 bit resolutions. It is powered up in 14 bit mode.

Signed-off-by: Ivan Zaentsev &lt;ivan.zaentsev@wirenboard.ru&gt;
Link: https://lore.kernel.org/r/20200904160004.87710-2-ivan.zaentsev@wirenboard.ru
Acked-by: Evgeniy Polyakov &lt;zbr@ioremap.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>w1: w1_therm: Add sysfs entries to control conversion time and driver features</title>
<updated>2020-10-02T09:49:50Z</updated>
<author>
<name>Ivan Zaentsev</name>
</author>
<published>2020-09-04T16:00:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=021da53e65fdd0e1b8492c2670dd075c0ea910fc'/>
<id>urn:sha1:021da53e65fdd0e1b8492c2670dd075c0ea910fc</id>
<content type='text'>
The conversion time of common DS18B20 clones deviates from
datasheet specs. Allow adjustment and automatic measure of the
conversion time.

Add 'conv_time' sysfs attribute:
  *read*: Current conversion time in milliseconds.
  *write*:
     '0': Set default conversion time.
     '1': Measure and set the conversion time. Make a
          single temperature conversion, poll and measure
          an actual value. Measured value is increased
          by 20% for temperature drift. A new conversion
          time is returned by reading the same attribute.
     other positive value:
        Set the conversion time in milliseconds.

The setting is active until a resolution change. Then it is reset to
default conversion time for a new resolution.

Add 'features' sysfs attribute to control optional driver settings
per device. Bit masks to read/write (logical OR):
  1: Enable check for conversion success. If byte 6 of
     scratchpad memory is 0xC after conversion, and
     temperature reads 85.00 (powerup value) or 127.94
     (insufficient power) - return a conversion error.

  2: Enable poll for conversion completion. Generate read cycles
     after the conversion start and wait for 1's. In parasite
     power mode this feature is not available.

There are some clones of DS18B20 with fixed 12 bit resolution. Make the
driver verify the resolution by reading back the device after resolution
change.

Signed-off-by: Ivan Zaentsev &lt;ivan.zaentsev@wirenboard.ru&gt;
Acked-by: Evgeniy Polyakov &lt;zbr@ioremap.net&gt;
Link: https://lore.kernel.org/r/20200904160004.87710-1-ivan.zaentsev@wirenboard.ru
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>w1_therm: remove redundant assignments to variable ret</title>
<updated>2020-05-21T08:58:51Z</updated>
<author>
<name>Colin Ian King</name>
</author>
<published>2020-05-19T15:45:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f37d13d52c0560bd2bac40b22466af538e61a5ce'/>
<id>urn:sha1:f37d13d52c0560bd2bac40b22466af538e61a5ce</id>
<content type='text'>
The variable ret is being initialized with a value that is never read
and it is being updated later with a new value. The initialization
is redundant and can be removed.

Addresses-Coverity: ("Unused value")
Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Link: https://lore.kernel.org/r/20200519154553.873413-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>w1_therm: Free the correct variable</title>
<updated>2020-05-21T08:58:46Z</updated>
<author>
<name>Dan Carpenter</name>
</author>
<published>2020-05-20T12:00:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e420637b81f78d0fbacf539bdb1b341eba602aea'/>
<id>urn:sha1:e420637b81f78d0fbacf539bdb1b341eba602aea</id>
<content type='text'>
The problem is that we change "p_args" to point to the middle of the
string so when we free it at the end of the function it's not freeing
the same pointer that we originally allocated.

Fixes: e2c94d6f5720 ("w1_therm: adding alarm sysfs entry")
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Link: https://lore.kernel.org/r/20200520120019.GA172354@mwanda
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>w1_therm: adding bulk read support to trigger multiple conversion on bus</title>
<updated>2020-05-15T14:29:00Z</updated>
<author>
<name>Akira Shimahara</name>
</author>
<published>2020-05-11T20:38:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=57c76221d5af648c8355a55c09b050c5d8d38189'/>
<id>urn:sha1:57c76221d5af648c8355a55c09b050c5d8d38189</id>
<content type='text'>
Adding bulk read support:
Sending a 'trigger' command in the dedicated sysfs entry of bus master
device send a conversion command for all the slaves on the bus. The sysfs
entry is added as soon as at least one device supporting this feature
is detected on the bus.

The behavior of the sysfs reading temperature on the device is as follow:
 * If no bulk read pending, trigger a conversion on the device, wait for
 the conversion to be done, read the temperature in device RAM
 * If a bulk read has been trigger, access directly the device RAM
This behavior is the same on the 2 sysfs entries ('temperature' and
'w1_slave').

Reading the therm_bulk_read sysfs give the status of bulk operations:
 * '-1': conversion in progress on at least 1 sensor
 * '1': conversion complete but at least one sensor has not been read yet
 * '0': no bulk operation. Reading temperature on ecah device will trigger
a conversion

As not all devices support bulk read feature, it has been added in device
family structure.

The attribute is set at master level as soon as a supporting device is
discover. It is removed when the last supported device leave the bus.
The count of supported device is kept with the static counter
bulk_read_device_counter.

A strong pull up is apply on the line if at least one device required it.
The duration of the pull up is the max time required by a device on the
line, which depends on the resolution settings of each device. The strong
pull up could be adjust with the a module parameter.

Updating documentation in Documentation/ABI/testing/sysfs-driver-w1_therm
and Documentation/w1/slaves/w1_therm.rst accordingly.

Signed-off-by: Akira Shimahara &lt;akira215corp@gmail.com&gt;
Link: https://lore.kernel.org/r/20200511203820.411483-1-akira215corp@gmail.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
