aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ps3
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ps3')
-rw-r--r--drivers/ps3/ps3av.c72
-rw-r--r--drivers/ps3/ps3av_cmd.c66
2 files changed, 67 insertions, 71 deletions
diff --git a/drivers/ps3/ps3av.c b/drivers/ps3/ps3av.c
index a1f63cb849d2..c1bcad66ce75 100644
--- a/drivers/ps3/ps3av.c
+++ b/drivers/ps3/ps3av.c
@@ -656,6 +656,64 @@ static int ps3av_hdmi_get_vid(struct ps3av_info_monitor *info)
656 return vid; 656 return vid;
657} 657}
658 658
659static void ps3av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *monitor_info)
660{
661 const struct ps3av_info_monitor *info = &monitor_info->info;
662 const struct ps3av_info_audio *audio = info->audio;
663 char id[sizeof(info->monitor_id)*3+1];
664 int i;
665
666 pr_debug("Monitor Info: size %u\n", monitor_info->send_hdr.size);
667
668 pr_debug("avport: %02x\n", info->avport);
669 for (i = 0; i < sizeof(info->monitor_id); i++)
670 sprintf(&id[i*3], " %02x", info->monitor_id[i]);
671 pr_debug("monitor_id: %s\n", id);
672 pr_debug("monitor_type: %02x\n", info->monitor_type);
673 pr_debug("monitor_name: %.*s\n", (int)sizeof(info->monitor_name),
674 info->monitor_name);
675
676 /* resolution */
677 pr_debug("resolution_60: bits: %08x native: %08x\n",
678 info->res_60.res_bits, info->res_60.native);
679 pr_debug("resolution_50: bits: %08x native: %08x\n",
680 info->res_50.res_bits, info->res_50.native);
681 pr_debug("resolution_other: bits: %08x native: %08x\n",
682 info->res_other.res_bits, info->res_other.native);
683 pr_debug("resolution_vesa: bits: %08x native: %08x\n",
684 info->res_vesa.res_bits, info->res_vesa.native);
685
686 /* color space */
687 pr_debug("color space rgb: %02x\n", info->cs.rgb);
688 pr_debug("color space yuv444: %02x\n", info->cs.yuv444);
689 pr_debug("color space yuv422: %02x\n", info->cs.yuv422);
690
691 /* color info */
692 pr_debug("color info red: X %04x Y %04x\n", info->color.red_x,
693 info->color.red_y);
694 pr_debug("color info green: X %04x Y %04x\n", info->color.green_x,
695 info->color.green_y);
696 pr_debug("color info blue: X %04x Y %04x\n", info->color.blue_x,
697 info->color.blue_y);
698 pr_debug("color info white: X %04x Y %04x\n", info->color.white_x,
699 info->color.white_y);
700 pr_debug("color info gamma: %08x\n", info->color.gamma);
701
702 /* other info */
703 pr_debug("supported_AI: %02x\n", info->supported_ai);
704 pr_debug("speaker_info: %02x\n", info->speaker_info);
705 pr_debug("num of audio: %02x\n", info->num_of_audio_block);
706
707 /* audio block */
708 for (i = 0; i < info->num_of_audio_block; i++) {
709 pr_debug("audio[%d] type: %02x max_ch: %02x fs: %02x sbit: "
710 "%02x\n",
711 i, audio->type, audio->max_num_of_ch, audio->fs,
712 audio->sbit);
713 audio++;
714 }
715}
716
659static int ps3av_auto_videomode(struct ps3av_pkt_av_get_hw_conf *av_hw_conf, 717static int ps3av_auto_videomode(struct ps3av_pkt_av_get_hw_conf *av_hw_conf,
660 int boot) 718 int boot)
661{ 719{
@@ -671,7 +729,7 @@ static int ps3av_auto_videomode(struct ps3av_pkt_av_get_hw_conf *av_hw_conf,
671 if (res < 0) 729 if (res < 0)
672 return -1; 730 return -1;
673 731
674 ps3av_cmd_av_monitor_info_dump(&monitor_info); 732 ps3av_monitor_info_dump(&monitor_info);
675 info = &monitor_info.info; 733 info = &monitor_info.info;
676 /* check DVI */ 734 /* check DVI */
677 if (info->monitor_type == PS3AV_MONITOR_TYPE_DVI) { 735 if (info->monitor_type == PS3AV_MONITOR_TYPE_DVI) {
@@ -727,23 +785,27 @@ static int ps3av_auto_videomode(struct ps3av_pkt_av_get_hw_conf *av_hw_conf,
727static int ps3av_get_hw_conf(struct ps3av *ps3av) 785static int ps3av_get_hw_conf(struct ps3av *ps3av)
728{ 786{
729 int i, j, k, res; 787 int i, j, k, res;
788 const struct ps3av_pkt_av_get_hw_conf *hw_conf;
730 789
731 /* get av_hw_conf */ 790 /* get av_hw_conf */
732 res = ps3av_cmd_av_get_hw_conf(&ps3av->av_hw_conf); 791 res = ps3av_cmd_av_get_hw_conf(&ps3av->av_hw_conf);
733 if (res < 0) 792 if (res < 0)
734 return -1; 793 return -1;
735 794
736 ps3av_cmd_av_hw_conf_dump(&ps3av->av_hw_conf); 795 hw_conf = &ps3av->av_hw_conf;
796 pr_debug("av_h_conf: num of hdmi: %u\n", hw_conf->num_of_hdmi);
797 pr_debug("av_h_conf: num of avmulti: %u\n", hw_conf->num_of_avmulti);
798 pr_debug("av_h_conf: num of spdif: %u\n", hw_conf->num_of_spdif);
737 799
738 for (i = 0; i < PS3AV_HEAD_MAX; i++) 800 for (i = 0; i < PS3AV_HEAD_MAX; i++)
739 ps3av->head[i] = PS3AV_CMD_VIDEO_HEAD_A + i; 801 ps3av->head[i] = PS3AV_CMD_VIDEO_HEAD_A + i;
740 for (i = 0; i < PS3AV_OPT_PORT_MAX; i++) 802 for (i = 0; i < PS3AV_OPT_PORT_MAX; i++)
741 ps3av->opt_port[i] = PS3AV_CMD_AVPORT_SPDIF_0 + i; 803 ps3av->opt_port[i] = PS3AV_CMD_AVPORT_SPDIF_0 + i;
742 for (i = 0; i < ps3av->av_hw_conf.num_of_hdmi; i++) 804 for (i = 0; i < hw_conf->num_of_hdmi; i++)
743 ps3av->av_port[i] = PS3AV_CMD_AVPORT_HDMI_0 + i; 805 ps3av->av_port[i] = PS3AV_CMD_AVPORT_HDMI_0 + i;
744 for (j = 0; j < ps3av->av_hw_conf.num_of_avmulti; j++) 806 for (j = 0; j < hw_conf->num_of_avmulti; j++)
745 ps3av->av_port[i + j] = PS3AV_CMD_AVPORT_AVMULTI_0 + j; 807 ps3av->av_port[i + j] = PS3AV_CMD_AVPORT_AVMULTI_0 + j;
746 for (k = 0; k < ps3av->av_hw_conf.num_of_spdif; k++) 808 for (k = 0; k < hw_conf->num_of_spdif; k++)
747 ps3av->av_port[i + j + k] = PS3AV_CMD_AVPORT_SPDIF_0 + k; 809 ps3av->av_port[i + j + k] = PS3AV_CMD_AVPORT_SPDIF_0 + k;
748 810
749 /* set all audio port */ 811 /* set all audio port */
diff --git a/drivers/ps3/ps3av_cmd.c b/drivers/ps3/ps3av_cmd.c
index 83d7e8fdbfea..7f880c26122f 100644
--- a/drivers/ps3/ps3av_cmd.c
+++ b/drivers/ps3/ps3av_cmd.c
@@ -922,72 +922,6 @@ int ps3av_cmd_video_get_monitor_info(struct ps3av_pkt_av_get_monitor_info *info,
922 return res; 922 return res;
923} 923}
924 924
925#ifdef PS3AV_DEBUG
926void ps3av_cmd_av_hw_conf_dump(const struct ps3av_pkt_av_get_hw_conf *hw_conf)
927{
928 printk("av_h_conf:num of hdmi:%d\n", hw_conf->num_of_hdmi);
929 printk("av_h_conf:num of avmulti:%d\n", hw_conf->num_of_avmulti);
930 printk("av_h_conf:num of spdif:%d\n", hw_conf->num_of_spdif);
931}
932
933void ps3av_cmd_av_monitor_info_dump(const struct ps3av_pkt_av_get_monitor_info *monitor_info)
934{
935 const struct ps3av_info_monitor *info = &monitor_info->info;
936 const struct ps3av_info_audio *audio = info->audio;
937 int i;
938
939 printk("Monitor Info: size%d\n", monitor_info->send_hdr.size);
940
941 printk("avport:%02x\n", info->avport);
942 printk("monitor_id:");
943 for (i = 0; i < 10; i++)
944 printk("%02x ", info->monitor_id[i]);
945 printk("\nmonitor_type:%02x\n", info->monitor_type);
946 printk("monitor_name:");
947 for (i = 0; i < 16; i++)
948 printk("%c", info->monitor_name[i]);
949
950 /* resolution */
951 printk("\nresolution_60: bits:%08x native:%08x\n",
952 info->res_60.res_bits, info->res_60.native);
953 printk("resolution_50: bits:%08x native:%08x\n",
954 info->res_50.res_bits, info->res_50.native);
955 printk("resolution_other: bits:%08x native:%08x\n",
956 info->res_other.res_bits, info->res_other.native);
957 printk("resolution_vesa: bits:%08x native:%08x\n",
958 info->res_vesa.res_bits, info->res_vesa.native);
959
960 /* color space */
961 printk("color space rgb:%02x\n", info->cs.rgb);
962 printk("color space yuv444:%02x\n", info->cs.yuv444);
963 printk("color space yuv422:%02x\n", info->cs.yuv422);
964
965 /* color info */
966 printk("color info red:X %04x Y %04x\n",
967 info->color.red_x, info->color.red_y);
968 printk("color info green:X %04x Y %04x\n",
969 info->color.green_x, info->color.green_y);
970 printk("color info blue:X %04x Y %04x\n",
971 info->color.blue_x, info->color.blue_y);
972 printk("color info white:X %04x Y %04x\n",
973 info->color.white_x, info->color.white_y);
974 printk("color info gamma: %08x\n", info->color.gamma);
975
976 /* other info */
977 printk("supported_AI:%02x\n", info->supported_ai);
978 printk("speaker_info:%02x\n", info->speaker_info);
979 printk("num of audio:%02x\n", info->num_of_audio_block);
980
981 /* audio block */
982 for (i = 0; i < info->num_of_audio_block; i++) {
983 printk("audio[%d] type:%02x max_ch:%02x fs:%02x sbit:%02x\n",
984 i, audio->type, audio->max_num_of_ch, audio->fs,
985 audio->sbit);
986 audio++;
987 }
988}
989#endif /* PS3AV_DEBUG */
990
991#define PS3AV_AV_LAYOUT_0 (PS3AV_CMD_AV_LAYOUT_32 \ 925#define PS3AV_AV_LAYOUT_0 (PS3AV_CMD_AV_LAYOUT_32 \
992 | PS3AV_CMD_AV_LAYOUT_44 \ 926 | PS3AV_CMD_AV_LAYOUT_44 \
993 | PS3AV_CMD_AV_LAYOUT_48) 927 | PS3AV_CMD_AV_LAYOUT_48)