Re: [PATCHv5 2/5] thermal: rcar_gen3_thermal: Add R-Car Gen3 thermal driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eduardo,

Thanks for your feedback. I will skip commenting where Wolfram already 
have.

On 2016-12-12 19:50:54 -0800, Eduardo Valentin wrote:

<snip>

> > +/* Structure for thermal temperature calculation */
> > +struct equation_coefs {
> > +	int a1;
> > +	int b1;
> > +	int a2;
> > +	int b2;
> 
> a little description of each coeff would be welcome.

Yes, I too would like to have better documentation of the formulas and 
the meaning of the coefficients.

<snip, Wolfram already covert this>

> 
> > +
> > +	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
> > +	if (!priv)
> > +		return -ENOMEM;
> > +
> > +	platform_set_drvdata(pdev, priv);
> > +
> > +	pm_runtime_enable(dev);
> > +	pm_runtime_get_sync(dev);
> > +
> > +	for (i = 0; i < TSC_MAX_NUM; i++) {
> > +		struct rcar_gen3_thermal_tsc *tsc;
> > +
> > +		tsc = devm_kzalloc(dev, sizeof(*tsc), GFP_KERNEL);
> > +		if (!tsc) {
> > +			ret = -ENOMEM;
> > +			goto error_unregister;
> > +		}
> > +
> > +		res = platform_get_resource(pdev, IORESOURCE_MEM, i);
> > +		if (!res)
> > +			break;
> > +
> > +		tsc->base = devm_ioremap_resource(dev, res);
> > +		if (IS_ERR(tsc->base)) {
> > +			ret = PTR_ERR(tsc->base);
> > +			goto error_unregister;
> > +		}
> > +
> > +		priv->tscs[i] = tsc;
> > +		mutex_init(&tsc->lock);
> > +
> > +		match_data->thermal_init(tsc);
> > +		rcar_gen3_thermal_calc_coefs(&tsc->coef, ptat, thcode[i]);
> 
> oh, the thcode's are currently not read then?

No as Wolfram commented, reading THCODE and PTAT from hardware is not 
possible on the boards we have to test on so I think this needs to be 
added once we can test it. Do you agree this is the best option?

> 
> > +
> > +		zone = devm_thermal_zone_of_sensor_register(dev, i, tsc,
> > +							    &rcar_gen3_tz_of_ops);
> 
> and you are already doing it, therefore those coeff could really come
> from the DT, no?
> 
> > +		if (IS_ERR(zone)) {
> > +			dev_err(dev, "Can't register thermal zone\n");
> > +			ret = PTR_ERR(zone);
> > +			goto error_unregister;
> > +		}
> > +		tsc->zone = zone;
> > +	}
> > +
> > +	return 0;
> > +
> > +error_unregister:
> > +	rcar_gen3_thermal_remove(pdev);
> > +
> > +	return ret;
> > +}
> > +
> > +static struct platform_driver rcar_gen3_thermal_driver = {
> > +	.driver	= {
> > +		.name	= "rcar_gen3_thermal",
> > +		.of_match_table = rcar_gen3_thermal_dt_ids,
> > +	},
> > +	.probe		= rcar_gen3_thermal_probe,
> > +	.remove		= rcar_gen3_thermal_remove,
> > +};
> > +module_platform_driver(rcar_gen3_thermal_driver);
> > +
> > +MODULE_LICENSE("GPL v2");
> > +MODULE_DESCRIPTION("R-Car Gen3 THS thermal sensor driver");
> > +MODULE_AUTHOR("Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>");
> > -- 
> > 2.10.2
> > 

-- 
Regards,
Niklas Söderlund



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux