All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shawn Lindberg <shawn.lindberg@gmail.com>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: linux-media@vger.kernel.org
Subject: Re: Extremely long delay between CEC image-view-on an standby.
Date: Sat, 1 Apr 2023 15:55:43 -0500	[thread overview]
Message-ID: <CAC6x6iuOvHuRC7cUzA4N0TR2Ue6g55buhQ1-pD0_i1VvBaSaiw@mail.gmail.com> (raw)
In-Reply-To: <6dabaf27-1d68-b6e5-12c3-cbef79867fc1@xs4all.nl>

On Sat, Apr 1, 2023 at 3:17 AM Hans Verkuil <hverkuil@xs4all.nl> wrote:
>
> On 31/03/2023 22:23, Shawn Lindberg wrote:
> > On Wed, Mar 29, 2023 at 2:56 PM Shawn Lindberg <shawn.lindberg@gmail.com> wrote:
> >>
> >> On Tue, Mar 28, 2023 at 2:58 AM Hans Verkuil <hverkuil@xs4all.nl> wrote:
> >>>
> >>>> cec-ctl -d0 --tv --cec-version-1.4
> >>>
> >>> That's wrong, the RPi is a Playback device, not a TV. So use --playback instead.
> >>>
> >>> You should also add this line to the config.txt:
> >>>
> >>> hdmi_ignore_cec=1
> >>>
> >>> otherwise the RPi's firmware tries to process CEC messages as well.
> >>
> >> Oh, I thought that the TV/playback command was indicating what sort of
> >> device the connected device is. This wasn't clear from the man page,
> >> either. Thank you for that. I made the change to config.txt and
> >> strangely when the RPi rebooted (I have it set to do this
> >> automatically once a day) the projector automatically turned on. I
> >> have never experienced this before.
> >
> > Further update on this. I continue to see the projector automatically
> > power on every time the RPi does its daily reboot, so I think I may
> > have to remove the hdmi_ignore_cec from the config.txt. Especially
> > since I can't figure out how to reliably shut the projector back off
> > again.
>
> From what I can tell, the Raspberry Pi doesn't transmit anything over CEC
> at boot time, regardless of whether hdmi_ignore_cec is present or not.
> That's with a Raspberry Pi 4B. It might be different for an RPi 3.

That is strange. I am also using a Raspberry Pi 4B. I do have the
following changes to my config.txt:

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=1
hdmi_mode=16

# Additional line added to prevent firmware from processing CEC messages.
hdmi_ignore_cec=1


