Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2216483/?format=api
{ "id": 2216483, "url": "http://patchwork.ozlabs.org/api/patches/2216483/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-i2c/patch/20260326152656.14030-2-adilov@disroot.org/", "project": { "id": 35, "url": "http://patchwork.ozlabs.org/api/projects/35/?format=api", "name": "Linux I2C development", "link_name": "linux-i2c", "list_id": "linux-i2c.vger.kernel.org", "list_email": "linux-i2c@vger.kernel.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260326152656.14030-2-adilov@disroot.org>", "list_archive_url": null, "date": "2026-03-26T15:26:49", "name": "[v5,1/8] i2c: rtl9300: split data_reg into read and write reg", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "50e09110feacb2eb7ab2e36391a7b50b886dc8d1", "submitter": { "id": 92795, "url": "http://patchwork.ozlabs.org/api/people/92795/?format=api", "name": "Rustam Adilov", "email": "adilov@disroot.org" }, "delegate": { "id": 149066, "url": "http://patchwork.ozlabs.org/api/users/149066/?format=api", "username": "cazzacarna", "first_name": "Andi", "last_name": "Shyti", "email": "andi.shyti@kernel.org" }, "mbox": "http://patchwork.ozlabs.org/project/linux-i2c/patch/20260326152656.14030-2-adilov@disroot.org/mbox/", "series": [ { "id": 497610, "url": "http://patchwork.ozlabs.org/api/series/497610/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-i2c/list/?series=497610", "date": "2026-03-26T15:26:49", "name": "i2c: rtl9300: support for RTL9607C I2C controller", "version": 5, "mbox": "http://patchwork.ozlabs.org/series/497610/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2216483/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2216483/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-i2c+bounces-16805-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-i2c@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=disroot.org header.i=@disroot.org header.a=rsa-sha256\n header.s=mail header.b=R1HJ+P5L;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-i2c+bounces-16805-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org\n header.b=\"R1HJ+P5L\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=178.21.23.139", "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=disroot.org", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=disroot.org" ], "Received": [ "from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhSc32Sbnz1y1x\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 02:38:43 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 8E25130FBD41\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 15:28:47 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 1C771407103;\n\tThu, 26 Mar 2026 15:27:29 +0000 (UTC)", "from layka.disroot.org (layka.disroot.org [178.21.23.139])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 35860405ADF;\n\tThu, 26 Mar 2026 15:27:27 +0000 (UTC)", "from [127.0.0.1] (localhost [127.0.0.1])\n\tby disroot.org (Postfix) with ESMTP id D4ACD26433;\n\tThu, 26 Mar 2026 16:27:25 +0100 (CET)", "from layka.disroot.org ([127.0.0.1])\n by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with UTF8SMTP\n id OFce-BbIeTWU; Thu, 26 Mar 2026 16:27:25 +0100 (CET)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774538848; cv=none;\n b=VptySrppmNXMthoDNDrxfddHkLpokILHj2vtGi3GTC7Z80NBDnM9uRjbwXB+NalCR8fud5YCxnmK2/3CzkWQGPWrv7dhVSQwfTus2m3IO3cf57v9XLW4TVx+dpnL5TaSWbBPhlcdMkhd0rZK48HFbPo0uLONf0ccjJQOCcV8kHU=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774538848; c=relaxed/simple;\n\tbh=gLVZnYH8RyztHWedBiBheyvBydAbsVMkC5d77hHYZlI=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=JccAjnVXMxYBo7m6zOeGGRgaTPDiYx6qK2kBNDEW/BAzB9gqVFZ+4yUH1cEZkNYt71nPQF+fVW9AbBL7tgjrr2bjHaPh4hIQ3ZprqKtjMXseGR3lzbpJdtzN/aiXpT22crzGUsakTReMgixnWhjdSdFpqYz5jGEjx8L7EDuncTQ=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=disroot.org;\n spf=pass smtp.mailfrom=disroot.org;\n dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org\n header.b=R1HJ+P5L; arc=none smtp.client-ip=178.21.23.139", "X-Virus-Scanned": "SPAM Filter at disroot.org", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail;\n\tt=1774538845; bh=gLVZnYH8RyztHWedBiBheyvBydAbsVMkC5d77hHYZlI=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References;\n\tb=R1HJ+P5LI4ns8pvzmStxzor14VqfnZj41UZA92+A+fTfjTMxC+lz1g4yte9rxENae\n\t QbIVGNh//i2wP0gorP5t7usG6ke4XDItT2xQ51E4+PsP8XUAN9pRb6wYnr0sAJ41WW\n\t 6XJ+eOjfnjfDcDdfCSPtYtb9ko6IAhYMn5vnjfUjM6CYDNt5l8sX2MuhN6vccxKqjX\n\t ZUJF/Zvw9GGdM5sXy8Ssc+ESpwFE95ZW2Dij/BX0a45AibjOK+og/YXmEzh7EPZwdR\n\t 5wB2AI0YROZVjfld4tvvQ5mOzlU5w1C384qbyQ2hc5Y4wxagZ2j5h0nBNU2GICfLJD\n\t sHp+jm7FLLvtw==", "From": "Rustam Adilov <adilov@disroot.org>", "To": "Chris Packham <chris.packham@alliedtelesis.co.nz>,\n\tAndi Shyti <andi.shyti@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>,\n\tlinux-i2c@vger.kernel.org,\n\tdevicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org", "Cc": "Rustam Adilov <adilov@disroot.org>", "Subject": "[PATCH v5 1/8] i2c: rtl9300: split data_reg into read and write reg", "Date": "Thu, 26 Mar 2026 20:26:49 +0500", "Message-ID": "<20260326152656.14030-2-adilov@disroot.org>", "In-Reply-To": "<20260326152656.14030-1-adilov@disroot.org>", "References": "<20260326152656.14030-1-adilov@disroot.org>", "Precedence": "bulk", "X-Mailing-List": "linux-i2c@vger.kernel.org", "List-Id": "<linux-i2c.vger.kernel.org>", "List-Subscribe": "<mailto:linux-i2c+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-i2c+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit" }, "content": "In RTL9607C i2c controller, there are 2 separate registers for reads\nand writes as opposed the combined 1 on rtl9300 and rtl9310.\n\nIn preparation for RTL9607C support, split it up into rd_reg and wd_reg\nproperties and change the i2c read and write functions accordingly.\n\nReviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>\nSigned-off-by: Rustam Adilov <adilov@disroot.org>\n---\n drivers/i2c/busses/i2c-rtl9300.c | 25 +++++++++++++++----------\n 1 file changed, 15 insertions(+), 10 deletions(-)", "diff": "diff --git a/drivers/i2c/busses/i2c-rtl9300.c b/drivers/i2c/busses/i2c-rtl9300.c\nindex 67a5c4228fc9..9bf4c6b08e05 100644\n--- a/drivers/i2c/busses/i2c-rtl9300.c\n+++ b/drivers/i2c/busses/i2c-rtl9300.c\n@@ -61,7 +61,8 @@ enum rtl9300_i2c_reg_fields {\n struct rtl9300_i2c_drv_data {\n \tstruct rtl9300_i2c_reg_field field_desc[F_NUM_FIELDS];\n \tint (*select_scl)(struct rtl9300_i2c *i2c, u8 scl);\n-\tu32 data_reg;\n+\tu32 rd_reg;\n+\tu32 wd_reg;\n \tu8 max_nchan;\n };\n \n@@ -74,7 +75,8 @@ struct rtl9300_i2c {\n \tstruct rtl9300_i2c_chan chans[RTL9310_I2C_MUX_NCHAN];\n \tstruct regmap_field *fields[F_NUM_FIELDS];\n \tu32 reg_base;\n-\tu32 data_reg;\n+\tu32 rd_reg;\n+\tu32 wd_reg;\n \tu8 scl_num;\n \tu8 sda_num;\n \tstruct mutex lock;\n@@ -171,7 +173,7 @@ static int rtl9300_i2c_read(struct rtl9300_i2c *i2c, u8 *buf, u8 len)\n \tif (len > 16)\n \t\treturn -EIO;\n \n-\tret = regmap_bulk_read(i2c->regmap, i2c->data_reg, vals, ARRAY_SIZE(vals));\n+\tret = regmap_bulk_read(i2c->regmap, i2c->rd_reg, vals, ARRAY_SIZE(vals));\n \tif (ret)\n \t\treturn ret;\n \n@@ -198,12 +200,12 @@ static int rtl9300_i2c_write(struct rtl9300_i2c *i2c, u8 *buf, u8 len)\n \t\tvals[reg] |= buf[i] << shift;\n \t}\n \n-\treturn regmap_bulk_write(i2c->regmap, i2c->data_reg, vals, ARRAY_SIZE(vals));\n+\treturn regmap_bulk_write(i2c->regmap, i2c->wd_reg, vals, ARRAY_SIZE(vals));\n }\n \n static int rtl9300_i2c_writel(struct rtl9300_i2c *i2c, u32 data)\n {\n-\treturn regmap_write(i2c->regmap, i2c->data_reg, data);\n+\treturn regmap_write(i2c->regmap, i2c->wd_reg, data);\n }\n \n static int rtl9300_i2c_prepare_xfer(struct rtl9300_i2c *i2c, struct rtl9300_i2c_xfer *xfer)\n@@ -268,14 +270,14 @@ static int rtl9300_i2c_do_xfer(struct rtl9300_i2c *i2c, struct rtl9300_i2c_xfer\n \tif (!xfer->write) {\n \t\tswitch (xfer->type) {\n \t\tcase RTL9300_I2C_XFER_BYTE:\n-\t\t\tret = regmap_read(i2c->regmap, i2c->data_reg, &val);\n+\t\t\tret = regmap_read(i2c->regmap, i2c->rd_reg, &val);\n \t\t\tif (ret)\n \t\t\t\treturn ret;\n \n \t\t\t*xfer->data = val & 0xff;\n \t\t\tbreak;\n \t\tcase RTL9300_I2C_XFER_WORD:\n-\t\t\tret = regmap_read(i2c->regmap, i2c->data_reg, &val);\n+\t\t\tret = regmap_read(i2c->regmap, i2c->rd_reg, &val);\n \t\t\tif (ret)\n \t\t\t\treturn ret;\n \n@@ -408,7 +410,8 @@ static int rtl9300_i2c_probe(struct platform_device *pdev)\n \tif (device_get_child_node_count(dev) > drv_data->max_nchan)\n \t\treturn dev_err_probe(dev, -EINVAL, \"Too many channels\\n\");\n \n-\ti2c->data_reg = i2c->reg_base + drv_data->data_reg;\n+\ti2c->rd_reg = i2c->reg_base + drv_data->rd_reg;\n+\ti2c->wd_reg = i2c->reg_base + drv_data->wd_reg;\n \tfor (i = 0; i < F_NUM_FIELDS; i++) {\n \t\tfields[i] = drv_data->field_desc[i].field;\n \t\tif (drv_data->field_desc[i].scope == REG_SCOPE_MASTER)\n@@ -499,7 +502,8 @@ static const struct rtl9300_i2c_drv_data rtl9300_i2c_drv_data = {\n \t\t[F_SDA_SEL]\t\t= GLB_REG_FIELD(RTL9300_I2C_MST_GLB_CTRL, 0, 7),\n \t},\n \t.select_scl = rtl9300_i2c_select_scl,\n-\t.data_reg = RTL9300_I2C_MST_DATA_WORD0,\n+\t.rd_reg = RTL9300_I2C_MST_DATA_WORD0,\n+\t.wd_reg = RTL9300_I2C_MST_DATA_WORD0,\n \t.max_nchan = RTL9300_I2C_MUX_NCHAN,\n };\n \n@@ -519,7 +523,8 @@ static const struct rtl9300_i2c_drv_data rtl9310_i2c_drv_data = {\n \t\t[F_MEM_ADDR]\t\t= MST_REG_FIELD(RTL9310_I2C_MST_MEMADDR_CTRL, 0, 23),\n \t},\n \t.select_scl = rtl9310_i2c_select_scl,\n-\t.data_reg = RTL9310_I2C_MST_DATA_CTRL,\n+\t.rd_reg = RTL9310_I2C_MST_DATA_CTRL,\n+\t.wd_reg = RTL9310_I2C_MST_DATA_CTRL,\n \t.max_nchan = RTL9310_I2C_MUX_NCHAN,\n };\n \n", "prefixes": [ "v5", "1/8" ] }