> Subject: Re: [RFC 04/20] RDMA/irdma: Add driver framework definitions > > On Thu, Sep 26, 2019 at 08:02:15PM +0200, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > On Thu, Sep 26, 2019 at 04:55:12PM +0000, Jason Gunthorpe wrote: > > > On Thu, Sep 26, 2019 at 09:45:03AM -0700, Jeff Kirsher wrote: > > > > +int i40iw_probe(struct platform_device *pdev) { > > > > + struct i40e_peer_dev_platform_data *pdata = > > > > + dev_get_platdata(&pdev->dev); > > > > + struct i40e_info *ldev; > > > > > > I thought Greg already said not to use platform_device for this? > > > > Yes I did, which is what I thought this whole "use MFD" was supposed > > to solve. Why is a platform device still being used here? > > Looks like when mfd creates the 'multi' devices it creates them as > platform_devices > > /* > * Given a platform device that's been created by mfd_add_devices(), fetch > * the mfd_cell that created it. > */ > static inline const struct mfd_cell *mfd_get_cell(struct platform_device *pdev) > > Jason That's right. We used the MFD framework. mfd_add_devices() registers the child devices as platform devs. And the function drivers probe() will get a platform dev. Shiraz