On 30/07/2019 15:19, Mark Brown wrote:
> On Tue, Jul 30, 2019 at 01:09:37PM +0100, Thomas Preston wrote:
> 
>> +    struct dentry *debugfs;
>> +    struct mutex diagnostic_mutex;
>> +};
> 
> It is unclear what this mutex usefully protects, it only gets taken when
> writing to the debugfs file to trigger this diagnostic mode but doesn't
> do anything to control interactions with any other code path in the
> driver.
> 

If another process reads the debugfs node "diagnostic" while the turn-on 
diagnostic mode is running, this mutex prevents the second process
restarting the diagnostics.

This is redundant if debugfs reads are atomic, but I don't think they are.


>> +static int run_turn_on_diagnostic(struct tda7802_priv *tda7802, u8 *status)
>> +{
>> +    struct device *dev = &tda7802->i2c->dev;
>> +    int err_status, err;
>> +    unsigned int val;
>> +    u8 state[NUM_IB];
> 
>> +    /* We must wait 20ms for device to settle, otherwise diagnostics will
>> +     * not start and regmap poll will timeout.
>> +     */
>> +    msleep(DIAGNOSTIC_SETTLE_MS);
> 
> The comment and define might go out of sync...
> 

Thanks, I will remove the 20ms but keep the comment here.

>> +    err = regmap_bulk_read(tda7802->regmap, TDA7802_DB1, status, 4);
>> +    if (err < 0) {
>> +            dev_err(dev, "Could not read channel status, %d\n", err);
>> +            goto diagnostic_restore;
>> +    }
> 
> ...but here we use a magic number for the array size :(
> 

Thanks, will update.

>> +static int tda7802_diagnostic_show(struct seq_file *f, void *p)
>> +{
>> +    char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
> 
> We neither use nor free buf?
> 
>> +static int tda7802_probe(struct snd_soc_component *component)
>> +{
>> +    struct tda7802_priv *tda7802 = snd_soc_component_get_drvdata(component);
>> +    struct device *dev = &tda7802->i2c->dev;
>> +    int err;
> 
> Why is this done at the component level?
> 

Argh my bad, a previous iteration required the buf and component. I missed
this, sorry for the noise.

Thanks for feedback, I'll go back and tend to all of this.

Reply via email to