Message ID | 4A08828B.7090106@gmail.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
At Mon, 11 May 2009 21:54:51 +0200, Roel Kluin wrote: > > To avoid direct access to the driver_data pointer in struct device, the > functions dev_get_drvdata() and dev_set_drvdata() should be used. > > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> The same fix has been already in Greg's tree (and thus in linux-next). Greg, is it OK that I take over your patch to sound git tree? thanks, Takashi > --- > diff --git a/sound/aoa/fabrics/layout.c b/sound/aoa/fabrics/layout.c > index fbf5c93..586965f 100644 > --- a/sound/aoa/fabrics/layout.c > +++ b/sound/aoa/fabrics/layout.c > @@ -1037,7 +1037,7 @@ static int aoa_fabric_layout_probe(struct soundbus_dev *sdev) > } > ldev->selfptr_headphone.ptr = ldev; > ldev->selfptr_lineout.ptr = ldev; > - sdev->ofdev.dev.driver_data = ldev; > + dev_set_drvdata(&sdev->ofdev.dev, ldev); > list_add(&ldev->list, &layouts_list); > layouts_list_items++; > > @@ -1081,7 +1081,7 @@ static int aoa_fabric_layout_probe(struct soundbus_dev *sdev) > > static int aoa_fabric_layout_remove(struct soundbus_dev *sdev) > { > - struct layout_dev *ldev = sdev->ofdev.dev.driver_data; > + struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev); > int i; > > for (i=0; i<MAX_CODECS_PER_BUS; i++) { > @@ -1114,7 +1114,7 @@ static int aoa_fabric_layout_remove(struct soundbus_dev *sdev) > #ifdef CONFIG_PM > static int aoa_fabric_layout_suspend(struct soundbus_dev *sdev, pm_message_t state) > { > - struct layout_dev *ldev = sdev->ofdev.dev.driver_data; > + struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev); > > if (ldev->gpio.methods && ldev->gpio.methods->all_amps_off) > ldev->gpio.methods->all_amps_off(&ldev->gpio); > @@ -1124,7 +1124,7 @@ static int aoa_fabric_layout_suspend(struct soundbus_dev *sdev, pm_message_t sta > > static int aoa_fabric_layout_resume(struct soundbus_dev *sdev) > { > - struct layout_dev *ldev = sdev->ofdev.dev.driver_data; > + struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev); > > if (ldev->gpio.methods && ldev->gpio.methods->all_amps_off) > ldev->gpio.methods->all_amps_restore(&ldev->gpio); > diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/core.c > index 418c84c..4e3b819 100644 > --- a/sound/aoa/soundbus/i2sbus/core.c > +++ b/sound/aoa/soundbus/i2sbus/core.c > @@ -358,14 +358,14 @@ static int i2sbus_probe(struct macio_dev* dev, const struct of_device_id *match) > return -ENODEV; > } > > - dev->ofdev.dev.driver_data = control; > + dev_set_drvdata(&dev->ofdev.dev, control); > > return 0; > } > > static int i2sbus_remove(struct macio_dev* dev) > { > - struct i2sbus_control *control = dev->ofdev.dev.driver_data; > + struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev); > struct i2sbus_dev *i2sdev, *tmp; > > list_for_each_entry_safe(i2sdev, tmp, &control->list, item) > @@ -377,7 +377,7 @@ static int i2sbus_remove(struct macio_dev* dev) > #ifdef CONFIG_PM > static int i2sbus_suspend(struct macio_dev* dev, pm_message_t state) > { > - struct i2sbus_control *control = dev->ofdev.dev.driver_data; > + struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev); > struct codec_info_item *cii; > struct i2sbus_dev* i2sdev; > int err, ret = 0; > @@ -407,7 +407,7 @@ static int i2sbus_suspend(struct macio_dev* dev, pm_message_t state) > > static int i2sbus_resume(struct macio_dev* dev) > { > - struct i2sbus_control *control = dev->ofdev.dev.driver_data; > + struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev); > struct codec_info_item *cii; > struct i2sbus_dev* i2sdev; > int err, ret = 0; > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel >
On Tue, May 12, 2009 at 08:40:05AM +0200, Takashi Iwai wrote: > At Mon, 11 May 2009 21:54:51 +0200, > Roel Kluin wrote: > > > > To avoid direct access to the driver_data pointer in struct device, the > > functions dev_get_drvdata() and dev_set_drvdata() should be used. > > > > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> > > The same fix has been already in Greg's tree (and thus in linux-next). > > Greg, is it OK that I take over your patch to sound git tree? Yes, please do, no objection from me at all. thanks, greg k-h
At Mon, 11 May 2009 23:57:43 -0700, Greg KH wrote: > > On Tue, May 12, 2009 at 08:40:05AM +0200, Takashi Iwai wrote: > > At Mon, 11 May 2009 21:54:51 +0200, > > Roel Kluin wrote: > > > > > > To avoid direct access to the driver_data pointer in struct device, the > > > functions dev_get_drvdata() and dev_set_drvdata() should be used. > > > > > > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> > > > > The same fix has been already in Greg's tree (and thus in linux-next). > > > > Greg, is it OK that I take over your patch to sound git tree? > > Yes, please do, no objection from me at all. OK, will do. BTW, should it be pushed to 2.6.30? If "the near future" you mentioned in the patch means 2.6.31, it'll be better to merge that fix now. Otherwise, I'm going to apply the patch as a 2.6.31 material. thanks, Takashi
On Tue, May 12, 2009 at 09:23:47AM +0200, Takashi Iwai wrote: > At Mon, 11 May 2009 23:57:43 -0700, > Greg KH wrote: > > > > On Tue, May 12, 2009 at 08:40:05AM +0200, Takashi Iwai wrote: > > > At Mon, 11 May 2009 21:54:51 +0200, > > > Roel Kluin wrote: > > > > > > > > To avoid direct access to the driver_data pointer in struct device, the > > > > functions dev_get_drvdata() and dev_set_drvdata() should be used. > > > > > > > > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> > > > > > > The same fix has been already in Greg's tree (and thus in linux-next). > > > > > > Greg, is it OK that I take over your patch to sound git tree? > > > > Yes, please do, no objection from me at all. > > OK, will do. > > BTW, should it be pushed to 2.6.30? If "the near future" you > mentioned in the patch means 2.6.31, it'll be better to merge that fix > now. Otherwise, I'm going to apply the patch as a 2.6.31 material. .31 is fine, that is what I was meaning by with "near future" :) thanks, greg k-h
At Tue, 12 May 2009 16:05:14 -0700, Greg KH wrote: > > On Tue, May 12, 2009 at 09:23:47AM +0200, Takashi Iwai wrote: > > At Mon, 11 May 2009 23:57:43 -0700, > > Greg KH wrote: > > > > > > On Tue, May 12, 2009 at 08:40:05AM +0200, Takashi Iwai wrote: > > > > At Mon, 11 May 2009 21:54:51 +0200, > > > > Roel Kluin wrote: > > > > > > > > > > To avoid direct access to the driver_data pointer in struct device, the > > > > > functions dev_get_drvdata() and dev_set_drvdata() should be used. > > > > > > > > > > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> > > > > > > > > The same fix has been already in Greg's tree (and thus in linux-next). > > > > > > > > Greg, is it OK that I take over your patch to sound git tree? > > > > > > Yes, please do, no objection from me at all. > > > > OK, will do. > > > > BTW, should it be pushed to 2.6.30? If "the near future" you > > mentioned in the patch means 2.6.31, it'll be better to merge that fix > > now. Otherwise, I'm going to apply the patch as a 2.6.31 material. > > .31 is fine, that is what I was meaning by with "near future" :) OK, thanks! Takashi
diff --git a/sound/aoa/fabrics/layout.c b/sound/aoa/fabrics/layout.c index fbf5c93..586965f 100644 --- a/sound/aoa/fabrics/layout.c +++ b/sound/aoa/fabrics/layout.c @@ -1037,7 +1037,7 @@ static int aoa_fabric_layout_probe(struct soundbus_dev *sdev) } ldev->selfptr_headphone.ptr = ldev; ldev->selfptr_lineout.ptr = ldev; - sdev->ofdev.dev.driver_data = ldev; + dev_set_drvdata(&sdev->ofdev.dev, ldev); list_add(&ldev->list, &layouts_list); layouts_list_items++; @@ -1081,7 +1081,7 @@ static int aoa_fabric_layout_probe(struct soundbus_dev *sdev) static int aoa_fabric_layout_remove(struct soundbus_dev *sdev) { - struct layout_dev *ldev = sdev->ofdev.dev.driver_data; + struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev); int i; for (i=0; i<MAX_CODECS_PER_BUS; i++) { @@ -1114,7 +1114,7 @@ static int aoa_fabric_layout_remove(struct soundbus_dev *sdev) #ifdef CONFIG_PM static int aoa_fabric_layout_suspend(struct soundbus_dev *sdev, pm_message_t state) { - struct layout_dev *ldev = sdev->ofdev.dev.driver_data; + struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev); if (ldev->gpio.methods && ldev->gpio.methods->all_amps_off) ldev->gpio.methods->all_amps_off(&ldev->gpio); @@ -1124,7 +1124,7 @@ static int aoa_fabric_layout_suspend(struct soundbus_dev *sdev, pm_message_t sta static int aoa_fabric_layout_resume(struct soundbus_dev *sdev) { - struct layout_dev *ldev = sdev->ofdev.dev.driver_data; + struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev); if (ldev->gpio.methods && ldev->gpio.methods->all_amps_off) ldev->gpio.methods->all_amps_restore(&ldev->gpio); diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/core.c index 418c84c..4e3b819 100644 --- a/sound/aoa/soundbus/i2sbus/core.c +++ b/sound/aoa/soundbus/i2sbus/core.c @@ -358,14 +358,14 @@ static int i2sbus_probe(struct macio_dev* dev, const struct of_device_id *match) return -ENODEV; } - dev->ofdev.dev.driver_data = control; + dev_set_drvdata(&dev->ofdev.dev, control); return 0; } static int i2sbus_remove(struct macio_dev* dev) { - struct i2sbus_control *control = dev->ofdev.dev.driver_data; + struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev); struct i2sbus_dev *i2sdev, *tmp; list_for_each_entry_safe(i2sdev, tmp, &control->list, item) @@ -377,7 +377,7 @@ static int i2sbus_remove(struct macio_dev* dev) #ifdef CONFIG_PM static int i2sbus_suspend(struct macio_dev* dev, pm_message_t state) { - struct i2sbus_control *control = dev->ofdev.dev.driver_data; + struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev); struct codec_info_item *cii; struct i2sbus_dev* i2sdev; int err, ret = 0; @@ -407,7 +407,7 @@ static int i2sbus_suspend(struct macio_dev* dev, pm_message_t state) static int i2sbus_resume(struct macio_dev* dev) { - struct i2sbus_control *control = dev->ofdev.dev.driver_data; + struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev); struct codec_info_item *cii; struct i2sbus_dev* i2sdev; int err, ret = 0;
To avoid direct access to the driver_data pointer in struct device, the functions dev_get_drvdata() and dev_set_drvdata() should be used. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> ---