提交 d7dd91ff 编写于 作者: G Geert Uytterhoeven 提交者: Linus Torvalds

ps3fb: default to 480p on DVI-D/HDMI if video=safe

Default to the 480p video mode on DVI-D and HDMI displays if `video=safe' is
passed on the kernel command line.

This is intended to be used by `kboot'-style boot loaders (i.e. first-stage
kernels) for the PS3, to provide a failsafe video mode.
Signed-off-by: NGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 9a054fba
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/notifier.h> #include <linux/notifier.h>
#include <linux/ioctl.h> #include <linux/ioctl.h>
#include <linux/fb.h>
#include <asm/firmware.h> #include <asm/firmware.h>
#include <asm/ps3av.h> #include <asm/ps3av.h>
...@@ -33,6 +34,8 @@ ...@@ -33,6 +34,8 @@
#define BUFSIZE 4096 /* vuart buf size */ #define BUFSIZE 4096 /* vuart buf size */
#define PS3AV_BUF_SIZE 512 /* max packet size */ #define PS3AV_BUF_SIZE 512 /* max packet size */
static int safe_mode;
static int timeout = 5000; /* in msec ( 5 sec ) */ static int timeout = 5000; /* in msec ( 5 sec ) */
module_param(timeout, int, 0644); module_param(timeout, int, 0644);
...@@ -639,6 +642,9 @@ static int ps3av_hdmi_get_id(struct ps3av_info_monitor *info) ...@@ -639,6 +642,9 @@ static int ps3av_hdmi_get_id(struct ps3av_info_monitor *info)
{ {
int id; int id;
if (safe_mode)
return PS3AV_DEFAULT_HDMI_MODE_ID_REG_60;
/* check native resolution */ /* check native resolution */
id = ps3av_resbit2id(info->res_50.native, info->res_60.native, id = ps3av_resbit2id(info->res_50.native, info->res_60.native,
info->res_vesa.native); info->res_vesa.native);
...@@ -1021,7 +1027,14 @@ static int ps3av_probe(struct ps3_system_bus_device *dev) ...@@ -1021,7 +1027,14 @@ static int ps3av_probe(struct ps3_system_bus_device *dev)
res); res);
ps3av_get_hw_conf(ps3av); ps3av_get_hw_conf(ps3av);
#ifdef CONFIG_FB
if (fb_mode_option && !strcmp(fb_mode_option, "safe"))
safe_mode = 1;
#endif /* CONFIG_FB */
id = ps3av_auto_videomode(&ps3av->av_hw_conf); id = ps3av_auto_videomode(&ps3av->av_hw_conf);
safe_mode = 0;
mutex_lock(&ps3av->mutex); mutex_lock(&ps3av->mutex);
ps3av->ps3av_mode = id; ps3av->ps3av_mode = id;
mutex_unlock(&ps3av->mutex); mutex_unlock(&ps3av->mutex);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册