Commit b046f984 authored by Helge Deller's avatar Helge Deller
Browse files

parisc/stifb: Keep track of hardware path of graphics card



Keep the pa_path (hardware path) of the graphics card in sti_struct and use
this info to give more useful info which card is currently being used.

Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Cc: stable@vger.kernel.org   # v5.10+
parent cf936af7
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@
#include <linux/slab.h>
#include <linux/font.h>
#include <linux/crc32.h>
#include <linux/fb.h>

#include <asm/io.h>

@@ -392,7 +393,9 @@ static int __init sticonsole_init(void)
    for (i = 0; i < MAX_NR_CONSOLES; i++)
	font_data[i] = STI_DEF_FONT;

    pr_info("sticon: Initializing STI text console.\n");
    pr_info("sticon: Initializing STI text console on %s at [%s]\n",
	sticon_sti->sti_data->inq_outptr.dev_name,
	sticon_sti->pa_path);
    console_lock();
    err = do_take_over_console(&sti_con, 0, MAX_NR_CONSOLES - 1,
		PAGE0->mem_cons.cl_class != CL_DUPLEX);
+7 −8
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@

#include "../fbdev/sticore.h"

#define STI_DRIVERVERSION "Version 0.9b"
#define STI_DRIVERVERSION "Version 0.9c"

static struct sti_struct *default_sti __read_mostly;

@@ -503,7 +503,7 @@ sti_select_fbfont(struct sti_cooked_rom *cooked_rom, const char *fbfont_name)
	if (!fbfont)
		return NULL;

	pr_info("STI selected %ux%u framebuffer font %s for sticon\n",
	pr_info("    using %ux%u framebuffer font %s\n",
			fbfont->width, fbfont->height, fbfont->name);
			
	bpc = ((fbfont->width+7)/8) * fbfont->height; 
@@ -947,6 +947,7 @@ static struct sti_struct *sti_try_rom_generic(unsigned long address,

static void sticore_check_for_default_sti(struct sti_struct *sti, char *path)
{
	pr_info("    located at [%s]\n", sti->pa_path);
	if (strcmp (path, default_sti_path) == 0)
		default_sti = sti;
}
@@ -958,7 +959,6 @@ static void sticore_check_for_default_sti(struct sti_struct *sti, char *path)
 */
static int __init sticore_pa_init(struct parisc_device *dev)
{
	char pa_path[21];
	struct sti_struct *sti = NULL;
	int hpa = dev->hpa.start;

@@ -971,8 +971,8 @@ static int __init sticore_pa_init(struct parisc_device *dev)
	if (!sti)
		return 1;

	print_pa_hwpath(dev, pa_path);
	sticore_check_for_default_sti(sti, pa_path);
	print_pa_hwpath(dev, sti->pa_path);
	sticore_check_for_default_sti(sti, sti->pa_path);
	return 0;
}

@@ -1008,9 +1008,8 @@ static int sticore_pci_init(struct pci_dev *pd, const struct pci_device_id *ent)

	sti = sti_try_rom_generic(rom_base, fb_base, pd);
	if (sti) {
		char pa_path[30];
		print_pci_hwpath(pd, pa_path);
		sticore_check_for_default_sti(sti, pa_path);
		print_pci_hwpath(pd, sti->pa_path);
		sticore_check_for_default_sti(sti, sti->pa_path);
	}
	
	if (!sti) {
+3 −0
Original line number Diff line number Diff line
@@ -370,6 +370,9 @@ struct sti_struct {

	/* pointer to all internal data */
	struct sti_all_data *sti_data;

	/* pa_path of this device */
	char pa_path[24];
};