Message ID | 20240713074005.66254-1-luke@ljones.dev (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | Fixes: ae834a549ec1 ("platform/x86: asus-wmi: add support variant of TUF RGB") | expand |
On Sat, 13 Jul 2024, Luke D. Jones wrote: > In kbd_rgb_mode_store the dev_get_drvdata() call was assuming the device > data was asus_wmi when it was actually led_classdev. > > This patch corrects this by making the correct chain of calls to get the > asus_wmi driver data. > > Tested-by: Denis Benato <benato.denis96@gmail.com> > Signed-off-by: Luke D. Jones <luke@ljones.dev> Your tags seem messed up, Fixes is in Subject in place of shortlog that is completely missing. Could you please correct these issues and resubmit, thank you.
On Mon, 15 Jul 2024, at 9:27 PM, Ilpo Järvinen wrote: > On Sat, 13 Jul 2024, Luke D. Jones wrote: > > > In kbd_rgb_mode_store the dev_get_drvdata() call was assuming the device > > data was asus_wmi when it was actually led_classdev. > > > > This patch corrects this by making the correct chain of calls to get the > > asus_wmi driver data. > > > > Tested-by: Denis Benato <benato.denis96@gmail.com> > > Signed-off-by: Luke D. Jones <luke@ljones.dev> > > Your tags seem messed up, Fixes is in Subject in place of shortlog that is > completely missing. > > Could you please correct these issues and resubmit, thank you. Looks like I misunderstood something somewhere. Will resubmit. > > -- > i. > > > --- > > drivers/platform/x86/asus-wmi.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c > > index 799d928c7d3d..2935af013535 100644 > > --- a/drivers/platform/x86/asus-wmi.c > > +++ b/drivers/platform/x86/asus-wmi.c > > @@ -879,10 +879,14 @@ static ssize_t kbd_rgb_mode_store(struct device *dev, > > struct device_attribute *attr, > > const char *buf, size_t count) > > { > > - struct asus_wmi *asus = dev_get_drvdata(dev); > > u32 cmd, mode, r, g, b, speed; > > + struct led_classdev *led; > > + struct asus_wmi *asus; > > int err; > > > > + led = dev_get_drvdata(dev); > > + asus = container_of(led, struct asus_wmi, kbd_led); > > + > > if (sscanf(buf, "%d %d %d %d %d %d", &cmd, &mode, &r, &g, &b, &speed) != 6) > > return -EINVAL; > > > > >
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c index 799d928c7d3d..2935af013535 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c @@ -879,10 +879,14 @@ static ssize_t kbd_rgb_mode_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { - struct asus_wmi *asus = dev_get_drvdata(dev); u32 cmd, mode, r, g, b, speed; + struct led_classdev *led; + struct asus_wmi *asus; int err; + led = dev_get_drvdata(dev); + asus = container_of(led, struct asus_wmi, kbd_led); + if (sscanf(buf, "%d %d %d %d %d %d", &cmd, &mode, &r, &g, &b, &speed) != 6) return -EINVAL;