From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Date: Tue, 25 Aug 2015 08:52:46 +0100 From: Lee Jones To: Vaibhav Hiremath Cc: linux-arm-kernel@lists.infradead.org, robh+dt@kernel.org, mturquette@baylibre.com, k.kozlowski@samsung.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Subject: Re: [PATCH-v2 1/5] mfd: 88pm800: Fix tabbing issue Message-ID: <20150825075246.GF19409@x1> References: <1440442594-3102-1-git-send-email-vaibhav.hiremath@linaro.org> <1440442594-3102-3-git-send-email-vaibhav.hiremath@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 In-Reply-To: <1440442594-3102-3-git-send-email-vaibhav.hiremath@linaro.org> List-ID: On Tue, 25 Aug 2015, Vaibhav Hiremath wrote: > Driver had coding style issues where spaces were used instead > of tabs. This patch fixes them all. > > Signed-off-by: Vaibhav Hiremath > --- > drivers/mfd/88pm800.c | 125 ++++++++++++++++++++++++-------------------------- > 1 file changed, 61 insertions(+), 64 deletions(-) Same comment as before. How similar is this file to the other one? Can you reduce the size by having shared register defines? > diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c > index f104a32..c4e097d 100644 > --- a/drivers/mfd/88pm800.c > +++ b/drivers/mfd/88pm800.c > @@ -30,55 +30,55 @@ > #include > > /* Interrupt Registers */ > -#define PM800_INT_STATUS1 (0x05) > +#define PM800_INT_STATUS1 0x05 > #define PM800_ONKEY_INT_STS1 (1 << 0) > #define PM800_EXTON_INT_STS1 (1 << 1) > -#define PM800_CHG_INT_STS1 (1 << 2) > -#define PM800_BAT_INT_STS1 (1 << 3) > -#define PM800_RTC_INT_STS1 (1 << 4) > +#define PM800_CHG_INT_STS1 (1 << 2) > +#define PM800_BAT_INT_STS1 (1 << 3) > +#define PM800_RTC_INT_STS1 (1 << 4) > #define PM800_CLASSD_OC_INT_STS1 (1 << 5) > > -#define PM800_INT_STATUS2 (0x06) > +#define PM800_INT_STATUS2 0x06 > #define PM800_VBAT_INT_STS2 (1 << 0) > #define PM800_VSYS_INT_STS2 (1 << 1) > #define PM800_VCHG_INT_STS2 (1 << 2) > #define PM800_TINT_INT_STS2 (1 << 3) > -#define PM800_GPADC0_INT_STS2 (1 << 4) > +#define PM800_GPADC0_INT_STS2 (1 << 4) > #define PM800_TBAT_INT_STS2 (1 << 5) > -#define PM800_GPADC2_INT_STS2 (1 << 6) > -#define PM800_GPADC3_INT_STS2 (1 << 7) > +#define PM800_GPADC2_INT_STS2 (1 << 6) > +#define PM800_GPADC3_INT_STS2 (1 << 7) > > -#define PM800_INT_STATUS3 (0x07) > +#define PM800_INT_STATUS3 0x07 > > -#define PM800_INT_STATUS4 (0x08) > +#define PM800_INT_STATUS4 0x08 > #define PM800_GPIO0_INT_STS4 (1 << 0) > #define PM800_GPIO1_INT_STS4 (1 << 1) > #define PM800_GPIO2_INT_STS4 (1 << 2) > #define PM800_GPIO3_INT_STS4 (1 << 3) > #define PM800_GPIO4_INT_STS4 (1 << 4) > > -#define PM800_INT_ENA_1 (0x09) > +#define PM800_INT_ENA_1 0x09 > #define PM800_ONKEY_INT_ENA1 (1 << 0) > #define PM800_EXTON_INT_ENA1 (1 << 1) > -#define PM800_CHG_INT_ENA1 (1 << 2) > -#define PM800_BAT_INT_ENA1 (1 << 3) > -#define PM800_RTC_INT_ENA1 (1 << 4) > +#define PM800_CHG_INT_ENA1 (1 << 2) > +#define PM800_BAT_INT_ENA1 (1 << 3) > +#define PM800_RTC_INT_ENA1 (1 << 4) > #define PM800_CLASSD_OC_INT_ENA1 (1 << 5) > > -#define PM800_INT_ENA_2 (0x0A) > +#define PM800_INT_ENA_2 0x0A > #define PM800_VBAT_INT_ENA2 (1 << 0) > #define PM800_VSYS_INT_ENA2 (1 << 1) > #define PM800_VCHG_INT_ENA2 (1 << 2) > #define PM800_TINT_INT_ENA2 (1 << 3) > > -#define PM800_INT_ENA_3 (0x0B) > +#define PM800_INT_ENA_3 0x0B > #define PM800_GPADC0_INT_ENA3 (1 << 0) > #define PM800_GPADC1_INT_ENA3 (1 << 1) > #define PM800_GPADC2_INT_ENA3 (1 << 2) > #define PM800_GPADC3_INT_ENA3 (1 << 3) > #define PM800_GPADC4_INT_ENA3 (1 << 4) > > -#define PM800_INT_ENA_4 (0x0C) > +#define PM800_INT_ENA_4 0x0C > #define PM800_GPIO0_INT_ENA4 (1 << 0) > #define PM800_GPIO1_INT_ENA4 (1 << 1) > #define PM800_GPIO2_INT_ENA4 (1 << 2) > @@ -86,7 +86,7 @@ > #define PM800_GPIO4_INT_ENA4 (1 << 4) > > /* number of INT_ENA & INT_STATUS regs */ > -#define PM800_INT_REG_NUM (4) > +#define PM800_INT_REG_NUM 4 > > /* Interrupt Number in 88PM800 */ > enum { > @@ -114,7 +114,7 @@ enum { > }; > > /* PM800: generation identification number */ > -#define PM800_CHIP_GEN_ID_NUM 0x3 > +#define PM800_CHIP_GEN_ID_NUM 0x3 > > static const struct i2c_device_id pm80x_id_table[] = { > {"88PM800", 0}, > @@ -129,47 +129,47 @@ static const struct of_device_id pm80x_of_match_table[] = { > > static struct resource rtc_resources[] = { > { > - .name = "88pm80x-rtc", > - .start = PM800_IRQ_RTC, > - .end = PM800_IRQ_RTC, > - .flags = IORESOURCE_IRQ, > - }, > + .name = "88pm80x-rtc", > + .start = PM800_IRQ_RTC, > + .end = PM800_IRQ_RTC, > + .flags = IORESOURCE_IRQ, > + }, > }; > > static struct mfd_cell rtc_devs[] = { > { > - .name = "88pm80x-rtc", > - .of_compatible = "marvell,88pm80x-rtc", > - .num_resources = ARRAY_SIZE(rtc_resources), > - .resources = &rtc_resources[0], > - .id = -1, > - }, > + .name = "88pm80x-rtc", > + .of_compatible = "marvell,88pm80x-rtc", > + .num_resources = ARRAY_SIZE(rtc_resources), > + .resources = &rtc_resources[0], > + .id = -1, > + }, > }; > > static struct resource onkey_resources[] = { > { > - .name = "88pm80x-onkey", > - .start = PM800_IRQ_ONKEY, > - .end = PM800_IRQ_ONKEY, > - .flags = IORESOURCE_IRQ, > - }, > + .name = "88pm80x-onkey", > + .start = PM800_IRQ_ONKEY, > + .end = PM800_IRQ_ONKEY, > + .flags = IORESOURCE_IRQ, > + }, > }; > > static const struct mfd_cell onkey_devs[] = { > { > - .name = "88pm80x-onkey", > - .of_compatible = "marvell,88pm80x-onkey", > - .num_resources = 1, > - .resources = &onkey_resources[0], > - .id = -1, > - }, > + .name = "88pm80x-onkey", > + .of_compatible = "marvell,88pm80x-onkey", > + .num_resources = 1, > + .resources = &onkey_resources[0], > + .id = -1, > + }, > }; > > static const struct mfd_cell regulator_devs[] = { > { > - .name = "88pm80x-regulator", > - .of_compatible = "marvell,88pm80x-regulator", > - .id = -1, > + .name = "88pm80x-regulator", > + .of_compatible = "marvell,88pm80x-regulator", > + .id = -1, > }, > }; > > @@ -323,8 +323,8 @@ out: > static int device_onkey_init(struct pm80x_chip *chip) > { > return mfd_add_devices(chip->dev, 0, &onkey_devs[0], > - ARRAY_SIZE(onkey_devs), &onkey_resources[0], 0, > - NULL); > + ARRAY_SIZE(onkey_devs), &onkey_resources[0], 0, > + NULL); > } > > static int device_rtc_init(struct pm80x_chip *chip) > @@ -335,13 +335,13 @@ static int device_rtc_init(struct pm80x_chip *chip) > rtc_devs[0].pdata_size = pdata->rtc ? sizeof(struct pm80x_rtc_pdata) : 0; > > return mfd_add_devices(chip->dev, 0, &rtc_devs[0], > - ARRAY_SIZE(rtc_devs), NULL, 0, NULL); > + ARRAY_SIZE(rtc_devs), NULL, 0, NULL); > } > > static int device_regulator_init(struct pm80x_chip *chip) > { > return mfd_add_devices(chip->dev, 0, ®ulator_devs[0], > - ARRAY_SIZE(regulator_devs), NULL, 0, NULL); > + ARRAY_SIZE(regulator_devs), NULL, 0, NULL); > } > > static int device_irq_init_800(struct pm80x_chip *chip) > @@ -358,11 +358,10 @@ static int device_irq_init_800(struct pm80x_chip *chip) > > /* > * irq_clr_on_wr defines the way of clearing interrupt by > - * read/write(0/1). It's read-clear by default. > + * read/write(0/1). It's read-clear by default. > */ > - mask = > - PM800_WAKEUP2_INV_INT | PM800_WAKEUP2_INT_CLEAR | > - PM800_WAKEUP2_INT_MASK; > + mask = PM800_WAKEUP2_INV_INT | PM800_WAKEUP2_INT_CLEAR | > + PM800_WAKEUP2_INT_MASK; > > irq_clr_mode = pdata->irq_clr_method == PM800_IRQ_CLR_ON_WRITE ? > PM800_WAKEUP2_INT_WRITE_CLEAR : PM800_WAKEUP2_INT_READ_CLEAR; > @@ -371,9 +370,8 @@ static int device_irq_init_800(struct pm80x_chip *chip) > if (ret < 0) > goto out; > > - ret = > - regmap_add_irq_chip(chip->regmap, chip->irq, flags, -1, > - chip->regmap_irq_chip, &chip->irq_data); > + ret = regmap_add_irq_chip(chip->regmap, chip->irq, flags, -1, > + chip->regmap_irq_chip, &chip->irq_data); > > out: > return ret; > @@ -409,18 +407,18 @@ static int pm800_pages_init(struct pm80x_chip *chip) > > /* PM800 block power page */ > subchip->power_page = i2c_new_dummy(client->adapter, > - subchip->power_page_addr); > + subchip->power_page_addr); > if (subchip->power_page == NULL) { > ret = -ENODEV; > goto out; > } > > subchip->regmap_power = devm_regmap_init_i2c(subchip->power_page, > - &pm80x_regmap_config); > + &pm80x_regmap_config); > if (IS_ERR(subchip->regmap_power)) { > ret = PTR_ERR(subchip->regmap_power); > dev_err(chip->dev, > - "Failed to allocate regmap_power: %d\n", ret); > + "Failed to allocate regmap_power: %d\n", ret); > goto out; > } > > @@ -428,18 +426,18 @@ static int pm800_pages_init(struct pm80x_chip *chip) > > /* PM800 block GPADC */ > subchip->gpadc_page = i2c_new_dummy(client->adapter, > - subchip->gpadc_page_addr); > + subchip->gpadc_page_addr); > if (subchip->gpadc_page == NULL) { > ret = -ENODEV; > goto out; > } > > subchip->regmap_gpadc = devm_regmap_init_i2c(subchip->gpadc_page, > - &pm80x_regmap_config); > + &pm80x_regmap_config); > if (IS_ERR(subchip->regmap_gpadc)) { > ret = PTR_ERR(subchip->regmap_gpadc); > dev_err(chip->dev, > - "Failed to allocate regmap_gpadc: %d\n", ret); > + "Failed to allocate regmap_gpadc: %d\n", ret); > goto out; > } > i2c_set_clientdata(subchip->gpadc_page, chip); > @@ -620,8 +618,7 @@ static int pm800_probe(struct i2c_client *client, > chip = i2c_get_clientdata(client); > > /* init subchip for PM800 */ > - subchip = > - devm_kzalloc(&client->dev, sizeof(struct pm80x_subchip), > + subchip = devm_kzalloc(&client->dev, sizeof(struct pm80x_subchip), > GFP_KERNEL); > if (!subchip) { > ret = -ENOMEM; > @@ -684,7 +681,7 @@ static struct i2c_driver pm800_driver = { > .owner = THIS_MODULE, > .pm = &pm80x_pm_ops, > .of_match_table = pm80x_of_match_table, > - }, > + }, > .probe = pm800_probe, > .remove = pm800_remove, > .id_table = pm80x_id_table, -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog From mboxrd@z Thu Jan 1 00:00:00 1970 From: lee.jones@linaro.org (Lee Jones) Date: Tue, 25 Aug 2015 08:52:46 +0100 Subject: [PATCH-v2 1/5] mfd: 88pm800: Fix tabbing issue In-Reply-To: <1440442594-3102-3-git-send-email-vaibhav.hiremath@linaro.org> References: <1440442594-3102-1-git-send-email-vaibhav.hiremath@linaro.org> <1440442594-3102-3-git-send-email-vaibhav.hiremath@linaro.org> Message-ID: <20150825075246.GF19409@x1> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, 25 Aug 2015, Vaibhav Hiremath wrote: > Driver had coding style issues where spaces were used instead > of tabs. This patch fixes them all. > > Signed-off-by: Vaibhav Hiremath > --- > drivers/mfd/88pm800.c | 125 ++++++++++++++++++++++++-------------------------- > 1 file changed, 61 insertions(+), 64 deletions(-) Same comment as before. How similar is this file to the other one? Can you reduce the size by having shared register defines? > diff --git a/drivers/mfd/88pm800.c b/drivers/mfd/88pm800.c > index f104a32..c4e097d 100644 > --- a/drivers/mfd/88pm800.c > +++ b/drivers/mfd/88pm800.c > @@ -30,55 +30,55 @@ > #include > > /* Interrupt Registers */ > -#define PM800_INT_STATUS1 (0x05) > +#define PM800_INT_STATUS1 0x05 > #define PM800_ONKEY_INT_STS1 (1 << 0) > #define PM800_EXTON_INT_STS1 (1 << 1) > -#define PM800_CHG_INT_STS1 (1 << 2) > -#define PM800_BAT_INT_STS1 (1 << 3) > -#define PM800_RTC_INT_STS1 (1 << 4) > +#define PM800_CHG_INT_STS1 (1 << 2) > +#define PM800_BAT_INT_STS1 (1 << 3) > +#define PM800_RTC_INT_STS1 (1 << 4) > #define PM800_CLASSD_OC_INT_STS1 (1 << 5) > > -#define PM800_INT_STATUS2 (0x06) > +#define PM800_INT_STATUS2 0x06 > #define PM800_VBAT_INT_STS2 (1 << 0) > #define PM800_VSYS_INT_STS2 (1 << 1) > #define PM800_VCHG_INT_STS2 (1 << 2) > #define PM800_TINT_INT_STS2 (1 << 3) > -#define PM800_GPADC0_INT_STS2 (1 << 4) > +#define PM800_GPADC0_INT_STS2 (1 << 4) > #define PM800_TBAT_INT_STS2 (1 << 5) > -#define PM800_GPADC2_INT_STS2 (1 << 6) > -#define PM800_GPADC3_INT_STS2 (1 << 7) > +#define PM800_GPADC2_INT_STS2 (1 << 6) > +#define PM800_GPADC3_INT_STS2 (1 << 7) > > -#define PM800_INT_STATUS3 (0x07) > +#define PM800_INT_STATUS3 0x07 > > -#define PM800_INT_STATUS4 (0x08) > +#define PM800_INT_STATUS4 0x08 > #define PM800_GPIO0_INT_STS4 (1 << 0) > #define PM800_GPIO1_INT_STS4 (1 << 1) > #define PM800_GPIO2_INT_STS4 (1 << 2) > #define PM800_GPIO3_INT_STS4 (1 << 3) > #define PM800_GPIO4_INT_STS4 (1 << 4) > > -#define PM800_INT_ENA_1 (0x09) > +#define PM800_INT_ENA_1 0x09 > #define PM800_ONKEY_INT_ENA1 (1 << 0) > #define PM800_EXTON_INT_ENA1 (1 << 1) > -#define PM800_CHG_INT_ENA1 (1 << 2) > -#define PM800_BAT_INT_ENA1 (1 << 3) > -#define PM800_RTC_INT_ENA1 (1 << 4) > +#define PM800_CHG_INT_ENA1 (1 << 2) > +#define PM800_BAT_INT_ENA1 (1 << 3) > +#define PM800_RTC_INT_ENA1 (1 << 4) > #define PM800_CLASSD_OC_INT_ENA1 (1 << 5) > > -#define PM800_INT_ENA_2 (0x0A) > +#define PM800_INT_ENA_2 0x0A > #define PM800_VBAT_INT_ENA2 (1 << 0) > #define PM800_VSYS_INT_ENA2 (1 << 1) > #define PM800_VCHG_INT_ENA2 (1 << 2) > #define PM800_TINT_INT_ENA2 (1 << 3) > > -#define PM800_INT_ENA_3 (0x0B) > +#define PM800_INT_ENA_3 0x0B > #define PM800_GPADC0_INT_ENA3 (1 << 0) > #define PM800_GPADC1_INT_ENA3 (1 << 1) > #define PM800_GPADC2_INT_ENA3 (1 << 2) > #define PM800_GPADC3_INT_ENA3 (1 << 3) > #define PM800_GPADC4_INT_ENA3 (1 << 4) > > -#define PM800_INT_ENA_4 (0x0C) > +#define PM800_INT_ENA_4 0x0C > #define PM800_GPIO0_INT_ENA4 (1 << 0) > #define PM800_GPIO1_INT_ENA4 (1 << 1) > #define PM800_GPIO2_INT_ENA4 (1 << 2) > @@ -86,7 +86,7 @@ > #define PM800_GPIO4_INT_ENA4 (1 << 4) > > /* number of INT_ENA & INT_STATUS regs */ > -#define PM800_INT_REG_NUM (4) > +#define PM800_INT_REG_NUM 4 > > /* Interrupt Number in 88PM800 */ > enum { > @@ -114,7 +114,7 @@ enum { > }; > > /* PM800: generation identification number */ > -#define PM800_CHIP_GEN_ID_NUM 0x3 > +#define PM800_CHIP_GEN_ID_NUM 0x3 > > static const struct i2c_device_id pm80x_id_table[] = { > {"88PM800", 0}, > @@ -129,47 +129,47 @@ static const struct of_device_id pm80x_of_match_table[] = { > > static struct resource rtc_resources[] = { > { > - .name = "88pm80x-rtc", > - .start = PM800_IRQ_RTC, > - .end = PM800_IRQ_RTC, > - .flags = IORESOURCE_IRQ, > - }, > + .name = "88pm80x-rtc", > + .start = PM800_IRQ_RTC, > + .end = PM800_IRQ_RTC, > + .flags = IORESOURCE_IRQ, > + }, > }; > > static struct mfd_cell rtc_devs[] = { > { > - .name = "88pm80x-rtc", > - .of_compatible = "marvell,88pm80x-rtc", > - .num_resources = ARRAY_SIZE(rtc_resources), > - .resources = &rtc_resources[0], > - .id = -1, > - }, > + .name = "88pm80x-rtc", > + .of_compatible = "marvell,88pm80x-rtc", > + .num_resources = ARRAY_SIZE(rtc_resources), > + .resources = &rtc_resources[0], > + .id = -1, > + }, > }; > > static struct resource onkey_resources[] = { > { > - .name = "88pm80x-onkey", > - .start = PM800_IRQ_ONKEY, > - .end = PM800_IRQ_ONKEY, > - .flags = IORESOURCE_IRQ, > - }, > + .name = "88pm80x-onkey", > + .start = PM800_IRQ_ONKEY, > + .end = PM800_IRQ_ONKEY, > + .flags = IORESOURCE_IRQ, > + }, > }; > > static const struct mfd_cell onkey_devs[] = { > { > - .name = "88pm80x-onkey", > - .of_compatible = "marvell,88pm80x-onkey", > - .num_resources = 1, > - .resources = &onkey_resources[0], > - .id = -1, > - }, > + .name = "88pm80x-onkey", > + .of_compatible = "marvell,88pm80x-onkey", > + .num_resources = 1, > + .resources = &onkey_resources[0], > + .id = -1, > + }, > }; > > static const struct mfd_cell regulator_devs[] = { > { > - .name = "88pm80x-regulator", > - .of_compatible = "marvell,88pm80x-regulator", > - .id = -1, > + .name = "88pm80x-regulator", > + .of_compatible = "marvell,88pm80x-regulator", > + .id = -1, > }, > }; > > @@ -323,8 +323,8 @@ out: > static int device_onkey_init(struct pm80x_chip *chip) > { > return mfd_add_devices(chip->dev, 0, &onkey_devs[0], > - ARRAY_SIZE(onkey_devs), &onkey_resources[0], 0, > - NULL); > + ARRAY_SIZE(onkey_devs), &onkey_resources[0], 0, > + NULL); > } > > static int device_rtc_init(struct pm80x_chip *chip) > @@ -335,13 +335,13 @@ static int device_rtc_init(struct pm80x_chip *chip) > rtc_devs[0].pdata_size = pdata->rtc ? sizeof(struct pm80x_rtc_pdata) : 0; > > return mfd_add_devices(chip->dev, 0, &rtc_devs[0], > - ARRAY_SIZE(rtc_devs), NULL, 0, NULL); > + ARRAY_SIZE(rtc_devs), NULL, 0, NULL); > } > > static int device_regulator_init(struct pm80x_chip *chip) > { > return mfd_add_devices(chip->dev, 0, ®ulator_devs[0], > - ARRAY_SIZE(regulator_devs), NULL, 0, NULL); > + ARRAY_SIZE(regulator_devs), NULL, 0, NULL); > } > > static int device_irq_init_800(struct pm80x_chip *chip) > @@ -358,11 +358,10 @@ static int device_irq_init_800(struct pm80x_chip *chip) > > /* > * irq_clr_on_wr defines the way of clearing interrupt by > - * read/write(0/1). It's read-clear by default. > + * read/write(0/1). It's read-clear by default. > */ > - mask = > - PM800_WAKEUP2_INV_INT | PM800_WAKEUP2_INT_CLEAR | > - PM800_WAKEUP2_INT_MASK; > + mask = PM800_WAKEUP2_INV_INT | PM800_WAKEUP2_INT_CLEAR | > + PM800_WAKEUP2_INT_MASK; > > irq_clr_mode = pdata->irq_clr_method == PM800_IRQ_CLR_ON_WRITE ? > PM800_WAKEUP2_INT_WRITE_CLEAR : PM800_WAKEUP2_INT_READ_CLEAR; > @@ -371,9 +370,8 @@ static int device_irq_init_800(struct pm80x_chip *chip) > if (ret < 0) > goto out; > > - ret = > - regmap_add_irq_chip(chip->regmap, chip->irq, flags, -1, > - chip->regmap_irq_chip, &chip->irq_data); > + ret = regmap_add_irq_chip(chip->regmap, chip->irq, flags, -1, > + chip->regmap_irq_chip, &chip->irq_data); > > out: > return ret; > @@ -409,18 +407,18 @@ static int pm800_pages_init(struct pm80x_chip *chip) > > /* PM800 block power page */ > subchip->power_page = i2c_new_dummy(client->adapter, > - subchip->power_page_addr); > + subchip->power_page_addr); > if (subchip->power_page == NULL) { > ret = -ENODEV; > goto out; > } > > subchip->regmap_power = devm_regmap_init_i2c(subchip->power_page, > - &pm80x_regmap_config); > + &pm80x_regmap_config); > if (IS_ERR(subchip->regmap_power)) { > ret = PTR_ERR(subchip->regmap_power); > dev_err(chip->dev, > - "Failed to allocate regmap_power: %d\n", ret); > + "Failed to allocate regmap_power: %d\n", ret); > goto out; > } > > @@ -428,18 +426,18 @@ static int pm800_pages_init(struct pm80x_chip *chip) > > /* PM800 block GPADC */ > subchip->gpadc_page = i2c_new_dummy(client->adapter, > - subchip->gpadc_page_addr); > + subchip->gpadc_page_addr); > if (subchip->gpadc_page == NULL) { > ret = -ENODEV; > goto out; > } > > subchip->regmap_gpadc = devm_regmap_init_i2c(subchip->gpadc_page, > - &pm80x_regmap_config); > + &pm80x_regmap_config); > if (IS_ERR(subchip->regmap_gpadc)) { > ret = PTR_ERR(subchip->regmap_gpadc); > dev_err(chip->dev, > - "Failed to allocate regmap_gpadc: %d\n", ret); > + "Failed to allocate regmap_gpadc: %d\n", ret); > goto out; > } > i2c_set_clientdata(subchip->gpadc_page, chip); > @@ -620,8 +618,7 @@ static int pm800_probe(struct i2c_client *client, > chip = i2c_get_clientdata(client); > > /* init subchip for PM800 */ > - subchip = > - devm_kzalloc(&client->dev, sizeof(struct pm80x_subchip), > + subchip = devm_kzalloc(&client->dev, sizeof(struct pm80x_subchip), > GFP_KERNEL); > if (!subchip) { > ret = -ENOMEM; > @@ -684,7 +681,7 @@ static struct i2c_driver pm800_driver = { > .owner = THIS_MODULE, > .pm = &pm80x_pm_ops, > .of_match_table = pm80x_of_match_table, > - }, > + }, > .probe = pm800_probe, > .remove = pm800_remove, > .id_table = pm80x_id_table, -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Subject: Re: [PATCH-v2 1/5] mfd: 88pm800: Fix tabbing issue Date: Tue, 25 Aug 2015 08:52:46 +0100 Message-ID: <20150825075246.GF19409@x1> References: <1440442594-3102-1-git-send-email-vaibhav.hiremath@linaro.org> <1440442594-3102-3-git-send-email-vaibhav.hiremath@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1440442594-3102-3-git-send-email-vaibhav.hiremath@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Vaibhav Hiremath Cc: devicetree@vger.kernel.org, k.kozlowski@samsung.com, mturquette@baylibre.com, linux-kernel@vger.kernel.org, robh+dt@kernel.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org T24gVHVlLCAyNSBBdWcgMjAxNSwgVmFpYmhhdiBIaXJlbWF0aCB3cm90ZToKCj4gRHJpdmVyIGhh ZCBjb2Rpbmcgc3R5bGUgaXNzdWVzIHdoZXJlIHNwYWNlcyB3ZXJlIHVzZWQgaW5zdGVhZAo+IG9m IHRhYnMuIFRoaXMgcGF0Y2ggZml4ZXMgdGhlbSBhbGwuCj4gCj4gU2lnbmVkLW9mZi1ieTogVmFp YmhhdiBIaXJlbWF0aCA8dmFpYmhhdi5oaXJlbWF0aEBsaW5hcm8ub3JnPgo+IC0tLQo+ICBkcml2 ZXJzL21mZC84OHBtODAwLmMgfCAxMjUgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDY0 IGRlbGV0aW9ucygtKQoKU2FtZSBjb21tZW50IGFzIGJlZm9yZS4KCkhvdyBzaW1pbGFyIGlzIHRo aXMgZmlsZSB0byB0aGUgb3RoZXIgb25lPwoKQ2FuIHlvdSByZWR1Y2UgdGhlIHNpemUgYnkgaGF2 aW5nIHNoYXJlZCByZWdpc3RlciBkZWZpbmVzPwoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQv ODhwbTgwMC5jIGIvZHJpdmVycy9tZmQvODhwbTgwMC5jCj4gaW5kZXggZjEwNGEzMi4uYzRlMDk3 ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21mZC84OHBtODAwLmMKPiArKysgYi9kcml2ZXJzL21m ZC84OHBtODAwLmMKPiBAQCAtMzAsNTUgKzMwLDU1IEBACj4gICNpbmNsdWRlIDxsaW51eC9vZl9k ZXZpY2UuaD4KPiAgCj4gIC8qIEludGVycnVwdCBSZWdpc3RlcnMgKi8KPiAtI2RlZmluZSBQTTgw MF9JTlRfU1RBVFVTMQkJKDB4MDUpCj4gKyNkZWZpbmUgUE04MDBfSU5UX1NUQVRVUzEJCTB4MDUK PiAgI2RlZmluZSBQTTgwMF9PTktFWV9JTlRfU1RTMQkJKDEgPDwgMCkKPiAgI2RlZmluZSBQTTgw MF9FWFRPTl9JTlRfU1RTMQkJKDEgPDwgMSkKPiAtI2RlZmluZSBQTTgwMF9DSEdfSU5UX1NUUzEJ CQkoMSA8PCAyKQo+IC0jZGVmaW5lIFBNODAwX0JBVF9JTlRfU1RTMQkJCSgxIDw8IDMpCj4gLSNk ZWZpbmUgUE04MDBfUlRDX0lOVF9TVFMxCQkJKDEgPDwgNCkKPiArI2RlZmluZSBQTTgwMF9DSEdf SU5UX1NUUzEJCSgxIDw8IDIpCj4gKyNkZWZpbmUgUE04MDBfQkFUX0lOVF9TVFMxCQkoMSA8PCAz KQo+ICsjZGVmaW5lIFBNODAwX1JUQ19JTlRfU1RTMQkJKDEgPDwgNCkKPiAgI2RlZmluZSBQTTgw MF9DTEFTU0RfT0NfSU5UX1NUUzEJKDEgPDwgNSkKPiAgCj4gLSNkZWZpbmUgUE04MDBfSU5UX1NU QVRVUzIJCSgweDA2KQo+ICsjZGVmaW5lIFBNODAwX0lOVF9TVEFUVVMyCQkweDA2Cj4gICNkZWZp bmUgUE04MDBfVkJBVF9JTlRfU1RTMgkJKDEgPDwgMCkKPiAgI2RlZmluZSBQTTgwMF9WU1lTX0lO VF9TVFMyCQkoMSA8PCAxKQo+ICAjZGVmaW5lIFBNODAwX1ZDSEdfSU5UX1NUUzIJCSgxIDw8IDIp Cj4gICNkZWZpbmUgUE04MDBfVElOVF9JTlRfU1RTMgkJKDEgPDwgMykKPiAtI2RlZmluZSBQTTgw MF9HUEFEQzBfSU5UX1NUUzIJKDEgPDwgNCkKPiArI2RlZmluZSBQTTgwMF9HUEFEQzBfSU5UX1NU UzIJCSgxIDw8IDQpCj4gICNkZWZpbmUgUE04MDBfVEJBVF9JTlRfU1RTMgkJKDEgPDwgNSkKPiAt I2RlZmluZSBQTTgwMF9HUEFEQzJfSU5UX1NUUzIJKDEgPDwgNikKPiAtI2RlZmluZSBQTTgwMF9H UEFEQzNfSU5UX1NUUzIJKDEgPDwgNykKPiArI2RlZmluZSBQTTgwMF9HUEFEQzJfSU5UX1NUUzIJ CSgxIDw8IDYpCj4gKyNkZWZpbmUgUE04MDBfR1BBREMzX0lOVF9TVFMyCQkoMSA8PCA3KQo+ICAK PiAtI2RlZmluZSBQTTgwMF9JTlRfU1RBVFVTMwkJKDB4MDcpCj4gKyNkZWZpbmUgUE04MDBfSU5U X1NUQVRVUzMJCTB4MDcKPiAgCj4gLSNkZWZpbmUgUE04MDBfSU5UX1NUQVRVUzQJCSgweDA4KQo+ ICsjZGVmaW5lIFBNODAwX0lOVF9TVEFUVVM0CQkweDA4Cj4gICNkZWZpbmUgUE04MDBfR1BJTzBf SU5UX1NUUzQJCSgxIDw8IDApCj4gICNkZWZpbmUgUE04MDBfR1BJTzFfSU5UX1NUUzQJCSgxIDw8 IDEpCj4gICNkZWZpbmUgUE04MDBfR1BJTzJfSU5UX1NUUzQJCSgxIDw8IDIpCj4gICNkZWZpbmUg UE04MDBfR1BJTzNfSU5UX1NUUzQJCSgxIDw8IDMpCj4gICNkZWZpbmUgUE04MDBfR1BJTzRfSU5U X1NUUzQJCSgxIDw8IDQpCj4gIAo+IC0jZGVmaW5lIFBNODAwX0lOVF9FTkFfMQkJKDB4MDkpCj4g KyNkZWZpbmUgUE04MDBfSU5UX0VOQV8xCQkJMHgwOQo+ICAjZGVmaW5lIFBNODAwX09OS0VZX0lO VF9FTkExCQkoMSA8PCAwKQo+ICAjZGVmaW5lIFBNODAwX0VYVE9OX0lOVF9FTkExCQkoMSA8PCAx KQo+IC0jZGVmaW5lIFBNODAwX0NIR19JTlRfRU5BMQkJCSgxIDw8IDIpCj4gLSNkZWZpbmUgUE04 MDBfQkFUX0lOVF9FTkExCQkJKDEgPDwgMykKPiAtI2RlZmluZSBQTTgwMF9SVENfSU5UX0VOQTEJ CQkoMSA8PCA0KQo+ICsjZGVmaW5lIFBNODAwX0NIR19JTlRfRU5BMQkJKDEgPDwgMikKPiArI2Rl ZmluZSBQTTgwMF9CQVRfSU5UX0VOQTEJCSgxIDw8IDMpCj4gKyNkZWZpbmUgUE04MDBfUlRDX0lO VF9FTkExCQkoMSA8PCA0KQo+ICAjZGVmaW5lIFBNODAwX0NMQVNTRF9PQ19JTlRfRU5BMQkoMSA8 PCA1KQo+ICAKPiAtI2RlZmluZSBQTTgwMF9JTlRfRU5BXzIJCSgweDBBKQo+ICsjZGVmaW5lIFBN ODAwX0lOVF9FTkFfMgkJCTB4MEEKPiAgI2RlZmluZSBQTTgwMF9WQkFUX0lOVF9FTkEyCQkoMSA8 PCAwKQo+ICAjZGVmaW5lIFBNODAwX1ZTWVNfSU5UX0VOQTIJCSgxIDw8IDEpCj4gICNkZWZpbmUg UE04MDBfVkNIR19JTlRfRU5BMgkJKDEgPDwgMikKPiAgI2RlZmluZSBQTTgwMF9USU5UX0lOVF9F TkEyCQkoMSA8PCAzKQo+ICAKPiAtI2RlZmluZSBQTTgwMF9JTlRfRU5BXzMJCSgweDBCKQo+ICsj ZGVmaW5lIFBNODAwX0lOVF9FTkFfMwkJCTB4MEIKPiAgI2RlZmluZSBQTTgwMF9HUEFEQzBfSU5U X0VOQTMJCSgxIDw8IDApCj4gICNkZWZpbmUgUE04MDBfR1BBREMxX0lOVF9FTkEzCQkoMSA8PCAx KQo+ICAjZGVmaW5lIFBNODAwX0dQQURDMl9JTlRfRU5BMwkJKDEgPDwgMikKPiAgI2RlZmluZSBQ TTgwMF9HUEFEQzNfSU5UX0VOQTMJCSgxIDw8IDMpCj4gICNkZWZpbmUgUE04MDBfR1BBREM0X0lO VF9FTkEzCQkoMSA8PCA0KQo+ICAKPiAtI2RlZmluZSBQTTgwMF9JTlRfRU5BXzQJCSgweDBDKQo+ ICsjZGVmaW5lIFBNODAwX0lOVF9FTkFfNAkJCTB4MEMKPiAgI2RlZmluZSBQTTgwMF9HUElPMF9J TlRfRU5BNAkJKDEgPDwgMCkKPiAgI2RlZmluZSBQTTgwMF9HUElPMV9JTlRfRU5BNAkJKDEgPDwg MSkKPiAgI2RlZmluZSBQTTgwMF9HUElPMl9JTlRfRU5BNAkJKDEgPDwgMikKPiBAQCAtODYsNyAr ODYsNyBAQAo+ICAjZGVmaW5lIFBNODAwX0dQSU80X0lOVF9FTkE0CQkoMSA8PCA0KQo+ICAKPiAg LyogbnVtYmVyIG9mIElOVF9FTkEgJiBJTlRfU1RBVFVTIHJlZ3MgKi8KPiAtI2RlZmluZSBQTTgw MF9JTlRfUkVHX05VTQkJCSg0KQo+ICsjZGVmaW5lIFBNODAwX0lOVF9SRUdfTlVNCQk0Cj4gIAo+ ICAvKiBJbnRlcnJ1cHQgTnVtYmVyIGluIDg4UE04MDAgKi8KPiAgZW51bSB7Cj4gQEAgLTExNCw3 ICsxMTQsNyBAQCBlbnVtIHsKPiAgfTsKPiAgCj4gIC8qIFBNODAwOiBnZW5lcmF0aW9uIGlkZW50 aWZpY2F0aW9uIG51bWJlciAqLwo+IC0jZGVmaW5lIFBNODAwX0NISVBfR0VOX0lEX05VTQkweDMK PiArI2RlZmluZSBQTTgwMF9DSElQX0dFTl9JRF9OVU0JCTB4Mwo+ICAKPiAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpMmNfZGV2aWNlX2lkIHBtODB4X2lkX3RhYmxlW10gPSB7Cj4gIAl7Ijg4UE04MDAi LCAwfSwKPiBAQCAtMTI5LDQ3ICsxMjksNDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZp Y2VfaWQgcG04MHhfb2ZfbWF0Y2hfdGFibGVbXSA9IHsKPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgcmVz b3VyY2UgcnRjX3Jlc291cmNlc1tdID0gewo+ICAJewo+IC0JIC5uYW1lID0gIjg4cG04MHgtcnRj IiwKPiAtCSAuc3RhcnQgPSBQTTgwMF9JUlFfUlRDLAo+IC0JIC5lbmQgPSBQTTgwMF9JUlFfUlRD LAo+IC0JIC5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAo+IC0JIH0sCj4gKwkJLm5hbWUgPSAiODhw bTgweC1ydGMiLAo+ICsJCS5zdGFydCA9IFBNODAwX0lSUV9SVEMsCj4gKwkJLmVuZCA9IFBNODAw X0lSUV9SVEMsCj4gKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCj4gKwl9LAo+ICB9Owo+ICAK PiAgc3RhdGljIHN0cnVjdCBtZmRfY2VsbCBydGNfZGV2c1tdID0gewo+ICAJewo+IC0JIC5uYW1l ID0gIjg4cG04MHgtcnRjIiwKPiAtCSAub2ZfY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLDg4cG04MHgt cnRjIiwKPiAtCSAubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUocnRjX3Jlc291cmNlcyksCj4g LQkgLnJlc291cmNlcyA9ICZydGNfcmVzb3VyY2VzWzBdLAo+IC0JIC5pZCA9IC0xLAo+IC0JIH0s Cj4gKwkJLm5hbWUgPSAiODhwbTgweC1ydGMiLAo+ICsJCS5vZl9jb21wYXRpYmxlID0gIm1hcnZl bGwsODhwbTgweC1ydGMiLAo+ICsJCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRShydGNfcmVz b3VyY2VzKSwKPiArCQkucmVzb3VyY2VzID0gJnJ0Y19yZXNvdXJjZXNbMF0sCj4gKwkJLmlkID0g LTEsCj4gKwl9LAo+ICB9Owo+ICAKPiAgc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvbmtleV9yZXNv dXJjZXNbXSA9IHsKPiAgCXsKPiAtCSAubmFtZSA9ICI4OHBtODB4LW9ua2V5IiwKPiAtCSAuc3Rh cnQgPSBQTTgwMF9JUlFfT05LRVksCj4gLQkgLmVuZCA9IFBNODAwX0lSUV9PTktFWSwKPiAtCSAu ZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKPiAtCSB9LAo+ICsJCS5uYW1lID0gIjg4cG04MHgtb25r ZXkiLAo+ICsJCS5zdGFydCA9IFBNODAwX0lSUV9PTktFWSwKPiArCQkuZW5kID0gUE04MDBfSVJR X09OS0VZLAo+ICsJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAo+ICsJfSwKPiAgfTsKPiAgCj4g IHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgb25rZXlfZGV2c1tdID0gewo+ICAJewo+IC0J IC5uYW1lID0gIjg4cG04MHgtb25rZXkiLAo+IC0JIC5vZl9jb21wYXRpYmxlID0gIm1hcnZlbGws ODhwbTgweC1vbmtleSIsCj4gLQkgLm51bV9yZXNvdXJjZXMgPSAxLAo+IC0JIC5yZXNvdXJjZXMg PSAmb25rZXlfcmVzb3VyY2VzWzBdLAo+IC0JIC5pZCA9IC0xLAo+IC0JIH0sCj4gKwkJLm5hbWUg PSAiODhwbTgweC1vbmtleSIsCj4gKwkJLm9mX2NvbXBhdGlibGUgPSAibWFydmVsbCw4OHBtODB4 LW9ua2V5IiwKPiArCQkubnVtX3Jlc291cmNlcyA9IDEsCj4gKwkJLnJlc291cmNlcyA9ICZvbmtl eV9yZXNvdXJjZXNbMF0sCj4gKwkJLmlkID0gLTEsCj4gKwl9LAo+ICB9Owo+ICAKPiAgc3RhdGlj IGNvbnN0IHN0cnVjdCBtZmRfY2VsbCByZWd1bGF0b3JfZGV2c1tdID0gewo+ICAJewo+IC0JIC5u YW1lID0gIjg4cG04MHgtcmVndWxhdG9yIiwKPiAtCSAub2ZfY29tcGF0aWJsZSA9ICJtYXJ2ZWxs LDg4cG04MHgtcmVndWxhdG9yIiwKPiAtCSAuaWQgPSAtMSwKPiArCQkubmFtZSA9ICI4OHBtODB4 LXJlZ3VsYXRvciIsCj4gKwkJLm9mX2NvbXBhdGlibGUgPSAibWFydmVsbCw4OHBtODB4LXJlZ3Vs YXRvciIsCj4gKwkJLmlkID0gLTEsCj4gIAl9LAo+ICB9Owo+ICAKPiBAQCAtMzIzLDggKzMyMyw4 IEBAIG91dDoKPiAgc3RhdGljIGludCBkZXZpY2Vfb25rZXlfaW5pdChzdHJ1Y3QgcG04MHhfY2hp cCAqY2hpcCkKPiAgewo+ICAJcmV0dXJuIG1mZF9hZGRfZGV2aWNlcyhjaGlwLT5kZXYsIDAsICZv bmtleV9kZXZzWzBdLAo+IC0JCQkgICAgICBBUlJBWV9TSVpFKG9ua2V5X2RldnMpLCAmb25rZXlf cmVzb3VyY2VzWzBdLCAwLAo+IC0JCQkgICAgICBOVUxMKTsKPiArCQkJQVJSQVlfU0laRShvbmtl eV9kZXZzKSwgJm9ua2V5X3Jlc291cmNlc1swXSwgMCwKPiArCQkJTlVMTCk7Cj4gIH0KPiAgCj4g IHN0YXRpYyBpbnQgZGV2aWNlX3J0Y19pbml0KHN0cnVjdCBwbTgweF9jaGlwICpjaGlwKQo+IEBA IC0zMzUsMTMgKzMzNSwxMyBAQCBzdGF0aWMgaW50IGRldmljZV9ydGNfaW5pdChzdHJ1Y3QgcG04 MHhfY2hpcCAqY2hpcCkKPiAgCXJ0Y19kZXZzWzBdLnBkYXRhX3NpemUgPSBwZGF0YS0+cnRjID8g c2l6ZW9mKHN0cnVjdCBwbTgweF9ydGNfcGRhdGEpIDogMDsKPiAgCj4gIAlyZXR1cm4gbWZkX2Fk ZF9kZXZpY2VzKGNoaXAtPmRldiwgMCwgJnJ0Y19kZXZzWzBdLAo+IC0JCQkgICAgICBBUlJBWV9T SVpFKHJ0Y19kZXZzKSwgTlVMTCwgMCwgTlVMTCk7Cj4gKwkJCUFSUkFZX1NJWkUocnRjX2RldnMp LCBOVUxMLCAwLCBOVUxMKTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBkZXZpY2VfcmVndWxhdG9y X2luaXQoc3RydWN0IHBtODB4X2NoaXAgKmNoaXApCj4gIHsKPiAgCXJldHVybiBtZmRfYWRkX2Rl dmljZXMoY2hpcC0+ZGV2LCAwLCAmcmVndWxhdG9yX2RldnNbMF0sCj4gLQkJCSAgICAgIEFSUkFZ X1NJWkUocmVndWxhdG9yX2RldnMpLCBOVUxMLCAwLCBOVUxMKTsKPiArCQkJQVJSQVlfU0laRShy ZWd1bGF0b3JfZGV2cyksIE5VTEwsIDAsIE5VTEwpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGRl dmljZV9pcnFfaW5pdF84MDAoc3RydWN0IHBtODB4X2NoaXAgKmNoaXApCj4gQEAgLTM1OCwxMSAr MzU4LDEwIEBAIHN0YXRpYyBpbnQgZGV2aWNlX2lycV9pbml0XzgwMChzdHJ1Y3QgcG04MHhfY2hp cCAqY2hpcCkKPiAgCj4gIAkvKgo+ICAJICogaXJxX2Nscl9vbl93ciBkZWZpbmVzIHRoZSB3YXkg b2YgY2xlYXJpbmcgaW50ZXJydXB0IGJ5Cj4gLQkgKiByZWFkL3dyaXRlKDAvMSkuICBJdCdzIHJl YWQtY2xlYXIgYnkgZGVmYXVsdC4KPiArCSAqIHJlYWQvd3JpdGUoMC8xKS4gSXQncyByZWFkLWNs ZWFyIGJ5IGRlZmF1bHQuCj4gIAkgKi8KPiAtCW1hc2sgPQo+IC0JICAgIFBNODAwX1dBS0VVUDJf SU5WX0lOVCB8IFBNODAwX1dBS0VVUDJfSU5UX0NMRUFSIHwKPiAtCSAgICBQTTgwMF9XQUtFVVAy X0lOVF9NQVNLOwo+ICsJbWFzayA9IFBNODAwX1dBS0VVUDJfSU5WX0lOVCB8IFBNODAwX1dBS0VV UDJfSU5UX0NMRUFSIHwKPiArCQlQTTgwMF9XQUtFVVAyX0lOVF9NQVNLOwo+ICAKPiAgCWlycV9j bHJfbW9kZSA9IHBkYXRhLT5pcnFfY2xyX21ldGhvZCA9PSBQTTgwMF9JUlFfQ0xSX09OX1dSSVRF ID8KPiAgCQlQTTgwMF9XQUtFVVAyX0lOVF9XUklURV9DTEVBUiA6IFBNODAwX1dBS0VVUDJfSU5U X1JFQURfQ0xFQVI7Cj4gQEAgLTM3MSw5ICszNzAsOCBAQCBzdGF0aWMgaW50IGRldmljZV9pcnFf aW5pdF84MDAoc3RydWN0IHBtODB4X2NoaXAgKmNoaXApCj4gIAlpZiAocmV0IDwgMCkKPiAgCQln b3RvIG91dDsKPiAgCj4gLQlyZXQgPQo+IC0JICAgIHJlZ21hcF9hZGRfaXJxX2NoaXAoY2hpcC0+ cmVnbWFwLCBjaGlwLT5pcnEsIGZsYWdzLCAtMSwKPiAtCQkJCWNoaXAtPnJlZ21hcF9pcnFfY2hp cCwgJmNoaXAtPmlycV9kYXRhKTsKPiArCXJldCA9IHJlZ21hcF9hZGRfaXJxX2NoaXAoY2hpcC0+ cmVnbWFwLCBjaGlwLT5pcnEsIGZsYWdzLCAtMSwKPiArCQkJY2hpcC0+cmVnbWFwX2lycV9jaGlw LCAmY2hpcC0+aXJxX2RhdGEpOwo+ICAKPiAgb3V0Ogo+ICAJcmV0dXJuIHJldDsKPiBAQCAtNDA5 LDE4ICs0MDcsMTggQEAgc3RhdGljIGludCBwbTgwMF9wYWdlc19pbml0KHN0cnVjdCBwbTgweF9j aGlwICpjaGlwKQo+ICAKPiAgCS8qIFBNODAwIGJsb2NrIHBvd2VyIHBhZ2UgKi8KPiAgCXN1YmNo aXAtPnBvd2VyX3BhZ2UgPSBpMmNfbmV3X2R1bW15KGNsaWVudC0+YWRhcHRlciwKPiAtCQkJCQkg ICAgc3ViY2hpcC0+cG93ZXJfcGFnZV9hZGRyKTsKPiArCQkJCQlzdWJjaGlwLT5wb3dlcl9wYWdl X2FkZHIpOwo+ICAJaWYgKHN1YmNoaXAtPnBvd2VyX3BhZ2UgPT0gTlVMTCkgewo+ICAJCXJldCA9 IC1FTk9ERVY7Cj4gIAkJZ290byBvdXQ7Cj4gIAl9Cj4gIAo+ICAJc3ViY2hpcC0+cmVnbWFwX3Bv d2VyID0gZGV2bV9yZWdtYXBfaW5pdF9pMmMoc3ViY2hpcC0+cG93ZXJfcGFnZSwKPiAtCQkJCQkJ ICAgICAmcG04MHhfcmVnbWFwX2NvbmZpZyk7Cj4gKwkJCQkmcG04MHhfcmVnbWFwX2NvbmZpZyk7 Cj4gIAlpZiAoSVNfRVJSKHN1YmNoaXAtPnJlZ21hcF9wb3dlcikpIHsKPiAgCQlyZXQgPSBQVFJf RVJSKHN1YmNoaXAtPnJlZ21hcF9wb3dlcik7Cj4gIAkJZGV2X2VycihjaGlwLT5kZXYsCj4gLQkJ CSJGYWlsZWQgdG8gYWxsb2NhdGUgcmVnbWFwX3Bvd2VyOiAlZFxuIiwgcmV0KTsKPiArCQkJCSJG YWlsZWQgdG8gYWxsb2NhdGUgcmVnbWFwX3Bvd2VyOiAlZFxuIiwgcmV0KTsKPiAgCQlnb3RvIG91 dDsKPiAgCX0KPiAgCj4gQEAgLTQyOCwxOCArNDI2LDE4IEBAIHN0YXRpYyBpbnQgcG04MDBfcGFn ZXNfaW5pdChzdHJ1Y3QgcG04MHhfY2hpcCAqY2hpcCkKPiAgCj4gIAkvKiBQTTgwMCBibG9jayBH UEFEQyAqLwo+ICAJc3ViY2hpcC0+Z3BhZGNfcGFnZSA9IGkyY19uZXdfZHVtbXkoY2xpZW50LT5h ZGFwdGVyLAo+IC0JCQkJCSAgICBzdWJjaGlwLT5ncGFkY19wYWdlX2FkZHIpOwo+ICsJCQkJc3Vi Y2hpcC0+Z3BhZGNfcGFnZV9hZGRyKTsKPiAgCWlmIChzdWJjaGlwLT5ncGFkY19wYWdlID09IE5V TEwpIHsKPiAgCQlyZXQgPSAtRU5PREVWOwo+ICAJCWdvdG8gb3V0Owo+ICAJfQo+ICAKPiAgCXN1 YmNoaXAtPnJlZ21hcF9ncGFkYyA9IGRldm1fcmVnbWFwX2luaXRfaTJjKHN1YmNoaXAtPmdwYWRj X3BhZ2UsCj4gLQkJCQkJCSAgICAgJnBtODB4X3JlZ21hcF9jb25maWcpOwo+ICsJCQkJJnBtODB4 X3JlZ21hcF9jb25maWcpOwo+ICAJaWYgKElTX0VSUihzdWJjaGlwLT5yZWdtYXBfZ3BhZGMpKSB7 Cj4gIAkJcmV0ID0gUFRSX0VSUihzdWJjaGlwLT5yZWdtYXBfZ3BhZGMpOwo+ICAJCWRldl9lcnIo Y2hpcC0+ZGV2LAo+IC0JCQkiRmFpbGVkIHRvIGFsbG9jYXRlIHJlZ21hcF9ncGFkYzogJWRcbiIs IHJldCk7Cj4gKwkJCQkiRmFpbGVkIHRvIGFsbG9jYXRlIHJlZ21hcF9ncGFkYzogJWRcbiIsIHJl dCk7Cj4gIAkJZ290byBvdXQ7Cj4gIAl9Cj4gIAlpMmNfc2V0X2NsaWVudGRhdGEoc3ViY2hpcC0+ Z3BhZGNfcGFnZSwgY2hpcCk7Cj4gQEAgLTYyMCw4ICs2MTgsNyBAQCBzdGF0aWMgaW50IHBtODAw X3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCj4gIAljaGlwID0gaTJjX2dldF9jbGll bnRkYXRhKGNsaWVudCk7Cj4gIAo+ICAJLyogaW5pdCBzdWJjaGlwIGZvciBQTTgwMCAqLwo+IC0J c3ViY2hpcCA9Cj4gLQkgICAgZGV2bV9remFsbG9jKCZjbGllbnQtPmRldiwgc2l6ZW9mKHN0cnVj dCBwbTgweF9zdWJjaGlwKSwKPiArCXN1YmNoaXAgPSBkZXZtX2t6YWxsb2MoJmNsaWVudC0+ZGV2 LCBzaXplb2Yoc3RydWN0IHBtODB4X3N1YmNoaXApLAo+ICAJCQkgR0ZQX0tFUk5FTCk7Cj4gIAlp ZiAoIXN1YmNoaXApIHsKPiAgCQlyZXQgPSAtRU5PTUVNOwo+IEBAIC02ODQsNyArNjgxLDcgQEAg c3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHBtODAwX2RyaXZlciA9IHsKPiAgCQkub3duZXIgPSBU SElTX01PRFVMRSwKPiAgCQkucG0gPSAmcG04MHhfcG1fb3BzLAo+ICAJCS5vZl9tYXRjaF90YWJs ZQk9IHBtODB4X29mX21hdGNoX3RhYmxlLAo+IC0JCX0sCj4gKwl9LAo+ICAJLnByb2JlID0gcG04 MDBfcHJvYmUsCj4gIAkucmVtb3ZlID0gcG04MDBfcmVtb3ZlLAo+ICAJLmlkX3RhYmxlID0gcG04 MHhfaWRfdGFibGUsCgotLSAKTGVlIEpvbmVzCkxpbmFybyBTVE1pY3JvZWxlY3Ryb25pY3MgTGFu ZGluZyBUZWFtIExlYWQKTGluYXJvLm9yZyDilIIgT3BlbiBzb3VyY2Ugc29mdHdhcmUgZm9yIEFS TSBTb0NzCkZvbGxvdyBMaW5hcm86IEZhY2Vib29rIHwgVHdpdHRlciB8IEJsb2cKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwg bWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK