Hi Geert-san,
2018-03-30 18:25 GMT+09:00 Geert Uytterhoeven <[email protected]>:
> Hi Kaneko-san,
>
> On Fri, Mar 30, 2018 at 5:13 AM, Yoshihiro Kaneko <[email protected]>
> wrote:
>> Add support for R-Car D3 (r8a77995) thermal sensor.
>>
>> Signed-off-by: Yoshihiro Kaneko <[email protected]>
>
> Thanks for your patch!
>
>> --- a/drivers/thermal/rcar_thermal.c
>> +++ b/drivers/thermal/rcar_thermal.c
>> @@ -58,10 +58,35 @@ struct rcar_thermal_common {
>> spinlock_t lock;
>> };
>>
>> +enum rcar_thermal_type {
>> + RCAR_THERMAL,
>> + RCAR_GEN2_THERMAL,
>> + RCAR_GEN3_THERMAL,
>> +};
>> +
>> +struct rcar_thermal_chip {
>> + int use_of_thermal;
>
> This can be a single bit:
>
> unsigned int use_of_thermal : 1;
>
>> + enum rcar_thermal_type type;
>
> If you would add feature bits, you can get rid of rcar_thermal_type:
>
> unsigned int has_filonoff : 1;
> unsigned int has_enr : 1;
> unsigned int needs_suspend_resume : 1;
>
> The number of interrupts can be stored here, too.
It's nice!
>
>> +};
>> +
>> +static const struct rcar_thermal_chip rcar_thermal = {
>> + .use_of_thermal = 0,
>> + .type = RCAR_THERMAL,
>
> .has_filonoff = 1,
> .has_enr = 0,
> ...
> .nirqs = 1,
>
>> @@ -190,7 +222,8 @@ static int rcar_thermal_update_temp(struct
>> rcar_thermal_priv *priv)
>> * enable IRQ
>> */
>> if (rcar_has_irq_support(priv)) {
>> - rcar_thermal_write(priv, FILONOFF, 0);
>> + if (priv->chip->type != RCAR_GEN3_THERMAL)
>
> if (priv->chip->has_filonoff)
>
>> @@ -438,6 +471,9 @@ static int rcar_thermal_probe(struct platform_device
>> *pdev)
>> struct rcar_thermal_priv *priv;
>> struct device *dev = &pdev->dev;
>> struct resource *res, *irq;
>> + struct rcar_thermal_chip *chip = ((struct rcar_thermal_chip *)
>
> I don't think the cast is needed.
I will make 'chip' a const variable.
>
>> @@ -457,19 +493,35 @@ static int rcar_thermal_probe(struct platform_device
>> *pdev)
>> pm_runtime_enable(dev);
>> pm_runtime_get_sync(dev);
>>
>> - irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
>> - if (irq) {
>> - /*
>> - * platform has IRQ support.
>> - * Then, driver uses common registers
>> - * rcar_has_irq_support() will be enabled
>> - */
>> - res = platform_get_resource(pdev, IORESOURCE_MEM, mres++);
>> - common->base = devm_ioremap_resource(dev, res);
>> - if (IS_ERR(common->base))
>> - return PTR_ERR(common->base);
>> + for (i = 0; i < nirq; i++) {
>
> for (i = 0; i < priv->nirqs; i++) {
Best regards,
Kaneko
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 --
> [email protected]
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like
> that.
> -- Linus Torvalds