Modern display drivers will generally auto-detect the "best" display resolution according to the display's EDID information. You can view that information in human-readable format with a command like:
cat /sys/class/drm/card0-HDMI-A-1/edid | parse-edid
But it sounds like your display's EDID may be telling a boastful lie, if it indicates 1920x1080 as available and it cannot actually be used. Or maybe you're using an extra-long HDMI cable and the signal degradation caused by the cable length is just enough to make the signal become unusable on 1920x1080, but smaller resolutions are fine.
You could try adding a boot option, as described here:
https://davejansen.com/add-custom-resolution-and-refresh-rate-when-using-wayland-gnome/
In your case, the boot option you'd need would be something like:
video=HDMI-A-1:1280x720@75
(The @75 part specifies the refresh rate; adjust as needed.)
For a full documentation of the video= option syntax, see:
https://www.kernel.org/doc/html/latest/fb/modedb.html
ls -l /sys/class/drm/card0/device/driver, what is the last element of the target path of that symbolic link?driver. Most of them are symbolic links./sys/class/drm/card0/device/drivershould be a symbolic link, where does it point to?