Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mfd: pm8008: Remove driver data structure pm8008_data

Maintaining a local driver data structure that is never shared
outside of the core device is an unnecessary complexity. Half of the
attributes were not used outside of a single function, one of which
was not used at all. The remaining 2 are generic and can be passed
around as required.

Signed-off-by: Lee Jones <lee.jones@linaro.org>

authored by

Lee Jones and committed by
Lee Jones
91569692 4a346a03

+20 -33
+20 -33
drivers/mfd/qcom-pm8008.c
··· 54 54 55 55 #define PM8008_PERIPH_OFFSET(paddr) (paddr - PM8008_PERIPH_0_BASE) 56 56 57 - struct pm8008_data { 58 - struct device *dev; 59 - struct regmap *regmap; 60 - int irq; 61 - struct regmap_irq_chip_data *irq_data; 62 - }; 63 - 64 57 static unsigned int p0_offs[] = {PM8008_PERIPH_OFFSET(PM8008_PERIPH_0_BASE)}; 65 58 static unsigned int p1_offs[] = {PM8008_PERIPH_OFFSET(PM8008_PERIPH_1_BASE)}; 66 59 static unsigned int p2_offs[] = {PM8008_PERIPH_OFFSET(PM8008_PERIPH_2_BASE)}; ··· 143 150 .max_register = 0xFFFF, 144 151 }; 145 152 146 - static int pm8008_init(struct pm8008_data *chip) 153 + static int pm8008_init(struct regmap *regmap) 147 154 { 148 155 int rc; 149 156 ··· 153 160 * This is required to enable the writing of TYPE registers in 154 161 * regmap_irq_sync_unlock(). 155 162 */ 156 - rc = regmap_write(chip->regmap, 157 - (PM8008_TEMP_ALARM_ADDR | INT_SET_TYPE_OFFSET), 158 - BIT(0)); 163 + rc = regmap_write(regmap, (PM8008_TEMP_ALARM_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); 159 164 if (rc) 160 165 return rc; 161 166 162 167 /* Do the same for GPIO1 and GPIO2 peripherals */ 163 - rc = regmap_write(chip->regmap, 164 - (PM8008_GPIO1_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); 168 + rc = regmap_write(regmap, (PM8008_GPIO1_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); 165 169 if (rc) 166 170 return rc; 167 171 168 - rc = regmap_write(chip->regmap, 169 - (PM8008_GPIO2_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); 172 + rc = regmap_write(regmap, (PM8008_GPIO2_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); 170 173 171 174 return rc; 172 175 } 173 176 174 - static int pm8008_probe_irq_peripherals(struct pm8008_data *chip, 177 + static int pm8008_probe_irq_peripherals(struct device *dev, 178 + struct regmap *regmap, 175 179 int client_irq) 176 180 { 177 181 int rc, i; 178 182 struct regmap_irq_type *type; 179 183 struct regmap_irq_chip_data *irq_data; 180 184 181 - rc = pm8008_init(chip); 185 + rc = pm8008_init(regmap); 182 186 if (rc) { 183 - dev_err(chip->dev, "Init failed: %d\n", rc); 187 + dev_err(dev, "Init failed: %d\n", rc); 184 188 return rc; 185 189 } 186 190 ··· 197 207 IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW); 198 208 } 199 209 200 - rc = devm_regmap_add_irq_chip(chip->dev, chip->regmap, client_irq, 210 + rc = devm_regmap_add_irq_chip(dev, regmap, client_irq, 201 211 IRQF_SHARED, 0, &pm8008_irq_chip, &irq_data); 202 212 if (rc) { 203 - dev_err(chip->dev, "Failed to add IRQ chip: %d\n", rc); 213 + dev_err(dev, "Failed to add IRQ chip: %d\n", rc); 204 214 return rc; 205 215 } 206 216 ··· 210 220 static int pm8008_probe(struct i2c_client *client) 211 221 { 212 222 int rc; 213 - struct pm8008_data *chip; 223 + struct device *dev; 224 + struct regmap *regmap; 214 225 215 - chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); 216 - if (!chip) 217 - return -ENOMEM; 218 - 219 - chip->dev = &client->dev; 220 - chip->regmap = devm_regmap_init_i2c(client, &qcom_mfd_regmap_cfg); 221 - if (!chip->regmap) 226 + dev = &client->dev; 227 + regmap = devm_regmap_init_i2c(client, &qcom_mfd_regmap_cfg); 228 + if (!regmap) 222 229 return -ENODEV; 223 230 224 - i2c_set_clientdata(client, chip); 231 + i2c_set_clientdata(client, regmap); 225 232 226 - if (of_property_read_bool(chip->dev->of_node, "interrupt-controller")) { 227 - rc = pm8008_probe_irq_peripherals(chip, client->irq); 233 + if (of_property_read_bool(dev->of_node, "interrupt-controller")) { 234 + rc = pm8008_probe_irq_peripherals(dev, regmap, client->irq); 228 235 if (rc) 229 - dev_err(chip->dev, "Failed to probe irq periphs: %d\n", rc); 236 + dev_err(dev, "Failed to probe irq periphs: %d\n", rc); 230 237 } 231 238 232 - return devm_of_platform_populate(chip->dev); 239 + return devm_of_platform_populate(dev); 233 240 } 234 241 235 242 static const struct of_device_id pm8008_match[] = {