[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <436f78a981ecba441a0636912ddd1cf2@manjaro.org>
Date: Tue, 26 Mar 2024 20:55:40 +0100
From: Dragan Simic <dsimic@...jaro.org>
To: Conor Dooley <conor@...nel.org>
Cc: dev@...ker-schwesinger.de, Vinod Koul <vkoul@...nel.org>, Kishon Vijay
Abraham I <kishon@...nel.org>, Heiko Stuebner <heiko@...ech.de>, Chris Ruehl
<chris.ruehl@...ys.com.hk>, Rob Herring <robh@...nel.org>, Krzysztof
Kozlowski <krzysztof.kozlowski+dt@...aro.org>, Conor Dooley
<conor+dt@...nel.org>, Christopher Obbard <chris.obbard@...labora.com>,
Alban Browaeys <alban.browaeys@...il.com>, Doug Anderson
<dianders@...omium.org>, Brian Norris <briannorris@...omium.org>, Jensen
Huang <jensenhuang@...endlyarm.com>, linux-phy@...ts.infradead.org,
linux-arm-kernel@...ts.infradead.org, linux-rockchip@...ts.infradead.org,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org
Subject: Re: [PATCH 1/3] phy: rockchip: emmc: Enable pulldown for strobe line
Hello Conor and Folker,
On 2024-03-26 20:46, Conor Dooley wrote:
> On Tue, Mar 26, 2024 at 07:54:35PM +0100, Folker Schwesinger via B4
> Relay wrote:
>> From: Folker Schwesinger <dev@...ker-schwesinger.de>
>>
>> Restore the behavior of the Rockchip kernel that undconditionally
>> enables the internal strobe pulldown.
>
> What do you mean "restore the behaviour of the rockchip kernel"? Did
> mainline behave the same as the rockchip kernel previously? If not,
> using "restore" here is misleading. "Unconditionally" is also
> incorrect,
> because you have a property that disables it.
>
>> As the DT property rockchip,enable-strobe-pulldown is obsolete now,
>> replace it with a property to disable the internal pulldown.
>>
>> This fixes I/O errors observed on various Rock Pi 4 and NanoPi4 series
>> boards with some eMMC modules. Other boards may also be affected.
>>
>> An example of these errors is as follows:
>>
>> [ 290.060817] mmc1: running CQE recovery
>> [ 290.061337] blk_update_request: I/O error, dev mmcblk1, sector
>> 1411072 op 0x1:(WRITE) flags 0x800 phys_seg 36 prio class 0
>> [ 290.061370] EXT4-fs warning (device mmcblk1p1): ext4_end_bio:348:
>> I/O error 10 writing to inode 29547 starting block 176466)
>> [ 290.061484] Buffer I/O error on device mmcblk1p1, logical block
>> 172288
>>
>> Fixes: 8b5c2b45b8f0 ("phy: rockchip: set pulldown for strobe line in
>> dts")
>> Signed-off-by: Folker Schwesinger <dev@...ker-schwesinger.de>
>> ---
>> drivers/phy/rockchip/phy-rockchip-emmc.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/phy/rockchip/phy-rockchip-emmc.c
>> b/drivers/phy/rockchip/phy-rockchip-emmc.c
>> index 20023f6eb994..6e637f3e1b19 100644
>> --- a/drivers/phy/rockchip/phy-rockchip-emmc.c
>> +++ b/drivers/phy/rockchip/phy-rockchip-emmc.c
>> @@ -376,14 +376,14 @@ static int rockchip_emmc_phy_probe(struct
>> platform_device *pdev)
>> rk_phy->reg_offset = reg_offset;
>> rk_phy->reg_base = grf;
>> rk_phy->drive_impedance = PHYCTRL_DR_50OHM;
>> - rk_phy->enable_strobe_pulldown = PHYCTRL_REN_STRB_DISABLE;
>> + rk_phy->enable_strobe_pulldown = PHYCTRL_REN_STRB_ENABLE;
>> rk_phy->output_tapdelay_select = PHYCTRL_OTAPDLYSEL_DEFAULT;
>>
>> if (!of_property_read_u32(dev->of_node, "drive-impedance-ohm",
>> &val))
>> rk_phy->drive_impedance = convert_drive_impedance_ohm(pdev, val);
>>
>> - if (of_property_read_bool(dev->of_node,
>> "rockchip,enable-strobe-pulldown"))
>> - rk_phy->enable_strobe_pulldown = PHYCTRL_REN_STRB_ENABLE;
>> + if (of_property_read_bool(dev->of_node,
>> "rockchip,disable-strobe-pulldown"))
>> + rk_phy->enable_strobe_pulldown = PHYCTRL_REN_STRB_DISABLE;
>
> Unfortunately you cannot do this.
> Previously no property at all meant disabled and a property was
> required
> to enable it. With this change the absence of a property means that it
> will be enabled.
> An old devicetree is that wanted this to be disabled would have no
> property and will now end up with it enabled. This is an ABI break and
> is
> clearly not backwards compatible, that's a NAK unless it is
> demonstrable
> that noone actually wants to disable it at all.
Moreover, as I already explained some time ago, [1] some boards and
devices are unfortunately miswired, and we don't want to enable the
DATA STROBE pull-down on such boards.
[1]
https://lore.kernel.org/linux-rockchip/ca5b7cad01f645c7c559ab26a8db8085@manjaro.org/#t
> If this patch fixes a problem on a board that you have, I would suggest
> that you add the property to enable it, as the binding tells you to.
>
> Thanks,
> Conor.
>
>> if (!of_property_read_u32(dev->of_node,
>> "rockchip,output-tapdelay-select", &val)) {
>> if (val <= PHYCTRL_OTAPDLYSEL_MAXVALUE)
>>
>> --
>> 2.44.0
>>
>>
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@...ts.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip
Powered by blists - more mailing lists