Since commit b9cfd1d271ab ("fbdev/efifb: Use screen_info pointer from device")
efifb uses a local copy of screen_info and applies its modifications
there. Adapt the sysfs attributes to also work with the custom copy
instead of the unmodified platform data.

Signed-off-by: Thomas Weißschuh <li...@weissschuh.net>
---
 drivers/video/fbdev/efifb.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index 7215973ef602..1f86a07bf292 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -304,7 +304,7 @@ static ssize_t name##_show(struct device *dev,              
                \
                           struct device_attribute *attr,               \
                           char *buf)                                   \
 {                                                                      \
-       struct screen_info *si = dev_get_platdata(dev);                 \
+       struct screen_info *si = dev_get_drvdata(dev);                  \
        if (!si)                                                        \
                return -ENODEV;                                         \
        return sprintf(buf, fmt "\n", (si->lfb_##name));                \
@@ -369,6 +369,8 @@ static int efifb_probe(struct platform_device *dev)
        if (!si)
                return -ENOMEM;
 
+       dev_set_drvdata(&dev->dev, si);
+
        if (si->orig_video_isVGA != VIDEO_TYPE_EFI)
                return -ENODEV;
 

-- 
2.46.0

Reply via email to