> >>>> During this time, if I try to poll the projector, it will succeed.
> >>>> However, if I monitor events, after a significant amount of time
> >>>> (appears to be greater than 20 minutes, although this is difficult to
> >>>> verify because of how long it takes) I go will eventually see the
> >>>> following:
> >>>>
> >>>> Event: State Change: PA: 1.0.0.0, LA mask: 0x0000, Conn Info: yes
> >>>>     Timestamp: 30981.428s
> >>>
> >>> Now it appears to be able to read the EDID again and it has a valid
> >>> physical address.
> >>>
> >>>> Transmitted by Specific to Specific (14 to 14): POLL
> >>>>     Tx, Not Acknowledged (4), Max Retries
> >>>>     Sequence: 21 Tx Timestamp: 30981.561s Tx, Not Acknowledged (4), Max Retries
> >>>>
> >>>> Event: State Change: PA: 1.0.0.0, LA mask: 0x4000, Conn Info: yes
> >>>>     Timestamp: 30981.561s
> >>>> Transmitted by Specific to all (14 to 15): REPORT_PHYSICAL_ADDR (0x84):
> >>>>     phys-addr: 1.0.0.0
> >>>>     prim-devtype: tv (0x00)
> >>>>     Sequence: 22 Tx Timestamp: 30981.696s
> >>>> Transmitted by Specific to all (14 to 15): DEVICE_VENDOR_ID (0x87):
> >>>>     vendor-id: 3075 (0x00000c03)
> >>>>     Sequence: 23 Tx Timestamp: 30981.835s
> >>>> Received from TV to Specific (0 to 14): FEATURE_ABORT (0x00):
> >>>>     abort-msg: 132 (0x84, REPORT_PHYSICAL_ADDR)
> >>>>     reason: invalid-op (0x03)
> >>>>     Sequence: 0 Rx Timestamp: 30981.949s
> >>>> Received from TV to Specific (0 to 14): GIVE_OSD_NAME (0x46)
> >>>>     Sequence: 0 Rx Timestamp: 30982.026s
> >>>> Transmitted by Specific to TV (14 to 0): SET_OSD_NAME (0x47):
> >>>>     name: TV
> >>>>     Sequence: 24 Tx Timestamp: 30982.137s
> >>>>
> >>>> After this point in time the standby command will succeed and the
> >>>> projector will turn off. It's quite inconvenient to have to wait over
> >>>> 20 minutes to turn the projector back off again. Any idea how I can
> >>>> shorten this delay?
> >>>
> >>> There is something weird about your setup and EDID. I can't really tell
> >>> what it is.
> >>
> >> After making the above changes and retesting, the behavior didn't
> >> change. I still get the device not connected message and the invalid
> >> physical address when I try to do standby. I should also note that one
> >> way around this issue is to reboot the RPi. For some reason that seems
> >> to get around the long delay in getting the physical address.
> >>
> >> I don't know what would be strange about my set up other than the
> >> projector itself and a couple of lines I uncommented in the config.txt
> >> to set the RPi to use HDMI even if the projector is not on at the time
> >> of booting. Is there more information I can provide that would allow
> >> us to figure out what's going on? If you are correct that for some
> >> reason it is just not reading the EDID, is there a way to manually
> >> provide that? I don't know much about it, but it's a static property
> >> of the device (the projector in this case), right?
> >
> > Since I noticed that the physical address is populated properly when
> > the RPi is booted while the projector is turned on, I did that and
> > then tried using the get-edid utility to see if I could read the EDID
> > block and save it to a file. Unfortunately, this didn't work, as the
> > utility reports that there was no EDID available on any of the buses.
> > So once again I am out of ideas.
>
> The EDID also appears in /sys:
>
> /sys/devices/platform/gpu/drm/card1/card1-HDMI-A-1/edid
> /sys/devices/platform/gpu/drm/card1/card1-HDMI-A-2/edid
>
> get-edid works fine on my RPi 4B, so if that doesn't work, then it really
> looks like there is something weird going on with your projector.

Thank you for that. Based on this information with the projector on
during boot, I was able to get the following output from parse-edid. I
did not copy the entire output, just a snippet to indicate that it is
able to get a valid EDID at boot time.

cat /sys/devices/platform/gpu/drm/card1/card1-HDMI-A-1/edid | parse-edid
Checksum Correct

Section "Monitor"
    Identifier "LG PROJECTOR"
    ModelName "LG PROJECTOR"
    VendorName "GSM"
    # Monitor Manufactured week 33 of 2017
    # EDID version 1.3
    # Digital Display
    DisplaySize 1600 900
    Gamma 2.20
    Option "DPMS" "false"
    Horizsync 30-83
    VertRefresh 58-62
    # Maximum pixel clock is 160MHz
    #Not giving standard mode: 640x480, 60Hz

In summary, it seems that at boot time and after waiting an extended
amount of time after turning on the projector using the image-view-on
command, the EDID file is available and valid. So although my
projector may be strange, I am guessing that there must be a way to
manually provide the EDID file, force the physical address, or some
other workaround/solution. However, I'm certainly no expert in this
area so I would defer to those of you who are.

Thanks,
Shawn

  reply	other threads:[~2023-04-01 20:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-27 16:33 Extremely long delay between CEC image-view-on an standby Shawn Lindberg
2023-03-28  7:58 ` Hans Verkuil
2023-03-29 19:56   ` Shawn Lindberg
2023-03-31 20:23     ` Shawn Lindberg
2023-04-01  8:17       ` Hans Verkuil
2023-04-01 20:55         ` Shawn Lindberg [this message]
2023-04-05 18:20           ` Shawn Lindberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAC6x6iuOvHuRC7cUzA4N0TR2Ue6g55buhQ1-pD0_i1VvBaSaiw@mail.gmail.com \
    --to=shawn.lindberg@gmail.com \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.