diff for duplicates of <50A5F225.6000200@st.com> diff --git a/a/1.txt b/N1/1.txt index 162ee27..49b8603 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -68,7 +68,8 @@ On 16/11/12 06:38, Alexandre Courbot wrote: > +++ b/Documentation/devicetree/bindings/power/power_seq.txt > @@ -0,0 +1,121 @@ > +Runtime Interpreted Power Sequences -> +=================> + +> +=================================== +> + > +Power sequences are sequential descriptions of actions to be performed on > +power-related resources. Having these descriptions in a well-defined data format > +allows us to take much of the board- or device- specific power control code out @@ -194,7 +195,8 @@ On 16/11/12 06:38, Alexandre Courbot wrote: > +++ b/Documentation/power/power_seq.txt > @@ -0,0 +1,253 @@ > +Runtime Interpreted Power Sequences -> +=================> + +> +=================================== +> + > +Problem > +------- > +Very commonly, boards need the help of out-of-driver code to turn some of their @@ -576,7 +578,7 @@ On 16/11/12 06:38, Alexandre Courbot wrote: > + return err; > + } > + for (i = 0; i < POWER_SEQ_NUM_TYPES; i++) { -> + if (power_seq_ops[i].name = NULL) +> + if (power_seq_ops[i].name == NULL) > + continue; > + if (!strcmp(type, power_seq_ops[i].name)) > + break; @@ -593,12 +595,12 @@ On 16/11/12 06:38, Alexandre Courbot wrote: > + > + /* Use the same instance of the resource if met before */ > + list_for_each_entry(res2, resources, list) { -> + if (res.type = res2->type && +> + if (res.type == res2->type && > + power_seq_ops[res.type].res_compare(&res, res2)) > + break; > + } > + /* Resource never met before, create it */ -> + if (&res2->list = resources) { +> + if (&res2->list == resources) { > + res2 = devm_kzalloc(dev, sizeof(*res2), GFP_KERNEL); > + if (!res2) > + return -ENOMEM; @@ -747,11 +749,11 @@ On 16/11/12 06:38, Alexandre Courbot wrote: > + struct power_seq_step *step = &seq->steps[i]; > + struct power_seq_resource *step_res = step->resource; > + list_for_each_entry(res, &set->resources, list) { -> + if (res = step_res) +> + if (res == step_res) > + break; > + } > + /* resource not allocated yet, allocate and add it */ -> + if (&res->list = &set->resources) { +> + if (&res->list == &set->resources) { > + err = power_seq_ops[step_res->type].res_alloc(set->dev, > + step_res); > + if (err) @@ -990,7 +992,7 @@ On 16/11/12 06:38, Alexandre Courbot wrote: > +static bool power_seq_res_compare_gpio(struct power_seq_resource *res, > + struct power_seq_resource *res2) > +{ -> + return res->gpio.gpio = res2->gpio.gpio; +> + return res->gpio.gpio == res2->gpio.gpio; > +} > + > +static int power_seq_res_alloc_gpio(struct device *dev, @@ -1302,9 +1304,9 @@ On 16/11/12 06:38, Alexandre Courbot wrote: > + * @type: type of the resource. This decides which member of the union is > + * used for this resource > + * @list: link resources together in power_seq_set -> + * @regulator: used if @type = POWER_SEQ_REGULATOR -> + * @pwm: used if @type = POWER_SEQ_PWM -> + * @gpio: used if @type = POWER_SEQ_GPIO +> + * @regulator: used if @type == POWER_SEQ_REGULATOR +> + * @pwm: used if @type == POWER_SEQ_PWM +> + * @gpio: used if @type == POWER_SEQ_GPIO > + */ > +struct power_seq_resource { > + enum power_seq_res_type type; @@ -1353,10 +1355,10 @@ On 16/11/12 06:38, Alexandre Courbot wrote: > +/** > + * struct power_seq_step - data for power sequences steps > + * @resource: resource used by this step -> + * @delay: used if resource->type = POWER_SEQ_DELAY -> + * @regulator: used if resource->type = POWER_SEQ_REGULATOR -> + * @pwm: used if resource->type = POWER_SEQ_PWN -> + * @gpio: used if resource->type = POWER_SEQ_GPIO +> + * @delay: used if resource->type == POWER_SEQ_DELAY +> + * @regulator: used if resource->type == POWER_SEQ_REGULATOR +> + * @pwm: used if resource->type == POWER_SEQ_PWN +> + * @gpio: used if resource->type == POWER_SEQ_GPIO > + */ > +struct power_seq_step { > + struct power_seq_resource *resource; diff --git a/a/content_digest b/N1/content_digest index f72f499..2966f2b 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -92,7 +92,8 @@ "> +++ b/Documentation/devicetree/bindings/power/power_seq.txt\n" "> @@ -0,0 +1,121 @@\n" "> +Runtime Interpreted Power Sequences\n" - "> +=================> +\n" + "> +===================================\n" + "> +\n" "> +Power sequences are sequential descriptions of actions to be performed on\n" "> +power-related resources. Having these descriptions in a well-defined data format\n" "> +allows us to take much of the board- or device- specific power control code out\n" @@ -218,7 +219,8 @@ "> +++ b/Documentation/power/power_seq.txt\n" "> @@ -0,0 +1,253 @@\n" "> +Runtime Interpreted Power Sequences\n" - "> +=================> +\n" + "> +===================================\n" + "> +\n" "> +Problem\n" "> +-------\n" "> +Very commonly, boards need the help of out-of-driver code to turn some of their\n" @@ -600,7 +602,7 @@ "> +\t\treturn err;\n" "> +\t}\n" "> +\tfor (i = 0; i < POWER_SEQ_NUM_TYPES; i++) {\n" - "> +\t\tif (power_seq_ops[i].name = NULL)\n" + "> +\t\tif (power_seq_ops[i].name == NULL)\n" "> +\t\t\tcontinue;\n" "> +\t\tif (!strcmp(type, power_seq_ops[i].name))\n" "> +\t\t\tbreak;\n" @@ -617,12 +619,12 @@ "> +\n" "> +\t/* Use the same instance of the resource if met before */\n" "> +\tlist_for_each_entry(res2, resources, list) {\n" - "> +\t\tif (res.type = res2->type &&\n" + "> +\t\tif (res.type == res2->type &&\n" "> +\t\t power_seq_ops[res.type].res_compare(&res, res2))\n" "> +\t\t\tbreak;\n" "> +\t}\n" "> +\t/* Resource never met before, create it */\n" - "> +\tif (&res2->list = resources) {\n" + "> +\tif (&res2->list == resources) {\n" "> +\t\tres2 = devm_kzalloc(dev, sizeof(*res2), GFP_KERNEL);\n" "> +\t\tif (!res2)\n" "> +\t\t\treturn -ENOMEM;\n" @@ -771,11 +773,11 @@ "> +\t\tstruct power_seq_step *step = &seq->steps[i];\n" "> +\t\tstruct power_seq_resource *step_res = step->resource;\n" "> +\t\tlist_for_each_entry(res, &set->resources, list) {\n" - "> +\t\t\tif (res = step_res)\n" + "> +\t\t\tif (res == step_res)\n" "> +\t\t\t\tbreak;\n" "> +\t\t}\n" "> +\t\t/* resource not allocated yet, allocate and add it */\n" - "> +\t\tif (&res->list = &set->resources) {\n" + "> +\t\tif (&res->list == &set->resources) {\n" "> +\t\t\terr = power_seq_ops[step_res->type].res_alloc(set->dev,\n" "> +\t\t\t\t\t\t\t\t step_res);\n" "> +\t\t\tif (err)\n" @@ -1014,7 +1016,7 @@ "> +static bool power_seq_res_compare_gpio(struct power_seq_resource *res,\n" "> +\t\t\t\t struct power_seq_resource *res2)\n" "> +{\n" - "> +\treturn res->gpio.gpio = res2->gpio.gpio;\n" + "> +\treturn res->gpio.gpio == res2->gpio.gpio;\n" "> +}\n" "> +\n" "> +static int power_seq_res_alloc_gpio(struct device *dev,\n" @@ -1326,9 +1328,9 @@ "> + * @type:\ttype of the resource. This decides which member of the union is\n" "> + *\t\tused for this resource\n" "> + * @list:\tlink resources together in power_seq_set\n" - "> + * @regulator:\tused if @type = POWER_SEQ_REGULATOR\n" - "> + * @pwm:\tused if @type = POWER_SEQ_PWM\n" - "> + * @gpio:\tused if @type = POWER_SEQ_GPIO\n" + "> + * @regulator:\tused if @type == POWER_SEQ_REGULATOR\n" + "> + * @pwm:\tused if @type == POWER_SEQ_PWM\n" + "> + * @gpio:\tused if @type == POWER_SEQ_GPIO\n" "> + */\n" "> +struct power_seq_resource {\n" "> +\tenum power_seq_res_type type;\n" @@ -1377,10 +1379,10 @@ "> +/**\n" "> + * struct power_seq_step - data for power sequences steps\n" "> + * @resource:\tresource used by this step\n" - "> + * @delay:\tused if resource->type = POWER_SEQ_DELAY\n" - "> + * @regulator:\tused if resource->type = POWER_SEQ_REGULATOR\n" - "> + * @pwm:\tused if resource->type = POWER_SEQ_PWN\n" - "> + * @gpio:\tused if resource->type = POWER_SEQ_GPIO\n" + "> + * @delay:\tused if resource->type == POWER_SEQ_DELAY\n" + "> + * @regulator:\tused if resource->type == POWER_SEQ_REGULATOR\n" + "> + * @pwm:\tused if resource->type == POWER_SEQ_PWN\n" + "> + * @gpio:\tused if resource->type == POWER_SEQ_GPIO\n" "> + */\n" "> +struct power_seq_step {\n" "> +\tstruct power_seq_resource *resource;\n" @@ -1443,4 +1445,4 @@ "> +\n" > +#endif -d8d7874eb18fb9759e7bf9a7ddd9389d9bcfd89b052cd6839726aa7c19dccdce +1862f2e1371ac67cab660b7faaeba097fc5e567ce48096bed3ed0f59032e45e6
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.