On Tue, Jun 25, 2013 at 11:47:13PM +0200, Sylwester Nawrocki wrote: > Hi, > > On 06/25/2013 10:54 PM, Felipe Balbi wrote: > >>>>+static int exynos_video_phy_probe(struct platform_device *pdev) > >>>>> >> +{ > >>>>> >> + struct exynos_video_phy *state; > >>>>> >> + struct device *dev =&pdev->dev; > >>>>> >> + struct resource *res; > >>>>> >> + struct phy_provider *phy_provider; > >>>>> >> + int i; > >>>>> >> + > >>>>> >> + state = devm_kzalloc(dev, sizeof(*state), GFP_KERNEL); > >>>>> >> + if (!state) > >>>>> >> + return -ENOMEM; > >>>>> >> + > >>>>> >> + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > >>>>> >> + > >>>>> >> + state->regs = devm_ioremap_resource(dev, res); > >>>>> >> + if (IS_ERR(state->regs)) > >>>>> >> + return PTR_ERR(state->regs); > >>>>> >> + > >>>>> >> + dev_set_drvdata(dev, state); > >>>> > > >>>> > you can use platform_set_drvdata(pdev, state); > >>> > >>> I had it in the previous version, but changed for symmetry with > >>> dev_set_drvdata(). I guess those could be replaced with > >>> phy_{get, set}_drvdata as you suggested. > > > >hmm, you do need to set the drvdata() to the phy object, but also to the > >pdev object (should you need it on a suspend/resume callback, for > >instance). Those are separate struct device instances. > > Indeed, I somehow confused phy->dev with with phy->dev.parent. I'm going > to just drop the above call, since the pdev drvdata is currently not > referenced anywhere. ok cool :-) -- balbi
Attachment:
signature.asc
Description: Digital signature