Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1297062
| Path | csiph.com!eternal-september.org!feeder.eternal-september.org!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Suravee Suthikulanit <suravee.suthikulpanit@amd.com> |
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v2] i2c: designware: Do not require clock when SSCN and FFCN are provided |
| Date | Tue, 22 Dec 2015 22:00:01 +0100 |
| Message-ID | <qICch-kW-3@gated-at.bofh.it> (permalink) |
| References | <qGwum-1Cf-11@gated-at.bofh.it> <qH0iK-4hR-27@gated-at.bofh.it> |
| X-Original-To | Mika Westerberg <mika.westerberg@linux.intel.com> |
| Authentication-Results | spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; |
| User-Agent | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
| MIME-Version | 1.0 |
| Content-Type | text/plain; charset="windows-1252"; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Originating-IP | [165.204.77.1] |
| X-Clientproxiedby | SN2PR10CA0036.namprd10.prod.outlook.com (25.160.12.174) To BY1PR12MB0439.namprd12.prod.outlook.com (25.162.147.140) |
| X-Microsoft-Exchange-Diagnostics | 1;BY1PR12MB0439;2:+qixpRAUkTu5T/iEB9FsdKI0Ft5dkRpYDVFGf20VtULo45zxbCvhUtPIHW5jT6GJF+ScuuXkl1z//4ehacsNo8EifkKsQRqHIZqD2c8Y8JE6eJECnMjXM1Esnrcg5esQ9SxJY02NW/zOvE9SLfNYiQ==;3:Dj8/7EzqbWJTdBAsNzfWypKr5DR00OMjO/QMzxo8pUUPo8wnDhwvqvC3weJPUTr3GMU2jbY+HO+deUP9QLf2DXos2mX7ZSb2YSBEPqYTc0IM/fZR7eN3W2i/XzKiZPB+;25:OGorkDgJRqVL2foEBjUJs5JisonVBNyqCxxU1I/pm9qbKWIjYjzb/gLfGC+i03AKEYDk+sWyJdB/YSFTy6lTO6ASy8I0nUTM+lJ2yts4sG2k3ybZVLheohSYMZEMJc4iHTTZaHhBKGosKYHpcZ+sKR3BTc0rwYL8yRoCJjT6Mk8Khjc2VtQGRGjT5TaUPcvEfmI0jOUtCgBdK7vsMm/upnwoXWBLiWyxgdSIbC8OsrevLJ+woFDSCopZCj2LoLwzQ8wB0CaidUgzccz4DwqA+Q== |
| X-Microsoft-Antispam | UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR12MB0439; |
| X-Microsoft-Exchange-Diagnostics | 1;BY1PR12MB0439;20:E2Xaf9eeMHsIQJBzNVpMqwa6sCp01IUg4R4r7J2mhh9DyKBEfmrOcqow9FnWz8/II8AVPGhIBBAY89yU13ExbaX2RemCOtsEVUeAKtO2vg7xGLsO8w57VYvLZp0druZkas3w4kf6JJJmyOUlXxea9lbnekN/p3z2MSFBlZEgSvIr3izW64zgzrFm05vBM/BYxdMp+axwmG2xCIp26KkPBo0dPR+Pp+bMhUjD+MU5MK6OqPJBkBa6mzfTjdzphzyvwqGhHOW4TNlcIJeIr7Q1qxKDq24k63pKSaAPZdxr5guuXxg41vdqnSmmtB4qXUUTtk6oO3PiOxDxL8kl6SrKrX34Lm5yOg+4t9mjNsNf0vivwhXF/XUniE++E+6lAsWANI2B5TQr3gzDhMEoei9rtrmNmt0YxFM8C97hG7K1OfjWtNBAgRZjJiLZbYpJhxNZngmmn+wcDW74lsoWQ54Aed75VCg4sX+D5jPB57Nwti8S9HEvE7b3zee/m3kwwOZu;4:OeOL+14AEzvN2O/4fkqEsMckp6h2t4fqnyS0ZdAETzdu4t5OxEW+x4vKgEMGWg+GrP6huD01YlKLvZjhM2ud5NDjWg+c4ctVM+JVjopB8eTFgR2IQ8C5YFQgQvFfvv0CFCht1jTZcPx+tPhGUq4JPYv9ZmQLsGqfQmakLLXgRI1UmfOh7wM8ngHg41Bp793jkZx/lG6DJDXDPbqpnmWFTBH90bVzRdMjmcmxMv8QltjLpWLXK2dwt9kGkjbFsVbGt0BRuIExrSyuE9GF+LAOJlK5P815EFOh5GqEiArGQfeBrhy48BircXpNeu3eJfeXMlSYB3kZ1k45trqjQ1AfO70foa7NxfExzZNCSdZo0VMUuBP09su1un1B8iqL64v8 |
| X-Microsoft-Antispam-Prvs | <BY1PR12MB0439FA7181BBB1A597BFD7A0F3E50@BY1PR12MB0439.namprd12.prod.outlook.com> |
| X-Exchange-Antispam-Report-Test | UriScan:; |
| X-Exchange-Antispam-Report-Cfa-Test | BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001)(10201501046);SRVR:BY1PR12MB0439;BCL:0;PCL:0;RULEID:;SRVR:BY1PR12MB0439; |
| X-Forefront-Prvs | 0798146F16 |
| X-Forefront-Antispam-Report | SFV:NSPM;SFS:(10009020)(6009001)(6049001)(377454003)(199003)(189002)(164054003)(479174004)(24454002)(50466002)(23746002)(81156007)(122386002)(4001350100001)(54356999)(105586002)(80316001)(40100003)(87266999)(189998001)(5001960100002)(87976001)(42186005)(230700001)(86362001)(33656002)(106356001)(59896002)(97736004)(586003)(2950100001)(5008740100001)(6116002)(3846002)(83506001)(65806001)(1096002)(64126003)(47776003)(65956001)(66066001)(110136002)(50986999)(65816999)(92566002)(101416001)(76176999)(5004730100002)(36756003)(77096005);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR12MB0439;H:[10.236.18.83];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; |
| Received-Spf | None (protection.outlook.com: amd.com does not designate permitted sender hosts) |
| X-Microsoft-Exchange-Diagnostics | 1;BY1PR12MB0439;23:iZV6zoQPlsIq6vekVWeCSuwcaIlCWGd0tqUYpQLgMGGLQmE+FZ50GQNC3EfzijFonG3RtA6UXtRiCq9wJORQXjwyktDUHOzJU7v7IiqNqh/KPayAaCxCZ+ym8Jla6VF1BR6EoK61duatNh39Eks+VQrS4xXc41bscQzmLnezTX7TKEsrToQTaFkVdAXUFIESXtp1qxh5x4Kzb9tyWZhHbO+i/fDScofpPg+/fiWOHqdwRliYbXAJwN4AIal89v2jCCZaG59q94e+icqcU1dX6fdF3Xn6KZ5/P7cPAxJaAe/CyQ0RP+oiI/P9xkrspsy5ostdjCNcF/teiS6MseIBOAGOdAg4EFBJ2jz0aOZY31/PrSYbbRjApXdahfmI8LxUPfGaKGm8IO9PCzt7cFMmwJD9FoBaB8T5UkKkfveOu8gcceaJ4MYWvGqVmroDGL3uG/76uN2qV2RIWBb6n7V+TZKhnINk1m8RROzCLjJAGQ3l22HF0gRWSu6GPO7xpcee0ehfgaWjMJJCeZZUwpiEt2ZIrxwqeZdpSJYEYWo3QZDtrp0IPUHW2sc4bhWX56HbhgHiMwjn9Ob5sXMR4LAeqjnbBEcs0Y1q1FleYn/Z97Wpn8xWmHCXPaDIWnufnn8cbnNgj3h7dMd6+AaCI/aSS8c/XfBHEyYLH96ffUSW3gcNoofNCOGYwanUY7LHrhcDLILNQWtjQn6ThdvfVZgZmpXkXOi9a7HlLroL9vPoHEHex0QAxoV7fY5D/ZJQdUyIlKCtx12p74M+P4zH23Wv6nMAjBCrUTfP63kuhbkXctmErFl8HQp+n2Yn+DsoC5l+K2RtDxFmcayTkT8ihFB3lS9NKJyO2fzLUoJccgwnJobqUCXCfr/hpbjHhUc14wTWY2I4qrqiB7VzsR3ZcsmUXQajIA6yBoZDNSmP0ny+1CRjl0A+fOzW6CiFrVyEiVuo+HAa0Tehyu7ZhZNZMC2CWgaVRH1RRLS+dBupUg7cRd2MFTM6yX5LUr5c7tqYpuTKdsMBm+3XyYy/jPGuc9IK7gW5BuTe0N5kL8jLUYITxCqUmjeO7PTlCRTkMu6LYbtHhKH1IPXpuv3dxuseBfF9azsr06RaKvbkeTj5ryhC6e7cRSBCitgPFCMqQ1mZHwAlgyqekWd/XbjXz9JBgbNxkddnCBIBB2EgXpd3U+WytXh7YiC7anVpb/o9jVOVynXa1WRbHASuAR1ILcpzX16vhbJ61MnK8Qk8Z1lnndbRD2A= |
| X-Microsoft-Exchange-Diagnostics | 1;BY1PR12MB0439;5:7ZznEawxJNZzGWwkKHLVqvk3v6PEg6WBoQtvda2yi5NPdoMvwMib4NmO/PRiLWveyS5chTn55yJViC5YTeW9vpkkvdLGtWW8S23Dkv2P2PuAxn75KnIDzo8c5JEiZ8mm2/x6Sb7qyApWX2+T5Blcjw==;24:f7T6FKbTqLleC/mkVii/ppCSbjTavnk+o1CBV+1xLOic4ApViJhB8kDJQaTc/343Tz1pZDl7V9RFrAbFEWROHOD+2taiJ3MJUdDjeWlE9CY=;20:nvTvmuwapY5Y2cXshjk+fbU/STdvr9t+zO9p8VYCx9TKWvINA2eXZeQRn+nRiD8TDvd8b+PuN32ZgFPGrkv2OBtE0atfiLlCEvnUJJgHs5QTwSicEBFU8CL8+OhG6dNMDpXdxL5PTzP7GR5vXEoYzISALNZDvfEg1tCowuOfmEuFBIIKvHqdKQ0wQNT4ZcfSYfoJzy4MpWPQEjL9XH4Qr515xxegmWknEvHYe/6GiEkB3sP5X5eBFJNvHCj8l+/K |
| X-Originatororg | amd.com |
| X-Ms-Exchange-Crosstenant-Originalarrivaltime | 22 Dec 2015 20:51:17.5376 (UTC) |
| X-Ms-Exchange-Crosstenant-Fromentityheader | Hosted |
| X-Ms-Exchange-Transport-Crosstenantheadersstamped | BY1PR12MB0439 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 97 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | <wsa@the-dreams.de>, <jarkko.nikula@linux.intel.com>, <andriy.shevchenko@linux.intel.com>, <lho@apm.com>, <Ken.Xue@amd.com>, <linux-i2c@vger.kernel.org>, <linux-acpi@vger.kernel.org>, <linux-kernel@vger.kernel.org> |
| X-Original-Date | Tue, 22 Dec 2015 14:51:13 -0600 |
| X-Original-Message-ID | <5679B7C1.6010408@amd.com> |
| X-Original-References | <1450319025-19120-1-git-send-email-Suravee.Suthikulpanit@amd.com> <20151218101348.GG1762@lahna.fi.intel.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1297062 |
Show key headers only | View raw
Hi Mika,
On 12/18/2015 4:13 AM, Mika Westerberg wrote:
> [....]
> So instead of this, what if we do not assign dev->get_clk_rate_khz at
> all and then do something like below in the core driver?
I like the changes below since it is clear to see within the core file
how things are handled when get_clk_rate_khz is not assigned (i.e.
input_clock_hz = 0), and not necessary relying on the platform driver to
return 0 in this case.
So, at this point, I can re-submit the V3 and combine these changes, and
we both can sign-off. How does that sound?
Thanks,
Suravee
> Of course we still need the other changes you did in this patch to cope
> with the missing clock.
>
> diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c
> index 8c48b27ba059..25dccd8df772 100644
> --- a/drivers/i2c/busses/i2c-designware-core.c
> +++ b/drivers/i2c/busses/i2c-designware-core.c
> @@ -271,6 +271,17 @@ static void __i2c_dw_enable(struct dw_i2c_dev *dev, bool enable)
> enable ? "en" : "dis");
> }
>
> +static unsigned long i2c_dw_clk_rate(struct dw_i2c_dev *dev)
> +{
> + /*
> + * Clock is not necessary if we got LCNT/HCNT values directly from
> + * the platform code.
> + */
> + if (WARN_ON_ONCE(!dev->get_clk_rate_khz))
> + return 0;
> + return dev->get_clk_rate_khz(dev);
> +}
> +
> /**
> * i2c_dw_init() - initialize the designware i2c master hardware
> * @dev: device private data
> @@ -281,7 +292,6 @@ static void __i2c_dw_enable(struct dw_i2c_dev *dev, bool enable)
> */
> int i2c_dw_init(struct dw_i2c_dev *dev)
> {
> - u32 input_clock_khz;
> u32 hcnt, lcnt;
> u32 reg;
> u32 sda_falling_time, scl_falling_time;
> @@ -295,8 +305,6 @@ int i2c_dw_init(struct dw_i2c_dev *dev)
> }
> }
>
> - input_clock_khz = dev->get_clk_rate_khz(dev);
> -
> reg = dw_readl(dev, DW_IC_COMP_TYPE);
> if (reg == ___constant_swab32(DW_IC_COMP_TYPE_VALUE)) {
> /* Configure register endianess access */
> @@ -325,12 +333,12 @@ int i2c_dw_init(struct dw_i2c_dev *dev)
> hcnt = dev->ss_hcnt;
> lcnt = dev->ss_lcnt;
> } else {
> - hcnt = i2c_dw_scl_hcnt(input_clock_khz,
> + hcnt = i2c_dw_scl_hcnt(i2c_dw_clk_rate(dev),
> 4000, /* tHD;STA = tHIGH = 4.0 us */
> sda_falling_time,
> 0, /* 0: DW default, 1: Ideal */
> 0); /* No offset */
> - lcnt = i2c_dw_scl_lcnt(input_clock_khz,
> + lcnt = i2c_dw_scl_lcnt(i2c_dw_clk_rate(dev),
> 4700, /* tLOW = 4.7 us */
> scl_falling_time,
> 0); /* No offset */
> @@ -344,12 +352,12 @@ int i2c_dw_init(struct dw_i2c_dev *dev)
> hcnt = dev->fs_hcnt;
> lcnt = dev->fs_lcnt;
> } else {
> - hcnt = i2c_dw_scl_hcnt(input_clock_khz,
> + hcnt = i2c_dw_scl_hcnt(i2c_dw_clk_rate(dev),
> 600, /* tHD;STA = tHIGH = 0.6 us */
> sda_falling_time,
> 0, /* 0: DW default, 1: Ideal */
> 0); /* No offset */
> - lcnt = i2c_dw_scl_lcnt(input_clock_khz,
> + lcnt = i2c_dw_scl_lcnt(i2c_dw_clk_rate(dev),
> 1300, /* tLOW = 1.3 us */
> scl_falling_time,
> 0); /* No offset */
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v2] i2c: designware: Do not require clock when SSCN and FFCN are provided Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> - 2015-12-17 03:30 +0100
Re: [PATCH v2] i2c: designware: Do not require clock when SSCN and FFCN are provided Loc Ho <lho@apm.com> - 2015-12-17 04:00 +0100
Re: [PATCH v2] i2c: designware: Do not require clock when SSCN and FFCN are provided Mika Westerberg <mika.westerberg@linux.intel.com> - 2015-12-18 11:20 +0100
Re: [PATCH v2] i2c: designware: Do not require clock when SSCN and FFCN are provided Suravee Suthikulanit <suravee.suthikulpanit@amd.com> - 2015-12-22 22:00 +0100
Re: [PATCH v2] i2c: designware: Do not require clock when SSCN and FFCN are provided Mika Westerberg <mika.westerberg@linux.intel.com> - 2015-12-23 09:50 +0100
csiph-web