Hi, On 11/2/21 17:17, Sakari Ailus wrote: > On Tue, Nov 02, 2021 at 03:59:41PM +0100, Hans de Goede wrote: >> Hi, >> >> On 11/2/21 15:34, Andy Shevchenko wrote: >>> On Tue, Nov 2, 2021 at 11:50 AM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: >>>> >>>> Pass tps68470_regulator_platform_data to the tps68470-regulator >>>> MFD-cell, specifying the voltages of the various regulators and >>>> tying the regulators to the sensor supplies so that sensors which use >>>> the TPS68470 can find their regulators. >>>> >>>> Since the voltages and supply connections are board-specific, this >>>> introduces a DMI matches int3472_tps68470_board_data struct which >>>> contains the necessary per-board info. >>>> >>>> This per-board info also includes GPIO lookup information for the >>>> sensor IO lines which may be connected to the tps68470 GPIOs. >>> >>> ... >>> >>>> + board_data = int3472_tps68470_get_board_data(dev_name(&client->dev)); >>>> + if (!board_data) { >>>> + dev_err(&client->dev, "No board-data found for this laptop/tablet model\n"); >>>> + return -ENODEV; >>> >>> It's fine to use dev_err_probe() for known error codes. >>> >>>> + } >>> >>> ... >>> >>>> + cells[1].platform_data = (void *)board_data->tps68470_regulator_pdata; >>> >>> Do we need casting? >> >> Yes, the cast casts away a "const", the const is correct >> since the data only ever gets read by the regulator driver, >> but platform_data pointers are normally not const, so it >> is either the cast, or loose the const on the definition >> of the struct to which board_data->tps68470_regulator_pdata >> points... >> >> So not good choice here really, only chosing between bad >> options and I picked the lets do the cast "least worse" >> option (at least to me). I'm open to changing this. > > Maybe a comment explaining this briefly? Yes, I was thinking the same myself, I'll add this for the next version (which I expect to be the final version). Regards, Hans