Store the ROM's parent device in each STI struct, so we can associate
the STI framebuffer with a device.

The new field will eventually replace the fbdev subsystem's info field,
which the function fb_is_primary_device() currently requires to detect
the firmware's output. By using the device instead of the framebuffer
info, a later patch can generalize the helper for use in non-fbdev code.

Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
---
 drivers/video/sticore.c | 5 +++++
 include/video/sticore.h | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/drivers/video/sticore.c b/drivers/video/sticore.c
index c3765ad6eedf..7115b325817f 100644
--- a/drivers/video/sticore.c
+++ b/drivers/video/sticore.c
@@ -1041,6 +1041,9 @@ static int __init sticore_pa_init(struct parisc_device 
*dev)
 
        print_pa_hwpath(dev, sti->pa_path);
        sticore_check_for_default_sti(sti, sti->pa_path);
+
+       sti->dev = &dev->dev;
+
        return 0;
 }
 
@@ -1084,6 +1087,8 @@ static int sticore_pci_init(struct pci_dev *pd, const 
struct pci_device_id *ent)
                pr_warn("Unable to handle STI device '%s'\n", pci_name(pd));
                return -ENODEV;
        }
+
+       sti->dev = &pd->dev;
 #endif /* CONFIG_PCI */
 
        return 0;
diff --git a/include/video/sticore.h b/include/video/sticore.h
index 012b5b46ad7d..9d993e22805d 100644
--- a/include/video/sticore.h
+++ b/include/video/sticore.h
@@ -2,6 +2,7 @@
 #ifndef STICORE_H
 #define STICORE_H
 
+struct device;
 struct fb_info;
 
 /* generic STI structures & functions */
@@ -370,6 +371,9 @@ struct sti_struct {
        /* pointer to the fb_info where this STI device is used */
        struct fb_info *info;
 
+       /* pointer to the parent device */
+       struct device *dev;
+
        /* pointer to all internal data */
        struct sti_all_data *sti_data;
 
-- 
2.43.0

Reply via email to