Skip to content
Snippets Groups Projects
Select Git revision
  • e2ba13b9ef97e843cc536c84c2043db0f19befeb
  • master default protected
  • android-7.1.2_r28_klist
  • pie-cts-release
  • pie-vts-release
  • pie-cts-dev
  • oreo-mr1-iot-release
  • sdk-release
  • oreo-m6-s4-release
  • oreo-m4-s12-release
  • pie-release
  • pie-r2-release
  • pie-r2-s1-release
  • oreo-vts-release
  • oreo-cts-release
  • oreo-dev
  • oreo-mr1-dev
  • pie-gsi
  • pie-platform-release
  • pie-dev
  • oreo-cts-dev
  • android-o-mr1-iot-release-1.0.4
  • android-9.0.0_r8
  • android-9.0.0_r7
  • android-9.0.0_r6
  • android-9.0.0_r5
  • android-8.1.0_r46
  • android-8.1.0_r45
  • android-n-iot-release-smart-display-r2
  • android-vts-8.1_r5
  • android-cts-8.1_r8
  • android-cts-8.0_r12
  • android-cts-7.1_r20
  • android-cts-7.0_r24
  • android-o-mr1-iot-release-1.0.3
  • android-cts-9.0_r1
  • android-8.1.0_r43
  • android-8.1.0_r42
  • android-n-iot-release-smart-display
  • android-p-preview-5
  • android-9.0.0_r3
41 results

shell.te

Blame
    • Stephen Smalley's avatar
      00b180df
      Eliminate some duplicated rules. · 00b180df
      Stephen Smalley authored
      
      As reported by sepolicy-analyze -D -P /path/to/sepolicy.
      No semantic difference reported by sediff between the policy
      before and after this change.
      
      Deduplication of selinuxfs read access resolved by taking the
      common rules to domain.te (and thereby getting rid of the
      selinux_getenforce macro altogether).
      
      Change-Id: I4de2f86fe2efe11a167e8a7d25dd799cefe482e5
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      00b180df
      History
      Eliminate some duplicated rules.
      Stephen Smalley authored
      
      As reported by sepolicy-analyze -D -P /path/to/sepolicy.
      No semantic difference reported by sediff between the policy
      before and after this change.
      
      Deduplication of selinuxfs read access resolved by taking the
      common rules to domain.te (and thereby getting rid of the
      selinux_getenforce macro altogether).
      
      Change-Id: I4de2f86fe2efe11a167e8a7d25dd799cefe482e5
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
    pxa2xx_cm_x255.c 3.01 KiB
    /*
     * linux/drivers/pcmcia/pxa/pxa_cm_x255.c
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     *
     * Compulab Ltd., 2003, 2007, 2008
     * Mike Rapoport <mike@compulab.co.il>
     *
     */
    
    #include <linux/platform_device.h>
    #include <linux/irq.h>
    #include <linux/delay.h>
    #include <linux/gpio.h>
    #include <linux/export.h>
    
    #include "soc_common.h"
    
    #define GPIO_PCMCIA_SKTSEL	(54)
    #define GPIO_PCMCIA_S0_CD_VALID	(16)
    #define GPIO_PCMCIA_S1_CD_VALID	(17)
    #define GPIO_PCMCIA_S0_RDYINT	(6)
    #define GPIO_PCMCIA_S1_RDYINT	(8)
    #define GPIO_PCMCIA_RESET	(9)
    
    static int cmx255_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
    {
    	int ret = gpio_request(GPIO_PCMCIA_RESET, "PCCard reset");
    	if (ret)
    		return ret;
    	gpio_direction_output(GPIO_PCMCIA_RESET, 0);
    
    	if (skt->nr == 0) {
    		skt->stat[SOC_STAT_CD].gpio = GPIO_PCMCIA_S0_CD_VALID;
    		skt->stat[SOC_STAT_CD].name = "PCMCIA0 CD";
    		skt->stat[SOC_STAT_RDY].gpio = GPIO_PCMCIA_S0_RDYINT;
    		skt->stat[SOC_STAT_RDY].name = "PCMCIA0 RDY";
    	} else {
    		skt->stat[SOC_STAT_CD].gpio = GPIO_PCMCIA_S1_CD_VALID;
    		skt->stat[SOC_STAT_CD].name = "PCMCIA1 CD";
    		skt->stat[SOC_STAT_RDY].gpio = GPIO_PCMCIA_S1_RDYINT;
    		skt->stat[SOC_STAT_RDY].name = "PCMCIA1 RDY";
    	}
    
    	return 0;
    }
    
    static void cmx255_pcmcia_shutdown(struct soc_pcmcia_socket *skt)
    {
    	gpio_free(GPIO_PCMCIA_RESET);
    }
    
    
    static void cmx255_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
    				       struct pcmcia_state *state)
    {
    	state->vs_3v  = 0;
    	state->vs_Xv  = 0;
    }
    
    
    static int cmx255_pcmcia_configure_socket(struct soc_pcmcia_socket *skt,
    					  const socket_state_t *state)
    {
    	switch (skt->nr) {
    	case 0:
    		if (state->flags & SS_RESET) {
    			gpio_set_value(GPIO_PCMCIA_SKTSEL, 0);
    			udelay(1);
    			gpio_set_value(GPIO_PCMCIA_RESET, 1);
    			udelay(10);
    			gpio_set_value(GPIO_PCMCIA_RESET, 0);
    		}
    		break;
    	case 1:
    		if (state->flags & SS_RESET) {
    			gpio_set_value(GPIO_PCMCIA_SKTSEL, 1);
    			udelay(1);
    			gpio_set_value(GPIO_PCMCIA_RESET, 1);
    			udelay(10);
    			gpio_set_value(GPIO_PCMCIA_RESET, 0);
    		}
    		break;
    	}
    
    	return 0;
    }
    
    static struct pcmcia_low_level cmx255_pcmcia_ops __initdata = {
    	.owner			= THIS_MODULE,
    	.hw_init		= cmx255_pcmcia_hw_init,
    	.hw_shutdown		= cmx255_pcmcia_shutdown,
    	.socket_state		= cmx255_pcmcia_socket_state,
    	.configure_socket	= cmx255_pcmcia_configure_socket,
    	.nr			= 1,
    };
    
    static struct platform_device *cmx255_pcmcia_device;
    
    int __init cmx255_pcmcia_init(void)
    {
    	int ret;
    
    	cmx255_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
    
    	if (!cmx255_pcmcia_device)
    		return -ENOMEM;
    
    	ret = platform_device_add_data(cmx255_pcmcia_device, &cmx255_pcmcia_ops,
    				       sizeof(cmx255_pcmcia_ops));
    
    	if (ret == 0) {
    		printk(KERN_INFO "Registering cm-x255 PCMCIA interface.\n");
    		ret = platform_device_add(cmx255_pcmcia_device);
    	}
    
    	if (ret)
    		platform_device_put(cmx255_pcmcia_device);
    
    	return ret;
    }
    
    void __exit cmx255_pcmcia_exit(void)
    {
    	platform_device_unregister(cmx255_pcmcia_device);
    }