| 1938 | } |
| 1939 | |
| 1940 | __noinline void IPUWorker() |
| 1941 | { |
| 1942 | pxAssert(ipuRegs.ctrl.BUSY); |
| 1943 | |
| 1944 | switch (ipu_cmd.CMD) |
| 1945 | { |
| 1946 | // These are unreachable (BUSY will always be 0 for them) |
| 1947 | //case SCE_IPU_BCLR: |
| 1948 | //case SCE_IPU_SETTH: |
| 1949 | //break; |
| 1950 | |
| 1951 | case SCE_IPU_IDEC: |
| 1952 | if (!mpeg2sliceIDEC()) return; |
| 1953 | |
| 1954 | //ipuRegs.ctrl.OFC = 0; |
| 1955 | ipuRegs.topbusy = 0; |
| 1956 | ipuRegs.cmd.BUSY = 0; |
| 1957 | break; |
| 1958 | |
| 1959 | case SCE_IPU_BDEC: |
| 1960 | if (!mpeg2_slice()) return; |
| 1961 | |
| 1962 | ipuRegs.topbusy = 0; |
| 1963 | ipuRegs.cmd.BUSY = 0; |
| 1964 | |
| 1965 | //if (ipuRegs.ctrl.SCD || ipuRegs.ctrl.ECD) hwIntcIrq(INTC_IPU); |
| 1966 | break; |
| 1967 | |
| 1968 | case SCE_IPU_VDEC: |
| 1969 | if (!ipuVDEC(ipu_cmd.current)) return; |
| 1970 | |
| 1971 | ipuRegs.topbusy = 0; |
| 1972 | ipuRegs.cmd.BUSY = 0; |
| 1973 | break; |
| 1974 | |
| 1975 | case SCE_IPU_FDEC: |
| 1976 | if (!ipuFDEC(ipu_cmd.current)) return; |
| 1977 | |
| 1978 | ipuRegs.topbusy = 0; |
| 1979 | ipuRegs.cmd.BUSY = 0; |
| 1980 | break; |
| 1981 | |
| 1982 | case SCE_IPU_SETIQ: |
| 1983 | if (!ipuSETIQ(ipu_cmd.current)) return; |
| 1984 | break; |
| 1985 | |
| 1986 | case SCE_IPU_SETVQ: |
| 1987 | if (!ipuSETVQ(ipu_cmd.current)) return; |
| 1988 | break; |
| 1989 | |
| 1990 | case SCE_IPU_CSC: |
| 1991 | if (!ipuCSC(ipu_cmd.current)) return; |
| 1992 | break; |
| 1993 | |
| 1994 | case SCE_IPU_PACK: |
| 1995 | if (!ipuPACK(ipu_cmd.current)) return; |
| 1996 | break; |
| 1997 |
no test coverage detected