Hi, On Thu, Nov 16, 2023 at 06:39:40PM +0800, Andy Yan wrote: > > > vop2->sys_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,grf"); > > This already lacks an error check, shame on me... > > > > > + vop2->vop_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,vop-grf"); > > > + vop2->vo1_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,vo1-grf"); > > > + vop2->sys_pmu = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,pmu"); > > ... but please don't duplicate that. > > It a little difficult to find a proper way to do the check, as not every soc need all these phandles. > > Do i need check it per soc? I suggest adding a u32 flags to struct vop2_data and then have something like this: if (vop2_data->flags & VOP2_HAS_VOP_GRF) { vop2->vop_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,vop-grf"); if (IS_ERR(vop2->vop_grf)) return dev_err_probe(dev, PTR_ERR(vop2->vop_grf) "cannot get vop-grf"); } if (vop2_data->flags & VOP2_HAS_VO1_GRF) { vop2->vo1_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,vo1-grf"); if (IS_ERR(vop2->vo1_grf)) return dev_err_probe(dev, PTR_ERR(vop2->vo1_grf) "cannot get vo1-grf"); } ... Greetings, -- Sebastian
Attachment:
signature.asc
Description: PGP signature