H A D | ps3av.c | 30 #include <asm/ps3av.h> 43 static struct ps3av { struct 63 } *ps3av; variable in typeref:struct:ps3av 171 dev_dbg(&ps3av->dev->core, ps3av_parse_event_packet() 227 if (!ps3av) ps3av_send_cmd_pkt() 231 res = ps3av_vuart_write(ps3av->dev, send_buf, write_len); ps3av_send_cmd_pkt() 233 dev_dbg(&ps3av->dev->core, ps3av_send_cmd_pkt() 243 res = ps3av_vuart_read(ps3av->dev, recv_buf, PS3AV_HDR_SIZE, ps3av_send_cmd_pkt() 246 dev_dbg(&ps3av->dev->core, ps3av_send_cmd_pkt() 253 res = ps3av_vuart_read(ps3av->dev, &recv_buf->cid, ps3av_send_cmd_pkt() 256 dev_dbg(&ps3av->dev->core, ps3av_send_cmd_pkt() 267 dev_dbg(&ps3av->dev->core, "%s: reply err (result=%x)\n", ps3av_send_cmd_pkt() 282 dev_dbg(&ps3av->dev->core, "reply_packet invalid version:%x\n", ps3av_process_reply_packet() 306 BUG_ON(!ps3av); ps3av_do_pkt() 308 mutex_lock(&ps3av->mutex); ps3av_do_pkt() 320 res = ps3av_send_cmd_pkt(buf, &ps3av->recv_buf.reply_hdr, send_len, ps3av_do_pkt() 330 res = ps3av_process_reply_packet(buf, &ps3av->recv_buf.reply_hdr, ps3av_do_pkt() 338 mutex_unlock(&ps3av->mutex); ps3av_do_pkt() 342 mutex_unlock(&ps3av->mutex); ps3av_do_pkt() 351 num_of_av_port = ps3av->av_hw_conf.num_of_hdmi + ps3av_set_av_video_mute() 352 ps3av->av_hw_conf.num_of_avmulti; ps3av_set_av_video_mute() 355 res = ps3av_cmd_av_video_mute(1, &ps3av->av_port[i], mute); ps3av_set_av_video_mute() 367 num_of_hdmi_port = ps3av->av_hw_conf.num_of_hdmi; ps3av_set_video_disable_sig() 368 num_of_av_port = ps3av->av_hw_conf.num_of_hdmi + ps3av_set_video_disable_sig() 369 ps3av->av_hw_conf.num_of_avmulti; ps3av_set_video_disable_sig() 373 res = ps3av_cmd_av_tv_mute(ps3av->av_port[i], ps3av_set_video_disable_sig() 382 res = ps3av_cmd_av_video_disable_sig(ps3av->av_port[i]); ps3av_set_video_disable_sig() 386 res = ps3av_cmd_av_tv_mute(ps3av->av_port[i], ps3av_set_video_disable_sig() 401 num_of_av_port = ps3av->av_hw_conf.num_of_hdmi + ps3av_set_audio_mute() 402 ps3av->av_hw_conf.num_of_avmulti; ps3av_set_audio_mute() 403 num_of_opt_port = ps3av->av_hw_conf.num_of_spdif; ps3av_set_audio_mute() 406 res = ps3av_cmd_av_audio_mute(1, &ps3av->av_port[i], mute); ps3av_set_audio_mute() 411 res = ps3av_cmd_audio_mute(1, &ps3av->opt_port[i], mute); ps3av_set_audio_mute() 426 num_of_audio = ps3av->av_hw_conf.num_of_hdmi + ps3av_set_audio_mode() 427 ps3av->av_hw_conf.num_of_avmulti + ps3av_set_audio_mode() 428 ps3av->av_hw_conf.num_of_spdif; ps3av_set_audio_mode() 433 avb_param.num_of_av_audio_pkt = ps3av->av_hw_conf.num_of_hdmi; ps3av_set_audio_mode() 435 vid = video_mode_table[ps3av->ps3av_mode].vid; ps3av_set_audio_mode() 441 res = ps3av_cmd_audio_active(0, ps3av->audio_port); ps3av_set_audio_mode() 443 dev_dbg(&ps3av->dev->core, ps3av_set_audio_mode() 448 ps3av_cmd_set_audio_mode(&audio_mode, ps3av->av_port[i], ch, ps3av_set_audio_mode() 450 if (i < ps3av->av_hw_conf.num_of_hdmi) { ps3av_set_audio_mode() 453 ps3av->av_port[i], ps3av_set_audio_mode() 459 dev_dbg(&ps3av->dev->core, ps3av_set_audio_mode() 467 dev_dbg(&ps3av->dev->core, "ps3av_cmd_avb_param failed\n"); ps3av_set_audio_mode() 473 res = ps3av_cmd_audio_active(1, ps3av->audio_port); ps3av_set_audio_mode() 475 dev_dbg(&ps3av->dev->core, ps3av_set_audio_mode() 488 queue_work(ps3av->wq, &ps3av->work); ps3av_set_videomode() 505 avb_param.num_of_av_video_pkt = ps3av->av_hw_conf.num_of_hdmi + ps3av_set_videomode_packet() 506 ps3av->av_hw_conf.num_of_avmulti; ps3av_set_videomode_packet() 512 ps3av->head[i], video_mode->vid, ps3av_set_videomode_packet() 521 if (ps3av->av_port[i] == PS3AV_CMD_AVPORT_HDMI_0 || ps3av_set_videomode_packet() 522 ps3av->av_port[i] == PS3AV_CMD_AVPORT_HDMI_1) ps3av_set_videomode_packet() 526 ps3av->av_port[i], ps3av_set_videomode_packet() 538 dev_dbg(&ps3av->dev->core, "ps3av_cmd_avb_param failed\n"); ps3av_set_videomode_packet() 563 dev_dbg(&ps3av->dev->core, "Not supported\n"); ps3av_set_videomode_cont() 565 dev_dbg(&ps3av->dev->core, ps3av_set_videomode_cont() 570 dev_dbg(&ps3av->dev->core, ps3av_set_videomode_cont() 583 ps3av_set_videomode_cont(ps3av->ps3av_mode, ps3av->ps3av_mode_old); ps3avd() 584 complete(&ps3av->done); ps3avd() 661 if (ps3av->region & PS3AV_REGION_60) ps3av_hdmi_get_id() 794 if (ps3av->region & PS3AV_REGION_60) ps3av_auto_videomode() 798 if (ps3av->region & PS3AV_REGION_RGB) ps3av_auto_videomode() 806 static int ps3av_get_hw_conf(struct ps3av *ps3av) ps3av_get_hw_conf() argument 812 res = ps3av_cmd_av_get_hw_conf(&ps3av->av_hw_conf); ps3av_get_hw_conf() 816 hw_conf = &ps3av->av_hw_conf; ps3av_get_hw_conf() 822 ps3av->head[i] = PS3AV_CMD_VIDEO_HEAD_A + i; ps3av_get_hw_conf() 824 ps3av->opt_port[i] = PS3AV_CMD_AVPORT_SPDIF_0 + i; ps3av_get_hw_conf() 826 ps3av->av_port[i] = PS3AV_CMD_AVPORT_HDMI_0 + i; ps3av_get_hw_conf() 828 ps3av->av_port[i + j] = PS3AV_CMD_AVPORT_AVMULTI_0 + j; ps3av_get_hw_conf() 830 ps3av->av_port[i + j + k] = PS3AV_CMD_AVPORT_SPDIF_0 + k; ps3av_get_hw_conf() 833 ps3av->audio_port = PS3AV_CMD_AUDIO_PORT_HDMI_0 ps3av_get_hw_conf() 849 dev_dbg(&ps3av->dev->core, "%s: error id :%d\n", __func__, id); ps3av_set_video_mode() 856 id = ps3av_auto_videomode(&ps3av->av_hw_conf); ps3av_set_video_mode() 865 wait_for_completion(&ps3av->done); ps3av_set_video_mode() 866 ps3av->ps3av_mode_old = ps3av->ps3av_mode; ps3av_set_video_mode() 867 ps3av->ps3av_mode = id; ps3av_set_video_mode() 869 ps3av->ps3av_mode = ps3av->ps3av_mode_old; ps3av_set_video_mode() 877 return ps3av_auto_videomode(&ps3av->av_hw_conf); ps3av_get_auto_mode() 883 return ps3av ? ps3av->ps3av_mode : 0; ps3av_get_mode() 917 for (i = 0; i < ps3av->av_hw_conf.num_of_avmulti; i++) { ps3av_audio_mute_analog() 919 &ps3av->av_port[i + ps3av->av_hw_conf.num_of_hdmi], ps3av_audio_mute_analog() 943 if (ps3av) { ps3av_probe() 944 dev_err(&dev->core, "Only one ps3av device is supported\n"); ps3av_probe() 948 ps3av = kzalloc(sizeof(*ps3av), GFP_KERNEL); ps3av_probe() 949 if (!ps3av) ps3av_probe() 952 mutex_init(&ps3av->mutex); ps3av_probe() 953 ps3av->ps3av_mode = PS3AV_MODE_AUTO; ps3av_probe() 954 ps3av->dev = dev; ps3av_probe() 956 INIT_WORK(&ps3av->work, ps3avd); ps3av_probe() 957 init_completion(&ps3av->done); ps3av_probe() 958 complete(&ps3av->done); ps3av_probe() 959 ps3av->wq = create_singlethread_workqueue("ps3avd"); ps3av_probe() 960 if (!ps3av->wq) { ps3av_probe() 967 ps3av->region = PS3AV_REGION_60; ps3av_probe() 971 ps3av->region = PS3AV_REGION_50; ps3av_probe() 974 ps3av->region = PS3AV_REGION_50 | PS3AV_REGION_RGB; ps3av_probe() 977 ps3av->region = PS3AV_REGION_60; ps3av_probe() 987 ps3av_get_hw_conf(ps3av); ps3av_probe() 993 id = ps3av_auto_videomode(&ps3av->av_hw_conf); ps3av_probe() 1002 mutex_lock(&ps3av->mutex); ps3av_probe() 1003 ps3av->ps3av_mode = id; ps3av_probe() 1004 mutex_unlock(&ps3av->mutex); ps3av_probe() 1011 kfree(ps3av); ps3av_probe() 1012 ps3av = NULL; ps3av_probe() 1019 if (ps3av) { ps3av_remove() 1021 if (ps3av->wq) ps3av_remove() 1022 destroy_workqueue(ps3av->wq); ps3av_remove() 1023 kfree(ps3av); ps3av_remove() 1024 ps3av = NULL; ps3av_remove()
|