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

Reply via email to