Re: [PATCH 09/10] drm: bridge: it66121: Move VID/PID to new it66121_chip_info structure

2022-12-15 Thread Robert Foss
On Wed, 14 Dec 2022 at 14:01, Paul Cercueil  wrote:
>
> This will make it easier later to introduce support for new chips in
> this driver.
>
> Signed-off-by: Paul Cercueil 
> ---
>  drivers/gpu/drm/bridge/ite-it66121.c | 27 +++
>  1 file changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/ite-it66121.c 
> b/drivers/gpu/drm/bridge/ite-it66121.c
> index 7972003d4776..43b027b85b8e 100644
> --- a/drivers/gpu/drm/bridge/ite-it66121.c
> +++ b/drivers/gpu/drm/bridge/ite-it66121.c
> @@ -35,10 +35,6 @@
>  #define IT66121_DEVICE_ID0_REG 0x02
>  #define IT66121_DEVICE_ID1_REG 0x03
>
> -#define IT66121_VENDOR_ID0 0x54
> -#define IT66121_VENDOR_ID1 0x49
> -#define IT66121_DEVICE_ID0 0x12
> -#define IT66121_DEVICE_ID1 0x06
>  #define IT66121_REVISION_MASK  GENMASK(7, 4)
>  #define IT66121_DEVICE_ID1_MASKGENMASK(3, 0)
>
> @@ -286,13 +282,12 @@
>  #define IT66121_AUD_SWL_16BIT  0x2
>  #define IT66121_AUD_SWL_NOT_INDICATED  0x0
>
> -#define IT66121_VENDOR_ID0 0x54
> -#define IT66121_VENDOR_ID1 0x49
> -#define IT66121_DEVICE_ID0 0x12
> -#define IT66121_DEVICE_ID1 0x06
> -#define IT66121_DEVICE_MASK0x0F
>  #define IT66121_AFE_CLK_HIGH   8 /* Khz */
>
> +struct it66121_chip_info {
> +   u16 vid, pid;
> +};
> +
>  struct it66121_ctx {
> struct regmap *regmap;
> struct drm_bridge bridge;
> @@ -311,6 +306,7 @@ struct it66121_ctx {
> u8 swl;
> bool auto_cts;
> } audio;
> +   const struct it66121_chip_info *info;
>  };
>
>  static const struct regmap_range_cfg it66121_regmap_banks[] = {
> @@ -1451,6 +1447,7 @@ static const char * const it66121_supplies[] = {
>
>  static int it66121_probe(struct i2c_client *client)
>  {
> +   const struct i2c_device_id *id = i2c_client_get_device_id(client);
> u32 revision_id, vendor_ids[2] = { 0 }, device_ids[2] = { 0 };
> struct device_node *ep;
> int ret;
> @@ -1472,6 +1469,7 @@ static int it66121_probe(struct i2c_client *client)
>
> ctx->dev = dev;
> ctx->client = client;
> +   ctx->info = (const struct it66121_chip_info *) id->driver_data;
>
> of_property_read_u32(ep, "bus-width", >bus_width);
> of_node_put(ep);
> @@ -1523,8 +1521,8 @@ static int it66121_probe(struct i2c_client *client)
> revision_id = FIELD_GET(IT66121_REVISION_MASK, device_ids[1]);
> device_ids[1] &= IT66121_DEVICE_ID1_MASK;
>
> -   if (vendor_ids[0] != IT66121_VENDOR_ID0 || vendor_ids[1] != 
> IT66121_VENDOR_ID1 ||
> -   device_ids[0] != IT66121_DEVICE_ID0 || device_ids[1] != 
> IT66121_DEVICE_ID1) {
> +   if ((vendor_ids[1] << 8 | vendor_ids[0]) != ctx->info->vid ||
> +   (device_ids[1] << 8 | device_ids[0]) != ctx->info->pid) {
> return -ENODEV;
> }
>
> @@ -1563,8 +1561,13 @@ static const struct of_device_id it66121_dt_match[] = {
>  };
>  MODULE_DEVICE_TABLE(of, it66121_dt_match);
>
> +static const struct it66121_chip_info it66121_chip_info = {
> +   .vid = 0x4954,
> +   .pid = 0x0612,
> +};
> +
>  static const struct i2c_device_id it66121_id[] = {
> -   { "it66121", 0 },
> +   { "it66121", (kernel_ulong_t) _chip_info },
> { }
>  };
>  MODULE_DEVICE_TABLE(i2c, it66121_id);
> --
> 2.35.1
>

Reviewed-by: Robert Foss 


[PATCH 09/10] drm: bridge: it66121: Move VID/PID to new it66121_chip_info structure

2022-12-14 Thread Paul Cercueil
This will make it easier later to introduce support for new chips in
this driver.

Signed-off-by: Paul Cercueil 
---
 drivers/gpu/drm/bridge/ite-it66121.c | 27 +++
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/bridge/ite-it66121.c 
b/drivers/gpu/drm/bridge/ite-it66121.c
index 7972003d4776..43b027b85b8e 100644
--- a/drivers/gpu/drm/bridge/ite-it66121.c
+++ b/drivers/gpu/drm/bridge/ite-it66121.c
@@ -35,10 +35,6 @@
 #define IT66121_DEVICE_ID0_REG 0x02
 #define IT66121_DEVICE_ID1_REG 0x03
 
-#define IT66121_VENDOR_ID0 0x54
-#define IT66121_VENDOR_ID1 0x49
-#define IT66121_DEVICE_ID0 0x12
-#define IT66121_DEVICE_ID1 0x06
 #define IT66121_REVISION_MASK  GENMASK(7, 4)
 #define IT66121_DEVICE_ID1_MASKGENMASK(3, 0)
 
@@ -286,13 +282,12 @@
 #define IT66121_AUD_SWL_16BIT  0x2
 #define IT66121_AUD_SWL_NOT_INDICATED  0x0
 
-#define IT66121_VENDOR_ID0 0x54
-#define IT66121_VENDOR_ID1 0x49
-#define IT66121_DEVICE_ID0 0x12
-#define IT66121_DEVICE_ID1 0x06
-#define IT66121_DEVICE_MASK0x0F
 #define IT66121_AFE_CLK_HIGH   8 /* Khz */
 
+struct it66121_chip_info {
+   u16 vid, pid;
+};
+
 struct it66121_ctx {
struct regmap *regmap;
struct drm_bridge bridge;
@@ -311,6 +306,7 @@ struct it66121_ctx {
u8 swl;
bool auto_cts;
} audio;
+   const struct it66121_chip_info *info;
 };
 
 static const struct regmap_range_cfg it66121_regmap_banks[] = {
@@ -1451,6 +1447,7 @@ static const char * const it66121_supplies[] = {
 
 static int it66121_probe(struct i2c_client *client)
 {
+   const struct i2c_device_id *id = i2c_client_get_device_id(client);
u32 revision_id, vendor_ids[2] = { 0 }, device_ids[2] = { 0 };
struct device_node *ep;
int ret;
@@ -1472,6 +1469,7 @@ static int it66121_probe(struct i2c_client *client)
 
ctx->dev = dev;
ctx->client = client;
+   ctx->info = (const struct it66121_chip_info *) id->driver_data;
 
of_property_read_u32(ep, "bus-width", >bus_width);
of_node_put(ep);
@@ -1523,8 +1521,8 @@ static int it66121_probe(struct i2c_client *client)
revision_id = FIELD_GET(IT66121_REVISION_MASK, device_ids[1]);
device_ids[1] &= IT66121_DEVICE_ID1_MASK;
 
-   if (vendor_ids[0] != IT66121_VENDOR_ID0 || vendor_ids[1] != 
IT66121_VENDOR_ID1 ||
-   device_ids[0] != IT66121_DEVICE_ID0 || device_ids[1] != 
IT66121_DEVICE_ID1) {
+   if ((vendor_ids[1] << 8 | vendor_ids[0]) != ctx->info->vid ||
+   (device_ids[1] << 8 | device_ids[0]) != ctx->info->pid) {
return -ENODEV;
}
 
@@ -1563,8 +1561,13 @@ static const struct of_device_id it66121_dt_match[] = {
 };
 MODULE_DEVICE_TABLE(of, it66121_dt_match);
 
+static const struct it66121_chip_info it66121_chip_info = {
+   .vid = 0x4954,
+   .pid = 0x0612,
+};
+
 static const struct i2c_device_id it66121_id[] = {
-   { "it66121", 0 },
+   { "it66121", (kernel_ulong_t) _chip_info },
{ }
 };
 MODULE_DEVICE_TABLE(i2c, it66121_id);
-- 
2.35.1