[2/9] phy: add Rockchip Innosilicon hdmi phy
Andrzej Hajda
a.hajda at samsung.com
Fri Feb 9 02:06:49 PST 2018
On 09.02.2018 10:24, Heiko Stuebner wrote:
> Hi Martin,
>
> Am Montag, 5. Februar 2018, 22:32:08 CET schrieb Martin Cerveny:
>> On Mon, 5 Feb 2018, Heiko Stuebner wrote:
>>> From: Zheng Yang <zhengyang at rock-chips.com>
>>>
>>> Add a driver for the Innosilicon hdmi phy used on rk3228/rk3229
>>> and rk3328 socs from Rockchip.
>>>
>>> Signed-off-by: Zheng Yang <zhengyang at rock-chips.com>
>>> Signed-off-by: Heiko Stuebner <heiko at sntech.de>
>>> ---
>>> +++ b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c
>>> +static u32 inno_hdmi_phy_get_tmdsclk(struct inno_hdmi_phy *inno, int rate)
>>> +{
>>> + int bus_width = phy_get_bus_width(inno->phy);
>>> + u32 tmdsclk;
>>> +
>>> + switch (bus_width) {
>>> + case 4:
>>> + tmdsclk = rate / 2;
>>> + break;
>>> + case 5:
>>> + tmdsclk = rate * 5 / 8;
>>> + break;
>>> + case 6:
>>> + tmdsclk = rate * 3 / 4;
>>> + break;
>>> + case 10:
>>> + tmdsclk = rate * 5 / 4;
>>> + break;
>>> + case 12:
>>> + tmdsclk = rate * 3 / 2;
>>> + break;
>>> + case 16:
>>> + tmdsclk = rate * 2;
>>> + break;
>>> + default:
>>> + tmdsclk = rate;
>>> + }
>>> +
>>> + return tmdsclk;
>>> +}
>> Please corrects integer overflow
>> like https://github.com/mcerveny/rockchip-linux/commit/b4bc703f2dca4e5115b22155920d2277671a9f00
> thanks for finding that possible issue. I've adapted the phy driver
> in a similar way (using u64 though) and will include that change in the
> next version.
Btw, wouldn't be simpler to just use:
switch (bus_width) {
case 4:
case 5:
case 6:
case 10:
case 12:
case 16:
return (u64)rate * bus_width / 8;
default:
return rate;
}
Regards
Andrzej
>
>
> Thanks
> Heiko
>
>
>
More information about the Linux-rockchip
mailing list