* Extremely long delay between CEC image-view-on an standby. @ 2023-03-27 16:33 Shawn Lindberg 2023-03-28 7:58 ` Hans Verkuil 0 siblings, 1 reply; 7+ messages in thread From: Shawn Lindberg @ 2023-03-27 16:33 UTC (permalink / raw) To: linux-media Greetings, I am having trouble figuring out a very strange problem I'm seeing. I have a Raspberry Pi 4B connected via HDMI to a LG projector. I have no trouble turning the projector on using the following commands: cec-ctl -d0 --tv --cec-version-1.4 cec-ctl -d0 -t0 --image-view-on I'm using CEC version 1.4 because that is what the projector supports. I don't know whether that's necessary or contributing. However, if I try to turn the projector off using standby, I get the following and the projector does not turn off: cec-ctl -d0 -t0 -T --standby CEC_ADAP_G_CAPS returned 0 (Success) CEC_ADAP_G_PHYS_ADDR returned 0 (Success) CEC_ADAP_G_LOG_ADDRS returned 0 (Success) CEC_ADAP_G_CONNECTOR_INFO returned 0 (Success) Driver Info: Driver Name : vc4_hdmi Adapter Name : vc4 Capabilities : 0x0000011e Logical Addresses Transmit Passthrough Remote Control Support Connector Info Driver version : 5.15.84 Available Logical Addresses: 1 DRM Connector Info : card 0, connector 32 Physical Address : f.f.f.f Logical Address Mask : 0x0000 CEC Version : 1.4 Vendor ID : 0x000c03 (HDMI) OSD Name : 'TV' Logical Addresses : 1 (Allow RC Passthrough) Logical Address : Not Allocated Primary Device Type : TV Logical Address Type : TV Transmit from Unregistered to TV (15 to 0): STANDBY (0x36) CEC_TRANSMIT returned -1 (Machine is not on the network) 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 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? ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Extremely long delay between CEC image-view-on an standby. 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 0 siblings, 1 reply; 7+ messages in thread From: Hans Verkuil @ 2023-03-28 7:58 UTC (permalink / raw) To: Shawn Lindberg, linux-media Hi Shawn, On 3/27/23 18:33, Shawn Lindberg wrote: > Greetings, I am having trouble figuring out a very strange problem I'm > seeing. I have a Raspberry Pi 4B connected via HDMI to a LG projector. > I have no trouble turning the projector on using the following > commands: > > 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. > cec-ctl -d0 -t0 --image-view-on > > I'm using CEC version 1.4 because that is what the projector supports. > I don't know whether that's necessary or contributing. However, if I > try to turn the projector off using standby, I get the following and > the projector does not turn off: > > cec-ctl -d0 -t0 -T --standby > CEC_ADAP_G_CAPS returned 0 (Success) > CEC_ADAP_G_PHYS_ADDR returned 0 (Success) > CEC_ADAP_G_LOG_ADDRS returned 0 (Success) > CEC_ADAP_G_CONNECTOR_INFO returned 0 (Success) > Driver Info: > Driver Name : vc4_hdmi > Adapter Name : vc4 > Capabilities : 0x0000011e > Logical Addresses > Transmit > Passthrough > Remote Control Support > Connector Info > Driver version : 5.15.84 > Available Logical Addresses: 1 > DRM Connector Info : card 0, connector 32 > Physical Address : f.f.f.f This is also weird: the physical address comes from the EDID of the TV (projector in this case). f.f.f.f indicates that there is no TV connected at all. > Logical Address Mask : 0x0000 > CEC Version : 1.4 > Vendor ID : 0x000c03 (HDMI) > OSD Name : 'TV' > Logical Addresses : 1 (Allow RC Passthrough) > > Logical Address : Not Allocated > Primary Device Type : TV > Logical Address Type : TV > > > Transmit from Unregistered to TV (15 to 0): > STANDBY (0x36) > CEC_TRANSMIT returned -1 (Machine is not on the network) and that's why you get this: no physical address, no CEC. > > 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. Note that some messages (POLL and Image View On) are allowed to be sent even if there is no EDID, which is probably why that works. Regards, Hans ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Extremely long delay between CEC image-view-on an standby. 2023-03-28 7:58 ` Hans Verkuil @ 2023-03-29 19:56 ` Shawn Lindberg 2023-03-31 20:23 ` Shawn Lindberg 0 siblings, 1 reply; 7+ messages in thread From: Shawn Lindberg @ 2023-03-29 19:56 UTC (permalink / raw) To: Hans Verkuil; +Cc: linux-media 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. > > 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? Thanks, Shawn ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Extremely long delay between CEC image-view-on an standby. 2023-03-29 19:56 ` Shawn Lindberg @ 2023-03-31 20:23 ` Shawn Lindberg 2023-04-01 8:17 ` Hans Verkuil 0 siblings, 1 reply; 7+ messages in thread From: Shawn Lindberg @ 2023-03-31 20:23 UTC (permalink / raw) To: Hans Verkuil, linux-media 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. > > > 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. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Extremely long delay between CEC image-view-on an standby. 2023-03-31 20:23 ` Shawn Lindberg @ 2023-04-01 8:17 ` Hans Verkuil 2023-04-01 20:55 ` Shawn Lindberg 0 siblings, 1 reply; 7+ messages in thread From: Hans Verkuil @ 2023-04-01 8:17 UTC (permalink / raw) To: Shawn Lindberg, linux-media 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. > >>>> 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. Regards, Hans ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Extremely long delay between CEC image-view-on an standby. 2023-04-01 8:17 ` Hans Verkuil @ 2023-04-01 20:55 ` Shawn Lindberg 2023-04-05 18:20 ` Shawn Lindberg 0 siblings, 1 reply; 7+ messages in thread From: Shawn Lindberg @ 2023-04-01 20:55 UTC (permalink / raw) To: Hans Verkuil; +Cc: linux-media 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 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Extremely long delay between CEC image-view-on an standby. 2023-04-01 20:55 ` Shawn Lindberg @ 2023-04-05 18:20 ` Shawn Lindberg 0 siblings, 0 replies; 7+ messages in thread From: Shawn Lindberg @ 2023-04-05 18:20 UTC (permalink / raw) To: Hans Verkuil; +Cc: linux-media On Sat, Apr 1, 2023 at 3:55 PM Shawn Lindberg <shawn.lindberg@gmail.com> wrote: > > 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. I finally found some more time to experiment with this, and I tried saving a copy of the EDID while it was available after the machine rebooted and the projector automatically turned on. Unsurprisingly, after I turned the projector off using standby and then turned it back on using image-view-on, the EDID was not available from /sys/devices/platform/gpu/drm/card1/card1-HDMI-A-1/edid. So I tried the following command to see if I could get the physical address to update from the saved EDID. cec-ctl -d0 -t0 -T --phys-addr-from-edid projector_edid CEC_ADAP_G_CAPS returned 0 (Success) The CEC adapter doesn't allow setting the physical address manually, ignore this option. CEC_ADAP_S_PHYS_ADDR returned -1 (Inappropriate ioctl for device) CEC_ADAP_G_PHYS_ADDR returned 0 (Success) CEC_ADAP_G_LOG_ADDRS returned 0 (Success) CEC_ADAP_G_CONNECTOR_INFO returned 0 (Success) I'm not really sure why this would be the case. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-04-05 18:20 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 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 2023-04-05 18:20 ` Shawn Lindberg
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.