tree:
https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.4
head: 165087594d83615eb48f64ee09830ccccd7f4ae4
commit: 0a2638805bc5f83fcc99ce5cd7ef29682485ac47 [23/214] BACKPORT: phy: Move
phy-rockchip-dphy-rx0 out of staging
config: mips-allyesconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 7.5.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git remote add chrome-os
https://chromium.googlesource.com/chromiumos/third_party/kernel
git fetch --no-tags chrome-os chromeos-4.4
git checkout 0a2638805bc5f83fcc99ce5cd7ef29682485ac47
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-7.5.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:18:0:
include/linux/clk.h:199:70: warning: 'struct clk_bulk_data' declared inside
parameter list will not be visible outside of this definition or declaration
static inline int __must_check clk_bulk_prepare(int num_clks, struct clk_bulk_data
*clks)
^~~~~~~~~~~~~
include/linux/clk.h:223:60: warning: 'struct clk_bulk_data' declared inside
parameter list will not be visible outside of this definition or declaration
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:528:17: warning: 'struct clk_bulk_data' declared inside
parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:539:15: warning: 'struct clk_bulk_data' declared inside
parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:546:54: warning: 'struct clk_bulk_data' declared inside
parameter list will not be visible outside of this definition or declaration
static inline void clk_bulk_put(int num_clks, struct clk_bulk_data *clks) {}
^~~~~~~~~~~~~
include/linux/clk.h:555:69: warning: 'struct clk_bulk_data' declared inside
parameter list will not be visible outside of this definition or declaration
static inline int __must_check clk_bulk_enable(int num_clks, struct clk_bulk_data
*clks)
^~~~~~~~~~~~~
include/linux/clk.h:564:16: warning: 'struct clk_bulk_data' declared inside
parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks) {}
^~~~~~~~~~~~~
include/linux/clk.h:624:13: warning: 'struct clk_bulk_data' declared inside
parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h: In function 'clk_bulk_prepare_enable':
include/linux/clk.h:628:35: warning: passing argument 2 of 'clk_bulk_prepare'
from incompatible pointer type [-Wincompatible-pointer-types]
ret = clk_bulk_prepare(num_clks, clks);
^~~~
include/linux/clk.h:199:32: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline int __must_check clk_bulk_prepare(int num_clks, struct clk_bulk_data
*clks)
^~~~~~~~~~~~~~~~
include/linux/clk.h:631:34: warning: passing argument 2 of 'clk_bulk_enable'
from incompatible pointer type [-Wincompatible-pointer-types]
ret = clk_bulk_enable(num_clks, clks);
^~~~
include/linux/clk.h:555:32: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline int __must_check clk_bulk_enable(int num_clks, struct clk_bulk_data
*clks)
^~~~~~~~~~~~~~~
include/linux/clk.h:633:32: warning: passing argument 2 of 'clk_bulk_unprepare'
from incompatible pointer type [-Wincompatible-pointer-types]
clk_bulk_unprepare(num_clks, clks);
^~~~
include/linux/clk.h:223:20: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~~~~
include/linux/clk.h: At top level:
include/linux/clk.h:639:19: warning: 'struct clk_bulk_data' declared inside
parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h: In function 'clk_bulk_disable_unprepare':
include/linux/clk.h:641:29: warning: passing argument 2 of 'clk_bulk_disable'
from incompatible pointer type [-Wincompatible-pointer-types]
clk_bulk_disable(num_clks, clks);
^~~~
include/linux/clk.h:563:20: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_disable(int num_clks,
^~~~~~~~~~~~~~~~
include/linux/clk.h:642:31: warning: passing argument 2 of 'clk_bulk_unprepare'
from incompatible pointer type [-Wincompatible-pointer-types]
clk_bulk_unprepare(num_clks, clks);
^~~~
include/linux/clk.h:223:20: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c: In function 'rk_dphy_enable':
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:203:2: error: implicit declaration of
function 'usleep_range'; did you mean 'clear_page'?
[-Werror=implicit-function-declaration]
usleep_range(100, 150);
^~~~~~~~~~~~
clear_page
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c: In function 'rk_dphy_power_on':
> drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:264:50: warning:
passing argument 2 of 'clk_bulk_enable' from incompatible pointer type
[-Wincompatible-pointer-types]
ret =
clk_bulk_enable(priv->drv_data->num_clks, priv->clks);
^~~~
In file included from drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:18:0:
include/linux/clk.h:555:32: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline int __must_check clk_bulk_enable(int num_clks, struct clk_bulk_data
*clks)
^~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c: In function 'rk_dphy_power_off':
> drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:278:45: warning:
passing argument 2 of 'clk_bulk_disable' from incompatible pointer type
[-Wincompatible-pointer-types]
clk_bulk_disable(priv->drv_data->num_clks,
priv->clks);
^~~~
In file included from drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:18:0:
include/linux/clk.h:563:20: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_disable(int num_clks,
^~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c: In function 'rk_dphy_init':
> drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:286:52: warning:
passing argument 2 of 'clk_bulk_prepare' from incompatible pointer type
[-Wincompatible-pointer-types]
return
clk_bulk_prepare(priv->drv_data->num_clks, priv->clks);
^~~~
In file included from drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:18:0:
include/linux/clk.h:199:32: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline int __must_check clk_bulk_prepare(int num_clks, struct clk_bulk_data
*clks)
^~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c: In function 'rk_dphy_exit':
> drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:293:47: warning:
passing argument 2 of 'clk_bulk_unprepare' from incompatible pointer type
[-Wincompatible-pointer-types]
clk_bulk_unprepare(priv->drv_data->num_clks, priv->clks);
^~~~
In file included from drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:18:0:
include/linux/clk.h:223:20: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c: In function 'rk_dphy_probe':
> drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:356:14: error:
dereferencing pointer to incomplete type 'struct clk_bulk_data'
sizeof(*priv->clks), GFP_KERNEL);
^~~~~~~~~~~
> drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:360:13: error:
invalid use of undefined type 'struct clk_bulk_data'
priv->clks[i].id = drv_data->clks[i];
^
> drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:361:58: warning:
passing argument 3 of 'devm_clk_bulk_get' from incompatible pointer type
[-Wincompatible-pointer-types]
ret = devm_clk_bulk_get(&pdev->dev,
drv_data->num_clks, priv->clks);
^~~~
In file included from drivers/phy/rockchip/phy-rockchip-dphy-rx0.c:18:0:
include/linux/clk.h:538:32: note: expected 'struct clk_bulk_data *' but
argument is of type 'struct clk_bulk_data *'
static inline int __must_check devm_clk_bulk_get(struct device *dev, int num_clks,
^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +356 drivers/phy/rockchip/phy-rockchip-dphy-rx0.c
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 258
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 259 static int rk_dphy_power_on(struct phy *phy)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 260 {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 261 struct rk_dphy *priv = phy_get_drvdata(phy);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 262 int ret;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 263
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 @264 ret = clk_bulk_enable(priv->drv_data->num_clks,
priv->clks);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 265 if (ret)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 266 return ret;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 267
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 268 rk_dphy_enable(priv);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 269
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 270 return 0;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 271 }
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 272
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 273 static int rk_dphy_power_off(struct phy *phy)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 274 {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 275 struct rk_dphy *priv = phy_get_drvdata(phy);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 276
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 277 rk_dphy_write_grf(priv, GRF_DPHY_RX0_ENABLE, 0);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 @278 clk_bulk_disable(priv->drv_data->num_clks,
priv->clks);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 279 return 0;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 280 }
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 281
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 282 static int rk_dphy_init(struct phy *phy)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 283 {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 284 struct rk_dphy *priv = phy_get_drvdata(phy);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 285
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 @286 return clk_bulk_prepare(priv->drv_data->num_clks,
priv->clks);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 287 }
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 288
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 289 static int rk_dphy_exit(struct phy *phy)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 290 {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 291 struct rk_dphy *priv = phy_get_drvdata(phy);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 292
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 @293 clk_bulk_unprepare(priv->drv_data->num_clks,
priv->clks);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 294 return 0;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 295 }
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 296
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 297 static const struct phy_ops rk_dphy_ops = {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 298 .power_on = rk_dphy_power_on,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 299 .power_off = rk_dphy_power_off,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 300 .init = rk_dphy_init,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 301 .exit = rk_dphy_exit,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 302 .configure = rk_dphy_configure,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 303 .owner = THIS_MODULE,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 304 };
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 305
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 306 static const struct rk_dphy_drv_data
rk3399_mipidphy_drv_data = {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 307 .clks = rk3399_mipidphy_clks,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 308 .num_clks = ARRAY_SIZE(rk3399_mipidphy_clks),
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 309 .hsfreq_ranges = rk3399_mipidphy_hsfreq_ranges,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 310 .num_hsfreq_ranges =
ARRAY_SIZE(rk3399_mipidphy_hsfreq_ranges),
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 311 .regs = rk3399_grf_dphy_regs,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 312 };
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 313
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 314 static const struct of_device_id rk_dphy_dt_ids[] = {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 315 {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 316 .compatible =
"rockchip,rk3399-mipi-dphy-rx0",
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 317 .data = &rk3399_mipidphy_drv_data,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 318 },
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 319 {}
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 320 };
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 321 MODULE_DEVICE_TABLE(of, rk_dphy_dt_ids);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 322
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 323 static int rk_dphy_probe(struct platform_device *pdev)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 324 {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 325 struct device *dev = &pdev->dev;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 326 struct device_node *np = dev->of_node;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 327 const struct rk_dphy_drv_data *drv_data;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 328 struct phy_provider *phy_provider;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 329 const struct of_device_id *of_id;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 330 struct rk_dphy *priv;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 331 struct phy *phy;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 332 unsigned int i;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 333 int ret;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 334
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 335 if (!dev->parent || !dev->parent->of_node)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 336 return -ENODEV;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 337
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 338 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 339 if (!priv)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 340 return -ENOMEM;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 341 priv->dev = dev;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 342
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 343 priv->grf =
syscon_node_to_regmap(dev->parent->of_node);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 344 if (IS_ERR(priv->grf)) {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 345 dev_err(dev, "Can't find GRF syscon\n");
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 346 return -ENODEV;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 347 }
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 348
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 349 of_id = of_match_device(rk_dphy_dt_ids, dev);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 350 if (!of_id)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 351 return -EINVAL;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 352
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 353 drv_data = of_id->data;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 354 priv->drv_data = drv_data;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 355 priv->clks = devm_kcalloc(&pdev->dev,
drv_data->num_clks,
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 @356 sizeof(*priv->clks), GFP_KERNEL);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 357 if (!priv->clks)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 358 return -ENOMEM;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 359 for (i = 0; i < drv_data->num_clks; i++)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 @360 priv->clks[i].id = drv_data->clks[i];
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 @361 ret = devm_clk_bulk_get(&pdev->dev,
drv_data->num_clks, priv->clks);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 362 if (ret)
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 363 return ret;
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 364
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 365 phy = devm_phy_create(dev, np, &rk_dphy_ops);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 366 if (IS_ERR(phy)) {
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 367 dev_err(dev, "failed to create phy\n");
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 368 return PTR_ERR(phy);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 369 }
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 370 phy_set_drvdata(phy, priv);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 371
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 372 phy_provider = devm_of_phy_provider_register(dev,
of_phy_simple_xlate);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 373
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 374 return PTR_ERR_OR_ZERO(phy_provider);
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 375 }
cd4fb7106ba2f9 drivers/staging/media/phy-rockchip-dphy-rx0/phy-rockchip-dphy-rx0.c
Ezequiel Garcia 2020-01-08 376
:::::: The code at line 356 was first introduced by commit
:::::: cd4fb7106ba2f96ff388ab7bb2e266691190d6cd UPSTREAM: media: staging:
phy-rockchip-dphy-rx0: add Rockchip MIPI Synopsys DPHY RX0 driver
:::::: TO: Ezequiel Garcia <ezequiel(a)collabora.com>
:::::: CC: Commit Bot <commit-bot(a)chromium.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org