5 kx #
5 kx # rc.odroidc2 - initial set up ODROID C2 framebuffer
5 kx #
5 kx
5 kx for x in $(cat /proc/cmdline); do
5 kx case ${x} in
5 kx m_bpp=*) export bpp=${x#*=} ;;
5 kx hdmimode=*) export mode=${x#*=} ;;
5 kx modeline=*) export modeline=${x#*=} ;;
5 kx esac
5 kx done
5 kx
5 kx HPD_STATE=/sys/class/amhdmitx/amhdmitx0/hpd_state
5 kx DISP_CAP=/sys/class/amhdmitx/amhdmitx0/disp_cap
5 kx DISP_MODE=/sys/class/display/mode
5 kx
5 kx # if setenv nographics "1" in boot.ini then this needs to fail
5 kx if [ ! -f $DISP_MODE ]; then
5 kx exit 0
5 kx fi
5 kx
5 kx echo $mode > $DISP_MODE
5 kx
5 kx common_display_setup() {
5 kx M="0 0 $(($X - 1)) $(($Y - 1))"
5 kx Y_VIRT=$(($Y * 2))
5 kx fbset -fb /dev/fb0 -g $X $Y $X $Y_VIRT $bpp
5 kx echo $mode > /sys/class/display/mode
5 kx echo 0 > /sys/class/graphics/fb0/free_scale
5 kx echo 1 > /sys/class/graphics/fb0/freescale_mode
5 kx echo $M > /sys/class/graphics/fb0/free_scale_axis
5 kx echo $M > /sys/class/graphics/fb0/window_axis
5 kx
5 kx echo 0 > /sys/class/graphics/fb1/free_scale
5 kx echo 1 > /sys/class/graphics/fb1/freescale_mode
5 kx }
5 kx
5 kx case $mode in
5 kx custombuilt*)
5 kx export X=`echo $modeline | cut -f1 -d","`
5 kx export Y=`echo $modeline | cut -f2 -d","`
5 kx ;;
5 kx 480*)
5 kx export X=720
5 kx export Y=480
5 kx ;;
5 kx 576*)
5 kx export X=720
5 kx export Y=576
5 kx ;;
5 kx 720p*)
5 kx export X=1280
5 kx export Y=720
5 kx ;;
5 kx 1080*)
5 kx export X=1920
5 kx export Y=1080
5 kx ;;
5 kx 2160p*)
5 kx export X=3840
5 kx export Y=2160
5 kx ;;
5 kx smpte24hz*)
5 kx export X=3840
5 kx export Y=2160
5 kx ;;
5 kx 640x480p60hz*)
5 kx export X=640
5 kx export Y=480
5 kx ;;
5 kx 800x480p60hz*)
5 kx export X=800
5 kx export Y=480
5 kx ;;
5 kx 800x600p60hz*)
5 kx export X=800
5 kx export Y=600
5 kx ;;
5 kx 1024x600p60hz*)
5 kx export X=1024
5 kx export Y=600
5 kx ;;
5 kx 1024x768p60hz*)
5 kx export X=1024
5 kx export Y=768
5 kx ;;
5 kx 1280x800p60hz*)
5 kx export X=1280
5 kx export Y=800
5 kx ;;
5 kx 1280x1024p60hz*)
5 kx export X=1280
5 kx export Y=1024
5 kx ;;
5 kx 1360x768p60hz*)
5 kx export X=1360
5 kx export Y=768
5 kx ;;
5 kx 1440x900p60hz*)
5 kx export X=1440
5 kx export Y=900
5 kx ;;
5 kx 1600x900p60hz*)
5 kx export X=1600
5 kx export Y=900
5 kx ;;
5 kx 1680x1050p60hz*)
5 kx export X=1680
5 kx export Y=1050
5 kx ;;
5 kx 1600x1200p60hz*)
5 kx export X=1600
5 kx export Y=1200
5 kx ;;
5 kx 1920x1200p60hz*)
5 kx export X=1920
5 kx export Y=1200
5 kx ;;
5 kx 2560x1080p60hz*)
5 kx export X=2560
5 kx export Y=1080
5 kx ;;
5 kx 2560x1440p60hz*)
5 kx export X=2560
5 kx export Y=1440
5 kx ;;
5 kx 2560x1600p60hz*)
5 kx export X=2560
5 kx export Y=1600
5 kx ;;
5 kx 3440x1440p60hz*)
5 kx export X=3440
5 kx export Y=1440
5 kx ;;
5 kx esac
5 kx
5 kx common_display_setup
5 kx
5 kx # Console unblack
5 kx case $mode in
5 kx *cvbs*|480i*|576i*|1080i*)
5 kx echo 0 > /sys/class/graphics/fb0/blank
5 kx echo 1 > /sys/class/graphics/fb1/blank
5 kx ;;
5 kx *)
5 kx echo 0 > /sys/class/graphics/fb0/blank
5 kx echo 0 > /sys/class/graphics/fb1/blank
5 kx ;;
5 kx esac