mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 10:56:40 +00:00
staging: sm7xxfb: minor maintenance on sm7xx_vga_setup
This patch keeps code related to sm7xx_vga_setup closed. It is useful to understand/maintain the logic behind sm7xx_vga_setup with a simple look. Tested with SM712. Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
03e9e70917
commit
1df7e0e234
@ -34,8 +34,6 @@
|
||||
|
||||
#include "sm7xx.h"
|
||||
|
||||
struct screen_info smtc_scr_info;
|
||||
|
||||
/*
|
||||
* Private structure
|
||||
*/
|
||||
@ -56,30 +54,6 @@ struct smtcfb_info {
|
||||
u_int hz;
|
||||
};
|
||||
|
||||
struct vesa_mode {
|
||||
char index[6];
|
||||
u16 lfb_width;
|
||||
u16 lfb_height;
|
||||
u16 lfb_depth;
|
||||
};
|
||||
|
||||
static struct vesa_mode vesa_mode_table[] = {
|
||||
{"0x301", 640, 480, 8},
|
||||
{"0x303", 800, 600, 8},
|
||||
{"0x305", 1024, 768, 8},
|
||||
{"0x307", 1280, 1024, 8},
|
||||
|
||||
{"0x311", 640, 480, 16},
|
||||
{"0x314", 800, 600, 16},
|
||||
{"0x317", 1024, 768, 16},
|
||||
{"0x31A", 1280, 1024, 16},
|
||||
|
||||
{"0x312", 640, 480, 24},
|
||||
{"0x315", 800, 600, 24},
|
||||
{"0x318", 1024, 768, 24},
|
||||
{"0x31B", 1280, 1024, 24},
|
||||
};
|
||||
|
||||
char __iomem *smtc_RegBaseAddress; /* Memory Map IO starting address */
|
||||
char __iomem *smtc_VRAMBaseAddress; /* video memory starting address */
|
||||
|
||||
@ -108,6 +82,59 @@ static struct fb_fix_screeninfo smtcfb_fix = {
|
||||
.accel = FB_ACCEL_SMI_LYNX,
|
||||
};
|
||||
|
||||
struct vesa_mode {
|
||||
char index[6];
|
||||
u16 lfb_width;
|
||||
u16 lfb_height;
|
||||
u16 lfb_depth;
|
||||
};
|
||||
|
||||
static struct vesa_mode vesa_mode_table[] = {
|
||||
{"0x301", 640, 480, 8},
|
||||
{"0x303", 800, 600, 8},
|
||||
{"0x305", 1024, 768, 8},
|
||||
{"0x307", 1280, 1024, 8},
|
||||
|
||||
{"0x311", 640, 480, 16},
|
||||
{"0x314", 800, 600, 16},
|
||||
{"0x317", 1024, 768, 16},
|
||||
{"0x31A", 1280, 1024, 16},
|
||||
|
||||
{"0x312", 640, 480, 24},
|
||||
{"0x315", 800, 600, 24},
|
||||
{"0x318", 1024, 768, 24},
|
||||
{"0x31B", 1280, 1024, 24},
|
||||
};
|
||||
|
||||
struct screen_info smtc_scr_info;
|
||||
|
||||
/* process command line options, get vga parameter */
|
||||
static int __init sm7xx_vga_setup(char *options)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!options || !*options)
|
||||
return -EINVAL;
|
||||
|
||||
smtc_scr_info.lfb_width = 0;
|
||||
smtc_scr_info.lfb_height = 0;
|
||||
smtc_scr_info.lfb_depth = 0;
|
||||
|
||||
pr_debug("sm7xx_vga_setup = %s\n", options);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(vesa_mode_table); i++) {
|
||||
if (strstr(options, vesa_mode_table[i].index)) {
|
||||
smtc_scr_info.lfb_width = vesa_mode_table[i].lfb_width;
|
||||
smtc_scr_info.lfb_height = vesa_mode_table[i].lfb_height;
|
||||
smtc_scr_info.lfb_depth = vesa_mode_table[i].lfb_depth;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
__setup("vga=", sm7xx_vga_setup);
|
||||
|
||||
static void sm712_set_timing(struct smtcfb_info *sfb)
|
||||
{
|
||||
int i = 0, j = 0;
|
||||
@ -756,33 +783,6 @@ static inline void sm7xx_init_hw(void)
|
||||
outb_p(0x11, 0x3c5);
|
||||
}
|
||||
|
||||
/* process command line options, get vga parameter */
|
||||
static int __init sm7xx_vga_setup(char *options)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!options || !*options)
|
||||
return -EINVAL;
|
||||
|
||||
smtc_scr_info.lfb_width = 0;
|
||||
smtc_scr_info.lfb_height = 0;
|
||||
smtc_scr_info.lfb_depth = 0;
|
||||
|
||||
pr_debug("sm7xx_vga_setup = %s\n", options);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(vesa_mode_table); i++) {
|
||||
if (strstr(options, vesa_mode_table[i].index)) {
|
||||
smtc_scr_info.lfb_width = vesa_mode_table[i].lfb_width;
|
||||
smtc_scr_info.lfb_height = vesa_mode_table[i].lfb_height;
|
||||
smtc_scr_info.lfb_depth = vesa_mode_table[i].lfb_depth;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
__setup("vga=", sm7xx_vga_setup);
|
||||
|
||||
static int __devinit smtcfb_pci_probe(struct pci_dev *pdev,
|
||||
const struct pci_device_id *ent)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user