]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/platforms/ps3/os-area.c
[POWERPC] PS3: Cleanup of os-area.c
[linux-2.6-omap-h63xx.git] / arch / powerpc / platforms / ps3 / os-area.c
index 58358305dc10061bebe54a4b0b6281c6b82bd9f2..ee463d0f87ad7a5f2f81506df0027afb32caa5e1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  PS3 'Other OS' area data.
+ *  PS3 flash memory os area.
  *
  *  Copyright (C) 2006 Sony Computer Entertainment Inc.
  *  Copyright 2006 Sony Corp.
@@ -22,7 +22,6 @@
 #include <linux/io.h>
 
 #include <asm/lmb.h>
-#include <asm/ps3.h>
 
 #include "platform.h"
 
@@ -30,7 +29,7 @@ enum {
        OS_AREA_SEGMENT_SIZE = 0X200,
 };
 
-enum {
+enum os_area_ldr_format {
        HEADER_LDR_FORMAT_RAW = 0,
        HEADER_LDR_FORMAT_GZIP = 1,
 };
@@ -51,7 +50,7 @@ enum {
  */
 
 struct os_area_header {
-       s8 magic_num[16];
+       u8 magic_num[16];
        u32 hdr_version;
        u32 os_area_offset;
        u32 ldr_area_offset;
@@ -59,21 +58,14 @@ struct os_area_header {
        u32 ldr_format;
        u32 ldr_size;
        u32 _reserved_2[6];
-} __attribute__ ((packed));
+};
 
-enum {
+enum os_area_boot_flag {
        PARAM_BOOT_FLAG_GAME_OS = 0,
        PARAM_BOOT_FLAG_OTHER_OS = 1,
 };
 
-enum {
-       PARAM_AV_MULTI_OUT_NTSC = 0,
-       PARAM_AV_MULTI_OUT_PAL_RGB = 1,
-       PARAM_AV_MULTI_OUT_PAL_YCBCR = 2,
-       PARAM_AV_MULTI_OUT_SECAM = 3,
-};
-
-enum {
+enum os_area_ctrl_button {
        PARAM_CTRL_BUTTON_O_IS_YES = 0,
        PARAM_CTRL_BUTTON_X_IS_YES = 1,
 };
@@ -92,6 +84,9 @@ enum {
  * @dns_primary: User preference of static primary dns server.
  * @dns_secondary: User preference of static secondary dns server.
  *
+ * The ps3 rtc maintains a read-only value that approximates seconds since
+ * 2000-01-01 00:00:00 UTC.
+ *
  * User preference of zero for static_ip_addr means use dhcp.
  */
 
@@ -114,7 +109,9 @@ struct os_area_params {
        u8 dns_primary[4];
        u8 dns_secondary[4];
        u8 _reserved_5[8];
-} __attribute__ ((packed));
+};
+
+#define SECONDS_FROM_1970_TO_2000 946684800LL
 
 /**
  * struct saved_params - Static working copies of data from the 'Other OS' area.
@@ -141,7 +138,7 @@ struct saved_params {
 } static saved_params;
 
 #define dump_header(_a) _dump_header(_a, __func__, __LINE__)
-static void _dump_header(const struct os_area_header __iomem *h, const char* func,
+static void _dump_header(const struct os_area_header *h, const char *func,
        int line)
 {
        pr_debug("%s:%d: h.magic_num:         '%s'\n", func, line,
@@ -159,7 +156,7 @@ static void _dump_header(const struct os_area_header __iomem *h, const char* fun
 }
 
 #define dump_params(_a) _dump_params(_a, __func__, __LINE__)
-static void _dump_params(const struct os_area_params __iomem *p, const char* func,
+static void _dump_params(const struct os_area_params *p, const char *func,
        int line)
 {
        pr_debug("%s:%d: p.boot_flag:       %u\n", func, line, p->boot_flag);
@@ -221,7 +218,8 @@ int __init ps3_os_area_init(void)
        }
 
        header = (struct os_area_header *)__va(lpar_addr);
-       params = (struct os_area_params *)__va(lpar_addr + OS_AREA_SEGMENT_SIZE);
+       params = (struct os_area_params *)__va(lpar_addr
+               + OS_AREA_SEGMENT_SIZE);
 
        result = verify_header(header);
 
@@ -246,14 +244,21 @@ int __init ps3_os_area_init(void)
 }
 
 /**
- * ps3_os_area_rtc_diff - Returns the ps3 rtc diff value.
- *
- * The ps3 rtc maintains a value that approximates seconds since
- * 2000-01-01 00:00:00 UTC.  Returns the exact number of seconds from 1970 to
- * 2000 when saved_params.rtc_diff has not been properly set up.
+ * ps3_os_area_rtc_diff - Returns the rtc diff value.
  */
 
 u64 ps3_os_area_rtc_diff(void)
 {
-       return saved_params.rtc_diff ? saved_params.rtc_diff : 946684800UL;
+       return saved_params.rtc_diff ? saved_params.rtc_diff
+               : SECONDS_FROM_1970_TO_2000;
+}
+
+/**
+ * ps3_os_area_get_av_multi_out - Returns the default video mode.
+ */
+
+enum ps3_param_av_multi_out ps3_os_area_get_av_multi_out(void)
+{
+    return saved_params.av_multi_out;
 }
+EXPORT_SYMBOL_GPL(ps3_os_area_get_av_multi_out);