diff options
Diffstat (limited to 'firmware/target/arm/i2c-pp.c')
-rw-r--r-- | firmware/target/arm/i2c-pp.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/firmware/target/arm/i2c-pp.c b/firmware/target/arm/i2c-pp.c index 1cfbfaeff1..450effc32d 100644 --- a/firmware/target/arm/i2c-pp.c +++ b/firmware/target/arm/i2c-pp.c | |||
@@ -60,7 +60,7 @@ static int pp_i2c_read_byte(unsigned int addr, unsigned int *data) | |||
60 | 60 | ||
61 | { | 61 | { |
62 | unsigned int byte; | 62 | unsigned int byte; |
63 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | 63 | int old_irq_level = disable_irq_save(); |
64 | 64 | ||
65 | /* clear top 15 bits, left shift 1, or in 0x1 for a read */ | 65 | /* clear top 15 bits, left shift 1, or in 0x1 for a read */ |
66 | I2C_ADDR = ((addr << 17) >> 16) | 0x1 ; | 66 | I2C_ADDR = ((addr << 17) >> 16) | 0x1 ; |
@@ -69,19 +69,19 @@ static int pp_i2c_read_byte(unsigned int addr, unsigned int *data) | |||
69 | 69 | ||
70 | I2C_CTRL |= I2C_SEND; | 70 | I2C_CTRL |= I2C_SEND; |
71 | 71 | ||
72 | set_irq_level(old_irq_level); | 72 | restore_irq(old_irq_level); |
73 | if (pp_i2c_wait_not_busy() < 0) | 73 | if (pp_i2c_wait_not_busy() < 0) |
74 | { | 74 | { |
75 | return -1; | 75 | return -1; |
76 | } | 76 | } |
77 | old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | 77 | old_irq_level = disable_irq_save(); |
78 | 78 | ||
79 | byte = I2C_DATA(0); | 79 | byte = I2C_DATA(0); |
80 | 80 | ||
81 | if (data) | 81 | if (data) |
82 | *data = byte; | 82 | *data = byte; |
83 | 83 | ||
84 | set_irq_level(old_irq_level); | 84 | restore_irq(old_irq_level); |
85 | } | 85 | } |
86 | 86 | ||
87 | return 0; | 87 | return 0; |
@@ -102,7 +102,7 @@ static int pp_i2c_send_bytes(unsigned int addr, unsigned int len, unsigned char | |||
102 | } | 102 | } |
103 | 103 | ||
104 | { | 104 | { |
105 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | 105 | int old_irq_level = disable_irq_save(); |
106 | 106 | ||
107 | /* clear top 15 bits, left shift 1 */ | 107 | /* clear top 15 bits, left shift 1 */ |
108 | I2C_ADDR = (addr << 17) >> 16; | 108 | I2C_ADDR = (addr << 17) >> 16; |
@@ -118,7 +118,7 @@ static int pp_i2c_send_bytes(unsigned int addr, unsigned int len, unsigned char | |||
118 | 118 | ||
119 | I2C_CTRL |= I2C_SEND; | 119 | I2C_CTRL |= I2C_SEND; |
120 | 120 | ||
121 | set_irq_level(old_irq_level); | 121 | restore_irq(old_irq_level); |
122 | } | 122 | } |
123 | 123 | ||
124 | return 0x0; | 124 | return 0x0; |