[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAAOTY_-2vJE_v2vV=fJqK9--yx=++P9x53T-g3Cv4qKfHhqbLg@mail.gmail.com>
Date: Mon, 26 Jul 2021 08:27:42 +0800
From: Chun-Kuang Hu <chunkuang.hu@...nel.org>
To: Frank Wunderlich <frank-w@...lic-files.de>
Cc: "moderated list:ARM/Mediatek SoC support"
<linux-mediatek@...ts.infradead.org>,
Dafna Hirschfeld <dafna.hirschfeld@...labora.com>,
Chun-Kuang Hu <chunkuang.hu@...nel.org>,
David Airlie <airlied@...ux.ie>,
linux-kernel <linux-kernel@...r.kernel.org>,
DRI Development <dri-devel@...ts.freedesktop.org>,
Enric Balletbo i Serra <enric.balletbo@...labora.com>,
Matthias Brugger <matthias.bgg@...il.com>,
Frank Wunderlich <linux@...web.de>,
Collabora Kernel ML <kernel@...labora.com>,
Linux ARM <linux-arm-kernel@...ts.infradead.org>
Subject: Re: Aw: Re: [PATCH] soc: mediatek: mmsys: fix HDMI output on mt7623/bananapi-r2
Hi, Frank:
Frank Wunderlich <frank-w@...lic-files.de> 於 2021年7月25日 週日 上午1:06寫道:
>
> >On 12.07.21 19:16, Frank Wunderlich wrote:
> >> Hi,
> >>
> >> it turns out that problem is the read+or of the new value
> >>
> >> i reverted my patch and changed
> >>
> >> reg = readl_relaxed(mmsys->regs + routes[i].addr) | routes[i].val;
> >> writel_relaxed(reg, mmsys->regs + routes[i].addr);
> >>
> >> to
> >>
> >> writel_relaxed(routes[i].val, mmsys->regs + routes[i].addr);
> >>
> >> and it works too, but maybe it breaks other platforms
>
> A gentle ping. Amy further comments which of both ways is the right one (restoring old output select function or write only without read+or)?
As I've discussed in [1], SOUT has many bits and need to be cleared
before set new value. Of course, write only could do the clear, but
for MOUT, it clear the bits that should not be cleared. If you want to
use the table, you need to implement the 'mask'.
[1] https://patchwork.kernel.org/project/linux-mediatek/patch/trinity-937ebfa3-d123-42de-a289-3ad0dbc09782-1625830110576@3c-app-gmx-bap43/
Regards,
Chun-Kuang.
>
> regards Frank
Powered by blists - more mailing lists