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? -- Sakari Ailus